/* Адаптивные стили (медиазапросы) */
/* @media (max-width: 768px) {
  .deal-position-selects,
  .responsible-selects {
    flex-direction: column;
  }

  .form-container form {
    width: 90%;
  }
  
  .form-container fieldset {
    padding: 20px;
  }
} */

/* @media (max-width: 480px) {
  .form-container form {
    width: 95%;
  }
  
  .form-container fieldset {
    padding: 15px;
  }
  
  .switch-page-button {
    width: 100%;
  }
} */

/* -- -- -- -- -- -- -- -- -- -- -- -- -- */

/* Общие стили */
/* html, */
body {
  margin: 0;
  font-family: Arial, sans-serif;
  display: flex;
  height: 100vh;
  color: #212529;
  overflow: hidden;
}

h2 {
  font-size: 24px;
  margin-bottom: 20px;
}

label {
  display: inline-block;
  margin-bottom: 5px;
  font-weight: bold;
}

select, button {
  width: 100%;
  padding: 10px;
  margin: 10px 0;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  background-color: white;
  color: #333;
  transition: background-color 0.3s ease;
}

select {
  -webkit-appearance: none; /* Убирает стандартный стиль в Safari */
  -moz-appearance: none; /* Убирает стандартный стиль в Firefox */
  appearance: none; /* Убирает стандартный стиль в других браузерах */
  /*
    Материалы:
      — https://stackoverflow.com/questions/14218307/select-arrow-style-change
      — https://gist.github.com/szilagyi/6624176
      — https://base64toimage.github.io/
   */
  background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAG0lEQVR42mNgwAfKy8v/48I4FeA0AacVDFQBAP9wJkE/KhUMAAAAAElFTkSuQmCC') no-repeat scroll 0 0 transparent;
  /* background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAG0lEQVR42mNgwAfKy8v/48I4FeA0AacVDFQBAP9wJkE/KhUMAAAAAElFTkSuQmCC') no-repeat center center; */
  background-color: white;
  background-repeat: no-repeat;
  background-position-x: 97%;
  background-position-y: 50%;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 10px;
  font-size: 14px;
  color: #333;
  cursor: pointer;
  width: 100%;
  box-sizing: border-box;
}

select:focus {
  outline: none;
  border-color: #007bff;
  box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);
}

select.error {
  border: 2px solid red;
  background-color: #ffe6e6;
}

/* Регистрация/аутентификация */
.form-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background-color: #f4f4f4;
  width: 100%;
}

.form-container form {
  width: 100%;
  max-width: 450px;
  margin: 0 auto;
}

.form-container fieldset {
  background: white;
  padding: 30px;
  border-radius: 8px;
  border: 1px solid #ddd;
  width: 100%;
  box-sizing: border-box;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.form-container input {
  width: 95%;
  padding: 10px;
  margin: 10px 0;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
}
.form-container .form-button {
  width: 100%;
  padding: 12px;
  background-color: #007bff;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 16px;
  margin-top: 20px;
}
.form-container .form-button:hover {
  background-color: #0056b3;
}
.switch-page {
  display: flex;
  justify-content: center;
  margin-top: 10px;
}
.switch-page-button {
  width: 250px;
  background-color: #5f9108;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 10px 20px;
  font-size: 16px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.switch-page-button:hover {
  background-color: #24700d;
}

input:disabled, select:disabled, button:disabled {
  background-color: #f4f4f4;
  color: #aaa;
  cursor: not-allowed;
}

/* Сайдбар */
#sidebar {
  width: 300px;
  background-color: #f4f4f4;
  position: relative;
  padding: 20px;
  border-right: 1px solid #ddd;
  overflow-y: auto;
  height: 100vh; /* Сайдбар занимает всю высоту экрана */
  box-sizing: border-box; /* Учитывается padding в ширине и высоте */
}
/* #sidebar > .platform-wrapper, */
/* #sidebar > .site-wrapper, */
/* #sidebar > .form-wrapper { */
  /* border-bottom: 1px solid rgb(140, 78, 78); */
/* } */
#sidebar > .site-wrapper {
  margin-top: 10px;
}
#sidebar > .form-wrapper {
  margin-top: 10px;
}
#sidebar label {
  margin: 0;
  padding: 0;
}
#sidebar .label-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.action-box {
  display: flex;
  gap: 5px;
}
.action-box button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 16px;
  color: white;
  transition: background-color 0.3s ease;
}
.action-box .add-btn,
.modal-create-btn {
  background-color: #8bc34a;
}
.action-box .add-btn:hover,
.modal-create-btn:hover {
  background-color: #689f38;
}
.action-box .edit-btn,
.modal-edit-btn {
  background-color: #e5ac00;
}
.action-box .edit-btn:hover,
.modal-edit-btn:hover {
  background-color: #d68800;
}
.action-box .delete-btn,
.modal-delete-btn {
  background-color: #dc3545;
}
.action-box .delete-btn:hover,
.modal-delete-btn:hover {
  background-color: #c82333;
}
.action-box button:disabled {
  background-color: #a5a5a5;
  color: #dcdbdb;
  cursor: not-allowed;
}

