/* ===========================================================
   Apple-style theme overrides for Django admin.
   Цветовая палитра — стандартная Apple (light mode):
     Background:  #f5f5f7
     Cards:       #ffffff
     Text:        #1d1d1f
     Secondary:   #86868b
     Border:      #d2d2d7
     Blue accent: #0071e3
   =========================================================== */

:root {
  --apple-bg:        #f5f5f7;
  --apple-card:      #ffffff;
  --apple-text:      #1d1d1f;
  --apple-secondary: #86868b;
  --apple-border:    #d2d2d7;
  --apple-blue:      #0071e3;
  --apple-blue-hov:  #0077ed;
  --apple-green:     #34c759;
  --apple-red:       #ff3b30;
  --apple-orange:    #ff9500;
}

/* ---------- Глобальный фон и шрифты ---------- */

html, body {
  background: var(--apple-bg) !important;
  color: var(--apple-text) !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display",
               "SF Pro Text", "Segoe UI", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

#container {
  background: var(--apple-bg) !important;
}

/* ---------- Шапка ---------- */

#header {
  background: rgba(255, 255, 255, 0.85) !important;
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid var(--apple-border) !important;
  color: var(--apple-text) !important;
  padding: 14px 32px !important;
  box-shadow: none !important;
}
#branding h1, #branding h1 a:link, #branding h1 a:visited {
  color: var(--apple-text) !important;
  font-weight: 600 !important;
  font-size: 17px !important;
}
#user-tools, #user-tools a:link, #user-tools a:visited {
  color: var(--apple-secondary) !important;
  font-size: 13px !important;
  border-bottom: 0 !important;
}
#user-tools a:hover {
  color: var(--apple-blue) !important;
  text-decoration: underline !important;
}

/* ---------- Хлебные крошки ---------- */

div.breadcrumbs {
  background: transparent !important;
  color: var(--apple-secondary) !important;
  border: 0 !important;
  padding: 16px 32px 4px !important;
  font-size: 13px !important;
}
div.breadcrumbs a {
  color: var(--apple-blue) !important;
}

/* ---------- Содержимое ---------- */

/* Растягиваем все wrapper-ы Django admin на 100% ширины */
#container, .main, .main > .content, #content,
#content-main {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
}

#content {
  padding: 8px 32px 40px !important;
  margin: 0 !important;
}

#content-main, #content-related {
  background: transparent !important;
  width: 100%;
}

/* Дашборд / changelist занимает всю ширину */
.dashboard #content,
.change-list #content,
.change-form #content {
  max-width: none !important;
}

/* ---------- Заголовки ---------- */

h1, h2, h3, h4, h5 {
  color: var(--apple-text) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em;
}

#content h1 {
  font-size: 26px !important;
  margin-bottom: 16px !important;
}

/* ---------- Карточки модулей ---------- */

