/*
 * Admin theme fixes (Unfold), аудит D-02 + contrast 2026-10-07.
 *
 * NEXT Lime (#C9F24A) — акцент; текст на лайме — Ink #11151A.
 * Не красить потомков через [class*="bg-primary-*"] * — матчит
 * dark:bg-primary-500 на action bar и ломает сайдбар/select.
 *
 * Подключение ПОСЛЕ unfold/css/styles.css
 * (templates/unfold/layouts/skeleton.html).
 */

:root {
  --np-ink-on-lime: #11151a;
  --np-action-bar-bg: #334155; /* slate-700 — техническая полоса, не neon lime */
  --np-action-bar-fg: #f8fafc;
  --np-sidebar-link: #e2e8f0; /* slate-200 */
  --np-sidebar-muted: #94a3b8; /* slate-400 */
  --np-sidebar-title: #f1f5f9; /* slate-100 */
}

/*
 * Ink on lime — только элемент с классом кнопки/чипа, без *.
 * Не используем [class*="…"]: иначе ловятся dark:bg-primary-500 и hover:*.
 */
.bg-primary-400,
.bg-primary-500,
.bg-primary-600,
.bg-primary-700,
.\!bg-primary-400,
.\!bg-primary-500,
.\!bg-primary-600,
.\!bg-primary-700 {
  color: var(--np-ink-on-lime) !important;
}

.bg-primary-400.text-white,
.bg-primary-500.text-white,
.bg-primary-600.text-white,
.bg-primary-700.text-white,
.\!bg-primary-600.text-white {
  color: var(--np-ink-on-lime) !important;
}

/* Hover primary-кнопок — Ink, не белый. */
button:hover.bg-primary-600,
a:hover.bg-primary-600,
button:hover.bg-primary-500,
a:hover.bg-primary-500 {
  color: var(--np-ink-on-lime) !important;
}

/*
 * Changelist action bar (Unfold: bg-primary-600 / dark:bg-primary-500).
 * Лайм на всю полосу + ink на потомках group.primary → нечитаемый select.
 */
#changelist-actions > div {
  background-color: var(--np-action-bar-bg) !important;
  color: var(--np-action-bar-fg) !important;
}

#changelist-actions,
#changelist-actions .action-counter,
#changelist-actions .all,
#changelist-actions label {
  color: var(--np-action-bar-fg) !important;
}

#changelist-actions .group.primary,
#changelist-actions .group.primary label {
  color: var(--np-action-bar-fg) !important;
}

#changelist-actions select {
  color: var(--np-ink-on-lime) !important;
  background-color: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 0.375rem;
  min-height: 2rem;
  padding: 0.25rem 0.5rem;
}

#changelist-actions select option {
  color: var(--np-ink-on-lime) !important;
  background-color: #ffffff !important;
}

#changelist-actions select option:checked,
#changelist-actions select option:hover {
  color: var(--np-ink-on-lime) !important;
  background-color: #ebf8c6 !important;
}

#changelist-actions button[type="submit"] {
  background-color: #c9f24a !important;
  color: var(--np-ink-on-lime) !important;
}

#changelist-actions a {
  color: #ffffff !important;
}

/* Select2 (autocomplete): выделенная опция — Ink на лайме. */
.select2-container .select2-results__option--highlighted[aria-selected],
.select2-container .select2-results__option--selected,
.select2-container--admin-autocomplete
  .select2-results__option--highlighted {
  color: var(--np-ink-on-lime) !important;
  background-color: #c9f24a !important;
}

.select2-selection__rendered {
  color: inherit !important;
}

/*
 * Форменные <select> вне action bar — читаемые option.
 * Не трогаем #changelist-actions (правила выше).
 */