/* Кнопка "Пользователи" (видимость — только для администратора)" */
#users-list-btn {
  width: 100%;
  background-color: #6591ac;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 10px 20px;
  font-size: 16px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
#users-list-btn:hover {
  background-color: #4e7186;
}

/* Информация о пользователе */
#user-info {
  position: absolute;
  bottom: 23px;
  left: 20px;
  right: 20px;
  padding: 10px;
  border: 1px solid #555;
  border-radius: 8px;
  background-color: #f9f9f9;
}
#user-info p {
  margin: 5px 0;
  font-size: 14px;
}
/* Имя пользователя */
#username.active {
  color: darkgreen;
}
#username.disabled {
  color: rgb(164, 21, 21);
}
/* Статус интеграции с AmoCRM */
#connection-status.active {
  color: rgb(33, 206, 33);
  font-weight: bold;
}
#connection-status.disabled {
  color: rgb(164, 21, 21);
  font-weight: bold;
}
/* Кнопка "Авторизоваться в AmoCRM" */
.amo-crm-auth-original-btn {
  /* width: 100%; */
  /* background-color: #088eb3; */
  color: white;
  /* text-transform: lowercase; */
  /* border: none; */
  border-radius: 4px;
  /* padding: 10px 20px; */
  /* font-size: 8px; */
  cursor: pointer;
  /* margin-top: 5px; */
  /* transition: background-color 0.3s ease; */
}
/* .amo-crm-auth-original-btn:hover { */
  /* background-color: #145f73; */
/* } */
.amo-crm-auth-btn {
  width: 100%;
  background-color: #088eb3;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 10px 20px;
  font-size: 14px;
  cursor: pointer;
  margin-top: 5px;
  transition: background-color 0.3s ease;
}
.amo-crm-auth-btn:hover {
  background-color: #145f73;
}
/* Кнопка "Выйти" */
.logout-btn {
  width: 100%;
  background-color: #b58ccf;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 10px 20px;
  font-size: 16px;
  cursor: pointer;
  margin-top: 5px;
  transition: background-color 0.3s ease;
}
.logout-btn:hover {
  background-color: #4a0d40;
}

/* * 2. Dashboard. Общие стили */
#dashboard {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 20px;
  text-align: left;
  overflow-y: auto; /* Прокрутка для основного содержимого */
  height: 100vh; /* Основная часть также занимает всю высоту экрана */
  box-sizing: border-box; /* Учитывается padding в ширине и высоте */
}

/* * 2.1. Dashboard. Выше таблицы */
#fields_before_table {
  width: 80%;
  margin-bottom: 20px;
}

/* Положение сделки. Выбор ответственного */
.deal-position-wrapper,
.responsible-wrapper {
  border: 1px solid #000;
  border-radius: 8px;
  padding: 10px;
  margin-bottom: 20px;
  position: relative;
}
.deal-position-wrapper legend,
.responsible-wrapper legend {
  font-weight: bold;
  padding: 0 5px;
}
.deal-position-selects,
.responsible-selects {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 7px;
}
.deal-position-selects select,
.responsible-selects select {
  flex: 1;
}

/* .is-pipeline-status-toggle-wrapper {
  margin-top: 10px;
  display: none;
  align-items: center;
  gap: 30px;
} */
/* .is-pipeline-status-toggle-wrapper label {
  font-size: 14px;
  cursor: pointer;
} */
.is-payment-form-toggle-wrapper {
  margin-top: 10px;
  display: none;
  align-items: center;
  gap: 30px;
}
.is-payment-form-toggle-wrapper label {
  font-size: 16px;
  cursor: pointer;
}

.input-redirect-url-wrapper {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  margin-top: 10px;
  width: 80%;
}
.input-redirect-url-wrapper p,
.input-redirect-url-wrapper input,
.input-redirect-url-wrapper button {
  margin: 2px;
}
.input-redirect-url-wrapper .input-redirect-url {
  display: flex;
  height: 25px;
  width: 100%;
  /* width: 300px; */
  margin-bottom: 10px;
}
.input-redirect-url-wrapper > .copy-redirect-url-btn:disabled {
  background-color: #f4f4f4;
  color: #aaa;
  cursor: not-allowed;
}
.input-redirect-url-wrapper > .copy-redirect-url-btn:disabled:hover {
  background-color: #dedede;
  color: #aaa;
  cursor: not-allowed;
}
.input-redirect-url-wrapper > .copy-redirect-url-btn {
  background-color: rgb(44, 111, 135);
  width: 330px;
}
.input-redirect-url-wrapper > .copy-redirect-url-btn:hover {
  background-color: rgb(29, 85, 104);
}