.module {
  background: var(--apple-card) !important;
  border: 1px solid var(--apple-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04) !important;
  overflow: hidden !important;
  margin-bottom: 16px !important;
}
.module h2, .module caption, .inline-group h2 {
  background: var(--apple-card) !important;
  color: var(--apple-text) !important;
  border-bottom: 1px solid var(--apple-border) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  padding: 14px 18px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.module table {
  width: 100% !important;
}

/* ---------- Таблицы (списки) ---------- */

table {
  background: var(--apple-card);
  border-collapse: separate !important;
  border-spacing: 0;
}
thead th {
  background: var(--apple-card) !important;
  color: var(--apple-text) !important;
  font-weight: 600 !important;
  border-top: 0 !important;
  border-bottom: 1px solid var(--apple-border) !important;
  padding: 12px 14px !important;
  font-size: 13px !important;
}
thead th a, thead th a:link, thead th a:visited {
  color: var(--apple-text) !important;
}
tbody tr {
  background: var(--apple-card);
  transition: background 0.15s;
}
tbody tr:hover {
  background: #fafafa !important;
}
tbody tr:nth-child(even) {
  background: #fbfbfd;
}
tbody tr:nth-child(even):hover {
  background: #f6f6f8 !important;
}
tbody td, tbody th {
  border-top: 0 !important;
  border-bottom: 1px solid #f0f0f3 !important;
  padding: 14px 16px !important;
  font-size: 15px !important;
  color: var(--apple-text) !important;
}
/* Заголовок и название первой колонки — пожирнее, как акцент */
tbody td:first-child a,
tbody th.field-name a,
tbody td.field-name a {
  font-weight: 600 !important;
  font-size: 16px !important;
}

/* ---------- Кнопки ---------- */

.button, input[type="submit"], input[type="button"],
.submit-row input, a.button {
  background: var(--apple-blue) !important;
  color: #ffffff !important;
  border: 0 !important;
  border-radius: 8px !important;
  padding: 9px 18px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  cursor: pointer;
  transition: background 0.15s, transform 0.05s;
  text-transform: none !important;
}
.button:hover, input[type="submit"]:hover,
input[type="button"]:hover, .submit-row input:hover, a.button:hover {
  background: var(--apple-blue-hov) !important;
}
.button:active, input[type="submit"]:active {
  transform: scale(0.97);
}
.button.default, input[type="submit"].default, .submit-row input.default {
  background: var(--apple-blue) !important;
}

/* «Удалить» — красный */
.deletelink, .submit-row a.deletelink {
  background: var(--apple-red) !important;
  color: #fff !important;
  border-radius: 8px !important;
  padding: 9px 18px !important;
}

/* «Add» в правом верхнем углу */
.object-tools a, .object-tools a:link, .object-tools a:visited {
  background: var(--apple-blue) !important;
  border-radius: 8px !important;
  color: #fff !important;
  text-transform: none !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  padding: 8px 16px !important;
  letter-spacing: -0.01em !important;
}
.object-tools a:hover {
  background: var(--apple-blue-hov) !important;
}

/* ---------- ForeignKey-селекты в форме редактирования ---------- */

/* Селект папки/проекта по умолчанию схлопывается в очень узкий —
   делаем минимальную ширину, чтобы было видно текст. */
.form-row select,
.aligned select {
  min-width: 280px !important;
}

/* В табличных инлайнах селекты могут быть уже — оставляем их компактными */
.tabular select,
.inline-related select {
  min-width: 0 !important;
}

/* ---------- Скрываем колонку .original в TabularInline ---------- */
/* Django по умолчанию показывает str() объекта в первой колонке.
   У ключей это дублирует поле "поисковый запрос" — прячем. */

.tabular th.original,
.tabular td.original {
  display: none !important;
}
.tabular .original p {
  display: none !important;
}

/* ---------- Кастомный текст для "Добавить ещё одно ..." ---------- */
/* Прячем дефолтный текст и подменяем своим через ::before */

.tabular tr.add-row a.addlink,
.tabular tr.add-row a,
.inline-related tr.add-row a.addlink,
.inline-related tr.add-row a {
  font-size: 0 !important;
  color: transparent !important;
  line-height: 1 !important;
}

.tabular tr.add-row a::before,
.inline-related tr.add-row a::before {
  display: inline-block !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--apple-blue) !important;
  line-height: normal !important;
}

/* Тексты для разных инлайнов */
#keywords-group .add-row a::before { content: "+ Добавить ключевое слово" !important; }
#schedules-group .add-row a::before { content: "+ Добавить расписание" !important; }

/* ---------- Поля форм ---------- */

input[type="text"], input[type="email"], input[type="password"],
input[type="url"], input[type="number"], input[type="search"],
input[type="tel"], input[type="time"], input[type="date"],
textarea, select {
  border: 1px solid var(--apple-border) !important;
  border-radius: 8px !important;
  padding: 8px 12px !important;
  background: #fff !important;
  color: var(--apple-text) !important;
  font-size: 14px !important;
  font-family: inherit !important;
  transition: border-color 0.15s, box-shadow 0.15s;
}

/* Селекторы FK (Папка и т.п.) — нужна нормальная высота и ширина,
   иначе Django по умолчанию ужимает их и текст не помещается. */
.aligned .form-row select,
.aligned select,
.related-widget-wrapper select,
.aligned .related-widget-wrapper select {
  min-width: 280px !important;
  width: auto !important;
  min-height: 40px !important;
  height: auto !important;
  line-height: 1.4 !important;
  font-size: 14px !important;
  padding: 8px 32px 8px 14px !important;
  color: var(--apple-text) !important;
  background-color: #fff !important;
  /* Используем системную стрелку вместо CSS-иконки, чтобы текст не
     обрезался кастомным styling */
  appearance: auto !important;
  -webkit-appearance: auto !important;
}
.related-widget-wrapper {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
}
/* Опции в выпадающем списке — нормальный размер и цвет */
.aligned select option,
.related-widget-wrapper select option {
  font-size: 14px !important;
  color: var(--apple-text) !important;
  background: #fff !important;
  padding: 6px 10px !important;
}
input:focus, textarea:focus, select:focus {
  border-color: var(--apple-blue) !important;
  outline: 0 !important;
  box-shadow: 0 0 0 3px rgba(0,113,227,0.18) !important;
}
textarea {
  font-family: inherit !important;
  line-height: 1.5;
}