form select:not(#changelist-actions select),
.aligned select,
fieldset select {
  color: var(--np-ink-on-lime);
  background-color: #ffffff;
}

.dark form select:not(#changelist-actions select),
.dark .aligned select,
.dark fieldset select {
  color: #e8eaed;
  background-color: #0f172a;
}

form select:not(#changelist-actions select) option,
.aligned select option,
fieldset select option {
  color: var(--np-ink-on-lime);
  background-color: #ffffff;
}

.dark form select:not(#changelist-actions select) option,
.dark .aligned select option,
.dark fieldset select option {
  color: #e8eaed;
  background-color: #0f172a;
}

form select:not(#changelist-actions select) option:checked,
form select:not(#changelist-actions select) option:hover,
.aligned select option:checked,
.aligned select option:hover {
  color: var(--np-ink-on-lime) !important;
  background-color: #ebf8c6 !important;
}

.dark form select:not(#changelist-actions select) option:checked,
.dark form select:not(#changelist-actions select) option:hover {
  color: var(--np-ink-on-lime) !important;
  background-color: #c9f24a !important;
}

/*
 * Sidebar branding: длинный SITE_HEADER + SITE_SUBHEADER в h-[65px]
 * давали перенос/наложение. Заголовок — одна строка с ellipsis.
 */
#nav-sidebar #site-name,
#nav-sidebar #site-name a,
#nav-sidebar #site-name > span {
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#nav-sidebar .np-admin-mark__img {
  border-radius: 0.625rem;
  object-fit: cover;
  box-shadow: 0 0 0 1px rgb(15 23 42 / 0.08);
}

.dark #nav-sidebar .np-admin-mark__img {
  box-shadow: 0 1px 2px rgb(0 0 0 / 0.4);
}

.dark #nav-sidebar .np-admin-brand__sub {
  color: var(--np-sidebar-muted) !important;
}

.dark #nav-sidebar .np-admin-brand__title,
.dark #nav-sidebar .np-admin-brand__title a {
  color: var(--np-sidebar-title) !important;
  text-shadow: none;
}

.dark #nav-sidebar .np-admin-search > div {
  border-color: rgb(51 65 85) !important;
  background-color: rgb(15 23 42) !important;
}

.dark #nav-sidebar .np-admin-search > div:hover {
  border-color: rgb(71 85 105) !important;
}

.dark #nav-sidebar .np-admin-search input {
  color: var(--np-sidebar-title) !important;
}

.dark #nav-sidebar .np-admin-search input::placeholder {
  color: var(--np-sidebar-muted) !important;
}

/* Пункты и заголовки разделов сайдбара — явный контраст в dark. */
.dark #nav-sidebar-apps h2 {
  color: var(--np-sidebar-muted) !important;
}

.dark #nav-sidebar-apps a {
  color: var(--np-sidebar-link) !important;
}

.dark #nav-sidebar-apps a .material-symbols-outlined {
  color: inherit !important;
}

.dark #nav-sidebar-apps a:hover,
.dark #nav-sidebar-apps a:hover .material-symbols-outlined {
  color: #c9f24a !important;
}

.dark #nav-sidebar-apps a.active,
.dark #nav-sidebar-apps a.active .material-symbols-outlined {
  color: #c9f24a !important;
}

.dark #nav-sidebar .theme-switch,
.dark #nav-sidebar [data-theme-switch],
.dark #nav-sidebar button {
  color: var(--np-sidebar-link);
}

/*
 * Login — одноколоночная форма (без LOGIN.image / aside).
 */
.dark .np-admin-login #login-form input[type="text"],
.dark .np-admin-login #login-form input[type="password"] {
  background-color: #334155 !important;
  border-color: #94a3b8 !important;
  border-width: 1.5px !important;
  color: #f8fafc !important;
  box-shadow:
    inset 0 1px 2px rgb(0 0 0 / 0.35),
    0 0 0 1px rgb(148 163 184 / 0.15);
}

.dark .np-admin-login #login-form input[type="text"]:hover,
.dark .np-admin-login #login-form input[type="password"]:hover {
  border-color: #cbd5e1 !important;
  background-color: #3f4f63 !important;
}

.dark .np-admin-login #login-form input[type="text"]:focus,
.dark .np-admin-login #login-form input[type="password"]:focus {
  border-color: #c9f24a !important;
  outline-color: #c9f24a !important;
  box-shadow:
    inset 0 1px 2px rgb(0 0 0 / 0.35),
    0 0 0 2px rgb(201 242 74 / 0.35);
}

.dark .np-admin-login #login-form label {
  color: #e2e8f0 !important;
}

.np-admin-login h1 .text-primary-600,
.np-admin-login h1 .dark\:text-primary-500,
.dark .np-admin-login h1 [class*="text-primary-"] {
  letter-spacing: -0.02em;
}

/* Общее оформление выбора файла в админке: та же рамка и кнопка, что у обложки статьи.
   Класс admin-file-input ставится на «голые» поля, чтобы вид был одинаковым на всех
   страницах, а не только на статье. */
form input[type="file"],
input[type="file"].admin-file-input {
  width: 100%;
  padding: 14px 16px;
  border: 1px dashed rgba(148, 163, 184, 0.55);
  border-radius: 12px;
  background: rgba(148, 163, 184, 0.06);
  color: inherit;
  font-size: 14px;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

form input[type="file"],
input[type="file"].admin-file-input:hover {
  border-color: #2563eb;
  border-style: solid;
  background: rgba(37, 99, 235, 0.09);
}

form input[type="file"],
input[type="file"].admin-file-input::file-selector-button {
  margin-right: 14px;
  padding: 9px 16px;
  border: 0;
  border-radius: 9px;
  background: #2563eb;
  color: #ffffff;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

form input[type="file"],
input[type="file"].admin-file-input::file-selector-button:hover {
  background: #1d4ed8;
}