/* * 2.2. Dashboard. Таблица */
#fields_table {
  width: 80%;
  border-collapse: collapse;
  margin-top: 20px;
  background-color: white;
}
#fields_table thead {
  background-color: #f8f9fa;
  font-size: 14px;
}
#fields_table th:first-child {
  text-align: center;
}
#fields_table th, #fields_table td {
  border: 1px solid #ddd;
  padding: 10px;
  text-align: left;
}
#fields_table td {
  vertical-align: middle;
  text-align: center;
}
#fields_table td input[type="checkbox"] {
  display: inline-block;
  cursor: pointer;
  width: 16px;
  height: 16px;
  margin: 0 auto;
}
#fields_table td input[type="text"] {
  width: 100%;
  padding: 8px;
  box-sizing: border-box;
  border: 1px solid #ccc;
  border-radius: 4px;
}
#fields_table th {
  font-weight: bold;
  text-transform: uppercase;
}
#fields_table td:first-child td:last-child {
  text-align: center;
  vertical-align: middle;
}
#fields_table .delete-btn {
  width: 36px;
  height: 36px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: #dc3545;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
#fields_table .delete-btn:hover {
  background-color: #c82333;
}

/* * 2.2.1. Dashboard. Таблица. Кнопки внизу */
.table-add-field-button {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}
.add-row-btn {
  margin-top: 20px;
  background-color: #007bff;
  color: white;
  cursor: pointer;
}
.add-row-btn:hover {
  background-color: #0056b3;
}

/* * 2.3. Dashboard. Кнопки под таблицей */
.create-form-btn-wrapper {
  display: none;
  flex-direction: column;
  width: 252px;
  margin-top: 30px;
  gap: 10px;
}
.create-form-btn-wrapper > label {
  font-size: 16px;
  cursor: pointer;
}
.create-form-btn-wrapper > input[type="text"] {
  width: 244px;
  height: 30px;
  font-size: 16px;
  border: 1px solid #ccc;
  border-radius: 4px;
}
.create-form-btn {
  background-color: #59b325;
  width: 100%;
}
.create-form-btn:hover {
  background-color: #207714;
}

/* .set-pipeline-status-toggle-wrapper {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
} */
/* .set-pipeline-status-toggle-wrapper label {
  font-size: 14px;
  cursor: pointer;
} */
/* .set-as-payment-form-toggle-wrapper {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
} */
/* .set-as-payment-form-toggle-wrapper label {
  font-size: 14px;
  cursor: pointer;
} */

.action-buttons {
  /* display: none; */
  display: flex;
  margin-top: 20px;
  gap: 10px;
}
.action-button {
  width: 250px;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 10px 20px;
  font-size: 16px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.save-settings-btn {
  background-color: #d2cd76;
}
.save-settings-btn:hover {
  background-color: #8fa82a;
}
.generate-code-btn {
  background-color: #249c90;
  /* background-color: rgb(44, 111, 135); */
}
.generate-code-btn:hover {
  background-color: #12675f;
  /* background-color: rgb(29, 85, 104); */
}
.copy-form-btn {
  background-color: #2098e3;
}
.copy-form-btn:hover {
  background-color: #165c7c;
}

/** 3. Dashboard. Валидация полей */
input.error {
  border: 2px solid red;
  background-color: #ffe6e6;
}
.error {
  border: 2px solid red;
  background-color: #ffe6e6;
}

/* Модальное окно */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}
.modal {
  background: white;
  padding: 20px;
  border-radius: 8px;
  width: 80%;
  max-width: 600px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  position: relative;
}
.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.modal-header h2 {
  margin: 0;
}
.close-modal-btn {
  width: 36px;
  height: 36px;
  margin-right: 5px;
  background-color: #dc3545;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
.close-modal-btn:hover {
  background-color: #c82333;
}
.modal-body {
  display: flex;
  flex-direction: column;
  max-height: 400px;
  overflow-y: auto;
}
.modal-body > input {
  display: flex;
  height: 25px;
  /* width: 300px; */
  margin-bottom: 10px;
}
.modal-body > .checkbox-wrapper {
  display: inline-flex;
  gap: 10px;
}
.modal-body > .checkbox-wrapper > label[for="checkbox_label_site_webhook"] {
  padding-top: 5px;
}
.code-block {
  background-color: #f4f4f4;
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 15px;
  font-family: 'Courier New', Courier, monospace;
  font-size: 14px;
  color: #333;
  white-space: pre-wrap;
}
.modal-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.modal-footer > .modal-copy-content-btn-wrapper {
  display: flex;
  flex-direction: row;
  gap: 30px;
}

.modal-footer > .modal-copy-content-btn-wrapper > .modal-copy-redirect-url-btn {
  background-color: rgb(44, 111, 135);
}

.modal-footer > .modal-copy-content-btn-wrapper > .modal-copy-redirect-url-btn:hover {
  background-color: rgb(29, 85, 104);
}
.modal-footer > .modal-copy-content-btn-wrapper > .modal-copy-content-btn {
  /* padding: 5px; */
  /* font-size: 14px; */
  background-color: #249c90;
  /* background-color: rgb(44, 111, 135); */
}
.modal-footer > .modal-copy-content-btn-wrapper > .modal-copy-content-btn:hover {
  /* padding: 5px; */
  /* font-size: 14px; */
  background-color: #12675f;
  /* background-color: rgb(29, 85, 104); */
}
.modal-footer > .modal-copy-form-btn-wrapper > .modal-copy-form-btn {
  background-color: #2098e3;
}
.modal-footer > .modal-copy-form-btn-wrapper > .modal-copy-form-btn:hover {
  background-color: #165c7c;
}

.platform-field-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 10px 5px;
}
.platform-field-wrapper > select,
.platform-field-wrapper > input.platform-manual-input {
  margin: 5px 5px;
  height: 40px;
  box-sizing: border-box;
}
.platform-field-wrapper > label {
  display: inline-flex;
  align-self: flex-start;
  text-align: left;
  font-size: 14px;
  gap: 8px;
}