label {
  color: var(--apple-text) !important;
  font-weight: 500 !important;
  font-size: 13px !important;
}

.help, .helptext {
  color: var(--apple-secondary) !important;
  font-size: 12px !important;
}

/* ---------- Ссылки ---------- */

a:link, a:visited {
  color: var(--apple-blue);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}

/* ---------- Сайдбар админки скрыт ---------- */
/* Левая навигация дублирует то, что есть на дашборде. Прячем её. */

#nav-sidebar,
#toggle-nav-sidebar {
  display: none !important;
}
.main {
  margin-left: 0 !important;
}
#main, .main > #content {
  margin-left: 0 !important;
}
/* На странице с боковой панелью убираем левую полоску */
.sticky-sidebar, body.dashboard #nav-sidebar {
  display: none !important;
}

/* ---------- Скрываем кнопки "+ Добавить" ТОЛЬКО на дашборде ---------- */
/* На дашборде (главной /admin/) кнопки "+" дублируют ссылки моделей,
   поэтому прячем именно там. */
body.dashboard a.addlink,
body.dashboard .module table td.action-add {
  display: none !important;
}

/* Кнопка "Добавить" в правом верхнем углу страницы списка модели —
   обязательно ВИДИМА. Возвращаем её, если глобальные правила её спрятали. */
.object-tools li,
.object-tools a.addlink,
.object-tools .addlink {
  display: inline-block !important;
}

/* ---------- Submit-row внизу формы ---------- */

.submit-row {
  background: var(--apple-card) !important;
  border: 1px solid var(--apple-border) !important;
  border-radius: 12px !important;
  padding: 16px 20px !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04) !important;
}

/* ---------- Сообщения ---------- */

ul.messagelist li {
  border-radius: 10px !important;
  border: 1px solid transparent !important;
  font-size: 14px !important;
  padding: 12px 16px !important;
}
ul.messagelist li.success {
  background: #e8f9ed !important;
  color: #1a6b34 !important;
  border-color: #c5ecd0 !important;
}
ul.messagelist li.warning {
  background: #fef5e0 !important;
  color: #93580a !important;
  border-color: #fde8b4 !important;
}
ul.messagelist li.error {
  background: #fde7e7 !important;
  color: #921313 !important;
  border-color: #f8c4c4 !important;
}
ul.messagelist li.info {
  background: #e7f2fd !important;
  color: #075ab8 !important;
  border-color: #c1ddf6 !important;
}

/* ---------- Галочки и чекбоксы ---------- */

input[type="checkbox"], input[type="radio"] {
  accent-color: var(--apple-blue) !important;
  width: 16px;
  height: 16px;
  margin: 0 6px 0 0;
}

/* ---------- Действия (dropdown сверху списка) ---------- */

.actions {
  background: var(--apple-card) !important;
  border-bottom: 1px solid var(--apple-border) !important;
  padding: 12px 16px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap;
}
.actions label {
  margin: 0 !important;
}
.actions select {
  margin: 0 !important;
  height: auto !important;
  min-height: 40px;
  padding: 8px 14px !important;
  line-height: 1.4 !important;
  min-width: 340px;
  font-size: 14px !important;
  color: var(--apple-text) !important;
  background: #fff !important;
}
.actions button,
.actions input[type="submit"],
.actions .button {
  margin: 0 !important;
  height: 40px;
  padding: 0 18px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}
.actions .action-counter {
  color: var(--apple-secondary) !important;
  font-size: 13px !important;
  margin-left: 4px;
}

/* ---------- Inline формы (карточки внутри проекта) ---------- */

.inline-group {
  background: var(--apple-card) !important;
  border: 1px solid var(--apple-border) !important;
  border-radius: 12px !important;
  margin-top: 12px;
  padding: 0 !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04) !important;
  overflow: hidden;
}

/* ---------- Делитель таблиц ---------- */

.paginator {
  background: transparent !important;
  border: 0 !important;
  color: var(--apple-secondary) !important;
  padding: 14px 0 !important;
}

/* ---------- Filter sidebar полностью скрыт ---------- */

/* Блок фильтров справа дублирует возможности списка
   и съедает место. Прячем целиком. Контейнер списка
   восстанавливаем как обычный (без flex), чтобы таблица
   занимала всю ширину. */