/* Кастомный селектор с чекбоксами */
.custom-select-container {
  position: relative;
  width: 100%;
  font-size: 14px;
  cursor: pointer;
  margin: 10px 0;
}

.custom-select-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 3% 10px 10px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: white;
  height: 24px; /* Высота как у стандартных селектов */
  box-sizing: content-box; /* Учитывая padding в размере */
  cursor: pointer;
}

.custom-select-arrow {
  color: #666;
  font-size: 12px;
  transition: transform 0.2s; /* Плавное вращение стрелки */
}

.custom-select-container.open .custom-select-arrow {
  transform: rotate(180deg); /* Вращение стрелки при открытии списка */
}

.custom-select-container.disabled .custom-select-header {
  background-color: #f4f4f4;
  color: #aaa;
  cursor: not-allowed;
  border-color: #ccc;
}

.custom-select-container.disabled .custom-select-header * {
  color: #aaa;
}

.custom-select-container.disabled .custom-select-arrow {
  opacity: 0.5;
}

.custom-select-options {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  max-height: 300px;
  overflow-y: auto;
  border: 1px solid #ccc;
  border-top: none;
  border-radius: 0 0 4px 4px;
  background-color: white;
  z-index: 1000;
  display: none;
  visibility: hidden;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.custom-select-container.open .custom-select-options {
  display: block;
  visibility: visible;
  opacity: 1;
}

.custom-select-option {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 10px;
  border-bottom: 1px solid #f0f0f0;
  cursor: pointer;
  background-color: white;
  min-height: 30px;
  position: relative;
}

.custom-select-option:hover {
  background-color: #f5f5f5;
}

/* Элемент с отмеченным чекбоксом */
.custom-select-option.selected {
  background-color: #f0f0f0;
}

/* Активный элемент (выбранный) */
.custom-select-option.active {
  background-color: #e0e0e0;
  font-weight: bold;
}

.custom-select-option.active label {
  font-weight: bold;
}

.checkbox-container {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  cursor: pointer;
}

.custom-select-option label {
  display: flex;
  align-items: center;
  width: calc(100% - 40px);
  margin: 0 0 0 30px;
  font-weight: normal;
  cursor: pointer;
  pointer-events: none; /* Важно! Клики проходят сквозь label к родительскому элементу */
}

.custom-select-option input[type="checkbox"] {
  margin: 0;
  cursor: pointer;
  width: 16px;
  height: 16px;
  z-index: 20;
  position: relative;
  pointer-events: none; /* Чтобы клики обрабатывал контейнер */
}

.checkbox-annotation {
  text-align: left;
  padding: 5px 10px;
  font-weight: bold;
  font-size: 12px;
  border-bottom: 1px solid #f0f0f0;
  background-color: #f5f5f5;
}

/* Показываем чекбоксы всегда для улучшения UX */
.checkbox-container {
  visibility: visible;
  opacity: 1;
}

.hidden-select {
  position: absolute;
  opacity: 0;
  height: 0;
  width: 0;
  pointer-events: none;
  margin: 0;
  padding: 0;
  border: none;
}