#changelist-filter {
  display: none !important;
}

#changelist {
  display: block !important;
}
#changelist-form {
  width: 100% !important;
}

/* ---------- Searchbox ---------- */

#changelist-search input[type="text"] {
  width: 280px;
}
#changelist-search input[type="submit"] {
  margin-left: 6px;
}

/* ---------- Кнопки-иконки в строке списка ---------- */

/* Центрируем содержимое колонок со scan-кнопками */
td.field-scan_btn_yandex,
td.field-scan_btn_google,
th.column-scan_btn_yandex,
th.column-scan_btn_google,
td.field-ya_check,
td.field-google_check,
th.column-ya_check,
th.column-google_check {
  text-align: center !important;
}

a.row-scan-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--apple-blue);
  color: #fff !important;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none !important;
  transition: background 0.15s, transform 0.05s;
  margin: 0 auto;
}
a.row-scan-btn:hover {
  background: var(--apple-blue-hov);
}
a.row-scan-btn:active { transform: scale(0.93); }

/* ---------- Имя проекта в строке: ⚙ + ссылка на отчёт ---------- */

.card-row-name {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

/* Используем нативный <details> — без JS */
details.row-menu {
  position: relative;
  display: inline-block;
}
details.row-menu summary {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  list-style: none !important;
  list-style-type: none !important;
  cursor: pointer;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  color: var(--apple-secondary);
  user-select: none;
  transition: background 0.12s, color 0.12s;
}
/* Выключаем дефолтную стрелочку всеми возможными способами */
details.row-menu summary::-webkit-details-marker {
  display: none !important;
}
details.row-menu summary::marker {
  content: "" !important;
  display: none !important;
  font-size: 0 !important;
}
details.row-menu > summary {
  list-style: none !important;
}
/* SVG-иконка внутри summary */
details.row-menu summary svg {
  display: block;
  pointer-events: none;
}
details.row-menu summary:hover {
  background: rgba(0,113,227,0.10);
  color: var(--apple-blue);
}
details.row-menu[open] summary {
  background: rgba(0,113,227,0.12);
  color: var(--apple-blue);
}

/* Сам выпадающий блок */
.menu-popup {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  background: var(--apple-card);
  border: 1px solid var(--apple-border);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  min-width: 220px;
  padding: 6px 0;
  z-index: 50;
}
.menu-popup a {
  display: block;
  padding: 9px 14px;
  font-size: 13px;
  color: var(--apple-text) !important;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background 0.12s;
}
.menu-popup a:hover {
  background: rgba(0,113,227,0.08);
  color: var(--apple-blue) !important;
}
.menu-popup a.danger {
  color: var(--apple-red) !important;
  border-top: 1px solid var(--apple-border);
  margin-top: 4px;
  padding-top: 9px;
}
.menu-popup a.danger:hover {
  background: rgba(255,59,48,0.10);
}

/* Само название проекта — кликабельная ссылка на отчёт */
a.card-name-link {
  font-weight: 600 !important;
  font-size: 16px !important;
  color: var(--apple-blue) !important;
  text-decoration: none !important;
}
a.card-name-link:hover {
  text-decoration: underline !important;
}

/* ---------- Переключатель Активные / Архив ---------- */

.object-tools a.archive-toggle {
  background: var(--apple-card) !important;
  color: var(--apple-text) !important;
  border: 1px solid var(--apple-border) !important;
  font-weight: 500 !important;
  padding: 8px 16px !important;
  border-radius: 8px !important;
  text-transform: none !important;
  letter-spacing: -0.01em !important;
  font-size: 13px !important;
  display: inline-block !important;
}
.object-tools a.archive-toggle:hover {
  background: rgba(0,113,227,0.06) !important;
  color: var(--apple-blue) !important;
  border-color: var(--apple-blue) !important;
}

/* ---------- Колонка Динамика (Topvizor-style) ---------- */

td.field-dynamics_label,
th.column-dynamics_label {
  text-align: center !important;
  min-width: 200px;
}
.dyn-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  min-width: 180px;
}
.dyn-cell {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 14px;
  font-weight: 600;
  flex: 1;
  justify-content: center;
}
.dyn-num {
  color: var(--apple-text);
}
.dyn-arrow {
  font-size: 13px;
  font-weight: 700;
}
.dyn-arrow.up   { color: var(--apple-green); }
.dyn-arrow.same { color: var(--apple-secondary); }
.dyn-arrow.down { color: var(--apple-red); }
