/* .no-dark — escape-hatch: елемент і його нащадки НЕ перефарбовуються темою.
   Потрібен там, де стилі задає користувач (міні-прев'ю листа в конструкторі розсилки):
   вони мають виглядати рівно так, як побачить клієнт. Саме прев'ю листа — в iframe,
   тож туди CSS теми й так не потрапляє. */

/**
 * 🌙 Темна тема кабінетів (вендор + адмінка).
 * Вмикається data-theme="dark" на <html> (тумблер у сайдбарі, стан у localStorage).
 * Вітрини НЕ стосується — там свідомо світла handmade-естетика.
 *
 * Три шари:
 *   1) семантичні токени (--color-*, --vp-*, --ap-*) — усе, що написане змінними, темніє саме;
 *   2) класи компонентів (.vp-card/.vp-btn/.admin-card/таблиці/поля) — явні правила;
 *   3) інлайнові фони/кольори, яких у кабінетах багато — атрибутні селектори + !important
 *      (інакше інлайн-стиль перемагає будь-який клас).
 */

/* ⚪ Світлі теми — кажемо схему явно. Без цього користувач із ТЕМНОЮ системою бачив би
   на світлій сторінці темні нативні попапи: та сама неузгодженість, лише навпаки.
   Тут, а не у variables.css: адмінка variables.css не вантажить взагалі, а dark.css —
   так, тож це єдине місце, спільне для всіх трьох кабінетів. */
:root[data-theme^="light"],
:root:not([data-theme]) { color-scheme: light; }

/* 🔽 Розкритий список <select> — окрема історія від color-scheme.
   Спостереження (скрін Слави, Chrome/Windows): сторінка темна, закритий селект
   темний, а список, що випадає, — білий із синім виділенням. color-scheme: dark
   на :root при цьому стояв і був задеплоєний. Чому саме він не вплинув на попап —
   не перевіряв; факт лише той, що не вплинув.
   Достукатись до попапу через .ui-select неможливо: він не в нашому DOM. Те, що
   браузер таки бере до уваги, — кольори самих <option>.
   На справжньому телефоні це ні на що не впливає: там відкривається рідний пікер
   iOS/Android зі своєю темою. Тобто правило лікує саме десктопний Chrome. */
:root[data-theme^="dark"] option,
:root[data-theme^="dark"] optgroup {
  background-color: var(--color-bg-alt, #2b2b2b);
  color: var(--color-text, #e6e2dc);
}

:root[data-theme^="dark"] {
  /* 🔴 Головне оголошення теми — і його тут довго не було.
     Токени фарбують лише те, що малюємо МИ. Нативні елементи браузер малює сам за
     системною схемою: попап <select>, скролбари, автозаповнення, календар <input
     type="date">. Тож на темній сторінці випадав білий системний список із синім
     виділенням — селект виглядав чужим, і полагодити це стилями .ui-select було
     неможливо: попап не в нашому DOM.
     color-scheme каже браузеру, у якій схемі малювати ЙОГО частину. Один рядок
     замість власного дропдауна — і з рідною доступністю та мобільним UX.

     ⚠️ Але сам СПИСОК <select> цього не слухає (див. правило для option нижче). */
  color-scheme: dark;

  /* Палітра: 2F2A25 (полотно) · 3F3C3A (поверхня) · 605D5C (межі) · A5ABAF (приглушений текст)
     · D64218 (акцент) · 32373D (сайдбар — холодний графіт для контрасту з теплим полотном). */
  --color-primary:      #32373d;   /* сайдбар */
  --color-bg:           #2f2a25;   /* полотно */
  --color-bg-alt:       #3a3532;
  --color-text:         #ddd8d2;   /* не білий — м'якший, менше ріже очі */
  --color-text-muted:   #9ea2a4;   /* ♿ AA: на bg 5.52:1, на bg-alt 4.70:1 (було #94989a = 4.16 ❌) */
  --color-border:       #4b4745;   /* межі тихіші, ніж у палітрі — не «сітка» */
  --color-accent:       #b5562f;   /* ♿ AA: білий на кнопці 4.84:1 (було #c2603b = 4.17 ❌) */
  --color-accent-hover: #d1704b;
  --color-accent-ink:   #dd8a63;   /* текст-акцент: читабельний, але не яскравий */

  --shadow-sm: 0 1px 2px rgba(0,0,0,.28);
  --shadow-md: 0 4px 12px rgba(0,0,0,.32);
  --shadow-lg: 0 10px 28px rgba(0,0,0,.36);

  --color-success-bg: #2b3a30; --color-success-fg: #85bf9b; --color-success-border: #3e5647; --color-success: #57a877;
  --color-warning-bg: #3d3527; --color-warning-fg: #d0ae7d; --color-warning-border: #5a4d36; --color-warning: #c9973f;
  --color-danger-bg:  #402a24; --color-danger-fg:  #d59480; --color-danger-border:  #5e3f35; --color-danger:  #d64218;
  --color-info-bg:    #2f3740; --color-info-fg:    #9db2c2; --color-info-border:    #46525e; --color-info:    #6f92ad;
  --color-muted-bg:   #3a3532; --color-muted-fg:   #a5abaf;

  /* Поверхні карток */
  --surface:    #3f3c3a;
  --surface-2:  #37332f;   /* поле вводу / шапка таблиці */
  --ap-surface: #3f3c3a;
  --vp-surface: #3f3c3a;
}

/* ─── 2) Компоненти ─────────────────────────────────────────────────────── */
:root[data-theme^="dark"] .vp-card,
:root[data-theme^="dark"] .admin-card,
:root[data-theme^="dark"] .stat-card,
:root[data-theme^="dark"] .promo-card,
:root[data-theme^="dark"] .modal-box,
:root[data-theme^="dark"] .order-admin-card,
:root[data-theme^="dark"] details.vp-card {
  background: var(--surface) !important;
  color: var(--color-text);
  border: 1px solid var(--color-border);
}
/* Класові елементи адмінки із background:white у CSS (інлайн-компат їх не ловить) */
:root[data-theme^="dark"] .editor-screen-back,
:root[data-theme^="dark"] .csel-btn,
:root[data-theme^="dark"] .csel-dropdown,
:root[data-theme^="dark"] .order-action-btn,
:root[data-theme^="dark"] .prod-type-tab {
  background: var(--surface-2) !important;
  color: var(--color-text) !important;
  border-color: var(--color-border) !important;
}
:root[data-theme^="dark"] .csel-option:hover,
:root[data-theme^="dark"] .csel-option--active { background: var(--surface) !important; }

/* Кнопки-«привиди» (світлий фон + акцентний текст) */
:root[data-theme^="dark"] .vp-btn--outline,
:root[data-theme^="dark"] .vp-btn--danger,
:root[data-theme^="dark"] .btn-outline,
:root[data-theme^="dark"] .btn-ghost,
:root[data-theme^="dark"] .promo-subtab,
:root[data-theme^="dark"] .mod-view-pill,
:root[data-theme^="dark"] .theme-toggle {
  background: var(--surface-2) !important;
  border-color: var(--color-border) !important;
}
:root[data-theme^="dark"] .vp-btn--outline { color: var(--color-accent-ink) !important; }
:root[data-theme^="dark"] .vp-btn--outline:hover,
:root[data-theme^="dark"] .btn-outline:hover,
:root[data-theme^="dark"] .promo-subtab:hover { background: #2a231a !important; }
:root[data-theme^="dark"] .promo-subtab.active,
:root[data-theme^="dark"] .mod-view-pill.active { background: var(--color-accent) !important; color: #fff !important; }

/* Поля вводу */
:root[data-theme^="dark"] input,
:root[data-theme^="dark"] select,
:root[data-theme^="dark"] textarea,
:root[data-theme^="dark"] .vp-input,
:root[data-theme^="dark"] .ap-inp,
:root[data-theme^="dark"] .bb-inp {
  background: var(--surface-2) !important;
  color: var(--color-text) !important;
  border-color: var(--color-border) !important;
}
:root[data-theme^="dark"] option { background: var(--surface-2); color: var(--color-text); }
:root[data-theme^="dark"] input::placeholder,
:root[data-theme^="dark"] textarea::placeholder { color: #7d7264; }
/* Іконки браузера в date/number-полях — світлі */
:root[data-theme^="dark"] input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(1) brightness(.8); }

/* Таблиці */
:root[data-theme^="dark"] table thead tr { background: var(--surface-2) !important; }
:root[data-theme^="dark"] .admin-table tr:hover td { background: var(--surface-2); }
:root[data-theme^="dark"] th, :root[data-theme^="dark"] td { border-color: var(--color-border) !important; }

/* Числа KPI та інші «жирні» значення мусять лишатись контрастними. */
:root[data-theme^="dark"] .vp-kpi__value,
:root[data-theme^="dark"] .stat-num { color: var(--color-text) !important; }
/* Дрібний службовий текст (адреса доставки, підписи) — не топити в темряві. */
:root[data-theme^="dark"] .vp-kpi__sub,
:root[data-theme^="dark"] .vp-kpi__label { color: var(--color-text-muted) !important; }

/* Решта «білих» класів кабінету (задані background:white просто в CSS). */
:root[data-theme^="dark"] .vp-kpi,
:root[data-theme^="dark"] .vp-acc,
:root[data-theme^="dark"] .vp-subtabs,
:root[data-theme^="dark"] .vp-subpanel,
:root[data-theme^="dark"] .vp-step,
:root[data-theme^="dark"] .vp-dropzone,
:root[data-theme^="dark"] .vp-login-box,
:root[data-theme^="dark"] .vp-switch,
:root[data-theme^="dark"] .vp-promo-card,
:root[data-theme^="dark"] .promo-pill,
:root[data-theme^="dark"] .ev-pills,
:root[data-theme^="dark"] .ev-dd-menu,
:root[data-theme^="dark"] .cs-trigger,
:root[data-theme^="dark"] .cs-options {
  background: var(--surface) !important;
  color: var(--color-text);
  border-color: var(--color-border);
}
/* Активні пігулки під-табів лишаються акцентними */
:root[data-theme^="dark"] .promo-pill[style*="var(--color-accent)"]:not(.no-dark):not(.no-dark *) { background: var(--color-accent) !important; color: #fff !important; }

/* ─── 3) Інлайнові фони (світлі) → поверхня теми ───────────────────────── */
:root[data-theme^="dark"] [style*="background:#fff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background: #fff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#FFF"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:white"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background: white"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background-color:#fff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background-color: #fff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background-color:white"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fafafa"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f9fafb"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f8f9fa"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f4f4f5"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f8f8f8"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fdf5ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f5f5f5"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f1f5f9"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#faf7f2"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#faf8f4"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fff7ed"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f0f0f0"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f8fafc"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fafaf8"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fdf8f3"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fff8f3"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fff8f0"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fff8ee"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fff4ee"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f4eee4"]:not(.no-dark):not(.no-dark *) {
  background: var(--surface) !important;
  color: var(--color-text);
  border-color: var(--color-border);
}
/* М'які кольорові плашки (успіх/увага/помилка/інфо), задані інлайном — приглушуємо */
:root[data-theme^="dark"] [style*="background:#dcfce7"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f0fdf4"]:not(.no-dark):not(.no-dark *) { background: var(--color-success-bg) !important; color: var(--color-success-fg) !important; }
:root[data-theme^="dark"] [style*="background:#fef3c7"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fff8e1"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fff8eb"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fffbeb"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fff3e0"]:not(.no-dark):not(.no-dark *) { background: var(--color-warning-bg) !important; color: var(--color-warning-fg) !important; }
:root[data-theme^="dark"] [style*="background:#fee2e2"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fef2f2"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fdecea"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fff5f5"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#ffebee"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fff1f2"]:not(.no-dark):not(.no-dark *) { background: var(--color-danger-bg) !important; color: var(--color-danger-fg) !important; }
:root[data-theme^="dark"] [style*="background:#e0f2fe"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#eef2ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#eff6ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#dbeafe"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f0f9ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f0f7ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f0ebff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f3e5f5"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#faf8ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#faf5ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#faf7ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f3e8ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#ede9fe"]:not(.no-dark):not(.no-dark *) { background: var(--color-info-bg) !important; color: var(--color-info-fg) !important; }
/* Світлі плашки з пробілом після двокрапки (background: #xxx) — той самий ремап */
:root[data-theme^="dark"] [style*="background: #f8fafc"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background: #fafafa"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background: #f0f0f0"]:not(.no-dark):not(.no-dark *) {
  background: var(--surface) !important; color: var(--color-text); border-color: var(--color-border);
}
/* Друга хвиля світлих тінтів (нейтральні/кольорові), знайдених у наскрізному аудиті */
:root[data-theme^="dark"] [style*="background:#f3f3f3"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f4f4f4"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f7f7f7"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f8f5f0"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f8f7f4"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fbfbfc"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fdf9f5"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#faf5ef"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fffdf5"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f0ebe3"]:not(.no-dark):not(.no-dark *) {
  background: var(--surface) !important; color: var(--color-text); border-color: var(--color-border);
}
:root[data-theme^="dark"] [style*="background:#fff4e5"]:not(.no-dark):not(.no-dark *) { background: var(--color-warning-bg) !important; color: var(--color-warning-fg) !important; }
:root[data-theme^="dark"] [style*="background:#fce4ec"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fff8f8"]:not(.no-dark):not(.no-dark *) { background: var(--color-danger-bg) !important; color: var(--color-danger-fg) !important; }
:root[data-theme^="dark"] [style*="background:#e0f2f1"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f0f7f4"]:not(.no-dark):not(.no-dark *) { background: var(--color-success-bg) !important; color: var(--color-success-fg) !important; }
:root[data-theme^="dark"] [style*="background:#f0f4ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#e8eaf6"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f5f0ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f5f3ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f7f4fb"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f8f6ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#f9f5ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="background:#fbfbff"]:not(.no-dark):not(.no-dark *) { background: var(--color-info-bg) !important; color: var(--color-info-fg) !important; }

/* Темні тексти на світлому — світлішаємо */
:root[data-theme^="dark"] [style*="color:#333"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#555"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#475569"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#1a1a1a"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#111"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#222"]:not(.no-dark):not(.no-dark *) { color: var(--color-text) !important; }
:root[data-theme^="dark"] [style*="color:#999"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#888"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#666"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#64748b"]:not(.no-dark):not(.no-dark *) { color: var(--color-text-muted) !important; }
/* Тексти статусів — на приглушені токени, щоб не «кричали» */
:root[data-theme^="dark"] [style*="color:#166534"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#15803d"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#16a34a"]:not(.no-dark):not(.no-dark *) { color: var(--color-success-fg) !important; }
:root[data-theme^="dark"] [style*="color:#92400e"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#b45309"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#7a4400"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#5b4636"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#8a6d3b"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#d97706"]:not(.no-dark):not(.no-dark *) { color: var(--color-warning-fg) !important; }
:root[data-theme^="dark"] [style*="color:#991b1b"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#9f1239"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#b91c1c"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#dc2626"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#e53935"]:not(.no-dark):not(.no-dark *) { color: var(--color-danger-fg) !important; }
/* Сині/фіолетові інфо-тексти */
:root[data-theme^="dark"] [style*="color:#374151"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#4338ca"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#1e40af"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#3730a3"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#9333ea"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="color:#6a3fa0"]:not(.no-dark):not(.no-dark *) { color: var(--color-info-fg) !important; }

/* Межі, задані інлайном світлим сірим/кольоровим */
:root[data-theme^="dark"] [style*="border:1px solid #eee"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="border:1px solid #e5e7eb"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="1px solid #fde68a"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="1px dashed #fde68a"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="1px solid #ffe082"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="1px dashed #ffe082"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="1px solid #e9d5ff"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="1px solid #bbf7d0"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="1px solid #93c5fd"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="1px solid #d8ccf8"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="1px solid #fcd34d"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="border:1.5px solid #fecdd3"]:not(.no-dark):not(.no-dark *) { border-color: var(--color-border) !important; }

/* Прев'ю-зображення трохи приглушуємо, щоб не сліпили */
:root[data-theme^="dark"] img:not(.logo-badge img) { filter: brightness(.9); }


/* ─── Світлі хардкоди фону (згенеровано скопом) ────────────────────────── */
    :root[data-theme^="dark"] [style*="background:#fff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#ffffff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #ffffff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fafafa"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fafafa"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f5f5f5"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f5f5f5"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f0f0f0"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f0f0f0"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f3f4f6"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f3f4f6"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f8fafc"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f8fafc"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f9fafb"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f9fafb"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f8f9fa"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f8f9fa"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f1f5f9"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f1f5f9"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#faf7f2"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #faf7f2"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#faf8f4"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #faf8f4"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f4eee4"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f4eee4"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f5f0ea"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f5f0ea"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fdf8f3"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fdf8f3"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fdfaf7"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fdfaf7"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fffdf9"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fffdf9"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fcfcfc"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fcfcfc"]:not(.no-dark):not(.no-dark *) {
      background: var(--surface) !important;
    }
    :root[data-theme^="dark"] [style*="background:#eff6ff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #eff6ff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#e0f2fe"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #e0f2fe"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#eef2ff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #eef2ff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f0f9ff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f0f9ff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#e3f2fd"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #e3f2fd"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f0ebff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f0ebff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#ede9fe"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #ede9fe"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f3e8ff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f3e8ff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f3e5f5"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f3e5f5"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#ede7f6"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #ede7f6"]:not(.no-dark):not(.no-dark *) {
      background: var(--color-info-bg) !important; color: var(--color-info-fg) !important;
    }
    :root[data-theme^="dark"] [style*="background:#ecfdf5"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #ecfdf5"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f0fdf4"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #f0fdf4"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#dcfce7"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #dcfce7"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#e8f5e9"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #e8f5e9"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#e6f4ea"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #e6f4ea"]:not(.no-dark):not(.no-dark *) {
      background: var(--color-success-bg) !important; color: var(--color-success-fg) !important;
    }
    :root[data-theme^="dark"] [style*="background:#fffbeb"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fffbeb"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fefce8"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fefce8"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fff8e1"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fff8e1"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fef3c7"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fef3c7"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fff7ed"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fff7ed"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fff8f3"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fff8f3"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fff3e0"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fff3e0"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fffde7"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fffde7"]:not(.no-dark):not(.no-dark *) {
      background: var(--color-warning-bg) !important; color: var(--color-warning-fg) !important;
    }
    :root[data-theme^="dark"] [style*="background:#fdecea"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fdecea"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fee2e2"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fee2e2"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fef2f2"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fef2f2"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fff5f5"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fff5f5"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fff1f2"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #fff1f2"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#ffebee"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background: #ffebee"]:not(.no-dark):not(.no-dark *) {
      background: var(--color-danger-bg) !important; color: var(--color-danger-fg) !important;
    }

    /* Дочірні елементи плашок успадковують читабельний колір (інакше <b>/<span> лишаються темними) */
    :root[data-theme^="dark"] [style*="background:#eff6ff"] *,
    :root[data-theme^="dark"] [style*="background:#ecfdf5"] *,
    :root[data-theme^="dark"] [style*="background:#fffbeb"] *,
    :root[data-theme^="dark"] [style*="background:#fefce8"] *,
    :root[data-theme^="dark"] [style*="background:#fdecea"] *,
    :root[data-theme^="dark"] [style*="background:#f0fdf4"] *,
    :root[data-theme^="dark"] [style*="background:#fff8e1"] * { color: inherit !important; }


    /* Довиловлені відтінки (панель «Куди», рядок ТТН, дрібні плашки) */
    :root[data-theme^="dark"] [style*="background:#fafaf7"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fffaf2"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fffdf9"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f7f7f5"]:not(.no-dark):not(.no-dark *) {
      background: var(--surface-2) !important;
      color: var(--color-text);
      border-color: var(--color-border) !important;
    }
    :root[data-theme^="dark"] [style*="background:#ecfeff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#e0f7fa"]:not(.no-dark):not(.no-dark *) {
      background: var(--color-info-bg) !important; color: var(--color-info-fg) !important;
    }
    :root[data-theme^="dark"] [style*="background:#ecfeff"] *,
    :root[data-theme^="dark"] [style*="background:#fef9c3"] * { color: inherit !important; }
    :root[data-theme^="dark"] [style*="background:#fef9c3"]:not(.no-dark):not(.no-dark *) {
      background: var(--color-warning-bg) !important; color: var(--color-warning-fg) !important;
    }
    /* Світлі межі поруч із такими блоками */
    :root[data-theme^="dark"] [style*="border-top:1px solid #cffafe"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="border:1px solid #cffafe"]:not(.no-dark):not(.no-dark *) { border-color: var(--color-info-border) !important; }


    /* ─── Світлі ГРАДІЄНТИ (адмінка любить linear-gradient зі світлих відтінків) ──
       Атрибутні селектори по конкретних hex не ловлять gradient-рядки, тож ловимо
       за початком декларації: 'linear-gradient(135deg,#f' → це завжди світла плашка.

       🔴 Але НЕ коли градієнт — це самі ЛІТЕРИ (background-clip:text разом із
       text-fill-color:transparent). Там background не плашка, а фарба тексту:
       підмінивши його на колір поверхні, ми робили напис невидимим — так зникало
       слово «Platinum» на темній картці. Такі написи вже намальовані під темне тло,
       тож просто не чіпаємо їх. */
    :root[data-theme^="dark"] [style*="linear-gradient(135deg,#f"]:not(.no-dark):not(.no-dark *):not([style*="text-fill-color"]),
    :root[data-theme^="dark"] [style*="linear-gradient(135deg, #f"]:not(.no-dark):not(.no-dark *):not([style*="text-fill-color"]),
    :root[data-theme^="dark"] [style*="linear-gradient(90deg,#f"]:not(.no-dark):not(.no-dark *):not([style*="text-fill-color"]),
    :root[data-theme^="dark"] [style*="linear-gradient(180deg,#f"]:not(.no-dark):not(.no-dark *):not([style*="text-fill-color"]),
    :root[data-theme^="dark"] [style*="linear-gradient(135deg,#e"]:not(.no-dark):not(.no-dark *):not([style*="text-fill-color"]),
    :root[data-theme^="dark"] [style*="linear-gradient(135deg,white"]:not(.no-dark):not(.no-dark *):not([style*="text-fill-color"]),
    :root[data-theme^="dark"] [style*="linear-gradient(to top,var(--color-bg)"]:not(.no-dark):not(.no-dark *) {
      background: var(--surface) !important;
      color: var(--color-text) !important;
      border-color: var(--color-border) !important;
    }
    :root[data-theme^="dark"] [style*="linear-gradient(135deg,#f"] *,
    :root[data-theme^="dark"] [style*="linear-gradient(90deg,#f"] * { color: inherit !important; }
    /* Акцентні градієнти (кнопки ТОП/VIP) лишаємо — вони й так контрастні на білому тексті.
       Виняток той самий: коли градієнт малює ЛІТЕРИ, підміна фону їх ховає. */
    :root[data-theme^="dark"] [style*="linear-gradient(135deg,#f59e0b"]:not(.no-dark):not(.no-dark *):not([style*="text-fill-color"]),
    :root[data-theme^="dark"] [style*="linear-gradient(135deg,#f5c98a"]:not(.no-dark):not(.no-dark *):not([style*="text-fill-color"]) {
      background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hover)) !important;
      color: #1b1512 !important;
    }
    :root[data-theme^="dark"] [style*="linear-gradient(135deg,#f59e0b"] *,
    :root[data-theme^="dark"] [style*="linear-gradient(135deg,#f5c98a"] * { color: inherit !important; }

    /* Світлі межі, які лишались яскравими поруч із такими блоками */
    :root[data-theme^="dark"] [style*="1px solid #ddd6fe"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="1.5px solid #93c5fd"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="1px solid #bbf7d0"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="1.5px solid #ffe082"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="1px solid #fed7aa"]:not(.no-dark):not(.no-dark *) { border-color: var(--color-border) !important; }


    /* Довиловлені сині/жовті відтінки (таксономія, банери, чіпи) */
    :root[data-theme^="dark"] [style*="background:#eef6ff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#dbeafe"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#cffafe"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#e8f0fe"]:not(.no-dark):not(.no-dark *) {
      background: var(--color-info-bg) !important; color: var(--color-info-fg) !important;
    }
    :root[data-theme^="dark"] [style*="background:#eef6ff"] *,
    :root[data-theme^="dark"] [style*="background:#dbeafe"] *,
    :root[data-theme^="dark"] [style*="background:#fde68a"] *,
    :root[data-theme^="dark"] [style*="background:#fffbe6"] * { color: inherit !important; }
    :root[data-theme^="dark"] [style*="background:#fffbe6"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fde68a"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#ffedd5"]:not(.no-dark):not(.no-dark *) {
      background: var(--color-warning-bg) !important; color: var(--color-warning-fg) !important;
    }


    /* Довиловлені світлі відтінки (сезон/блог/попапи/довідка) */
    :root[data-theme^="dark"] [style*="background:#fafaf8"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#faf8ff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#f0f7ff"]:not(.no-dark):not(.no-dark *),
    :root[data-theme^="dark"] [style*="background:#fbfbfb"]:not(.no-dark):not(.no-dark *) {
      background: var(--surface) !important; color: var(--color-text);
      border-color: var(--color-border);
    }
    /* Прев'ю публічної сторінки (правові документи) лишається світлим — .no-dark. */

/* ─── Тумблер теми ─────────────────────────────────────────────────────── */
.theme-toggle {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 12px; border-radius: 6px; cursor: pointer;
  font-size: 0.82rem; color: rgba(255,255,255,0.55);
  background: none; border: none; font-family: inherit; text-align: left; width: 100%;
}
.theme-toggle:hover { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.9); }
/* У сайдбарі (темний фон) тумблер лишається «прозорим», а не поверхнею картки */
:root[data-theme^="dark"] .vp-sidebar .theme-toggle,
:root[data-theme^="dark"] .admin-sidebar .theme-toggle {
  background: none !important; border: none !important; color: rgba(255,255,255,0.6);
}


/* Конструктор розсилки: міні-прев'ю героя та контейнер прев'ю — стилі клієнта, не чіпаємо. */
:root[data-theme^="dark"] .bldr-hero-prev,
:root[data-theme^="dark"] .bldr-hero-prev *,
:root[data-theme^="dark"] .no-dark,
:root[data-theme^="dark"] .no-dark * { border-color: inherit; }


/* ═══ Фінальний шар (виграє за порядком) ══════════════════════════════════════
   1) БУДЬ-ЯКИЙ світлий градієнт (усі кути), 2) винятки-акценти, 3) hover/active. */

/* 1) Світлі градієнти під усіма кутами: 135deg / 90deg / 180deg / to right / to bottom */
:root[data-theme^="dark"] [style*="linear-gradient"][style*=",#f"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="linear-gradient"][style*=",#e"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="linear-gradient"][style*=",#d"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="linear-gradient"][style*=", #f"]:not(.no-dark):not(.no-dark *),
:root[data-theme^="dark"] [style*="linear-gradient"][style*=",white"]:not(.no-dark):not(.no-dark *) {
  background: var(--surface) !important;
  color: var(--color-text) !important;
  border-color: var(--color-border) !important;
}
:root[data-theme^="dark"] [style*="linear-gradient"][style*=",#f"] *,
:root[data-theme^="dark"] [style*="linear-gradient"][style*=",#e"] *,
:root[data-theme^="dark"] [style*="linear-gradient"][style*=",#d"] * { color: inherit !important; }

/* 2) Винятки: акцентні градієнти кнопок мають лишатись акцентними */
:root[data-theme^="dark"] [style*="linear-gradient(135deg,#f59e0b"],
:root[data-theme^="dark"] [style*="linear-gradient(135deg,#d97706"],
:root[data-theme^="dark"] [style*="linear-gradient(135deg,var(--color-accent)"],
:root[data-theme^="dark"] [style*="linear-gradient(135deg,#f5c98a"] {
  background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hover)) !important;
  color: #1b1512 !important;
}
:root[data-theme^="dark"] [style*="linear-gradient(135deg,#f59e0b"] *,
:root[data-theme^="dark"] [style*="linear-gradient(135deg,#f5c98a"] * { color: inherit !important; }

/* Дропзони завантаження фото */
:root[data-theme^="dark"] .vp-dropzone,
:root[data-theme^="dark"] [class*="dropzone"],
:root[data-theme^="dark"] [id*="dropzone"],
:root[data-theme^="dark"] [class*="drop-area"] {
  background: var(--surface-2) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text-muted) !important;
}

/* 3) Hover / active — щоб підсвітка була темною, а не білою.
   ЛИШЕ для миші: на тачі :hover «залипає» після тапу й малює темні «полоски»
   по рядках/картках (особливо на моб-картках товарів). */
@media (hover: hover) and (pointer: fine) {
  :root[data-theme^="dark"] .admin-table tbody tr:hover td,
  :root[data-theme^="dark"] table tbody tr:hover td { background: var(--surface-2) !important; }
}
:root[data-theme^="dark"] .vp-nav-link:hover,
:root[data-theme^="dark"] .admin-nav-link:hover { background: rgba(255,255,255,0.08); }
:root[data-theme^="dark"] .vp-nav-link.active,
:root[data-theme^="dark"] .admin-nav-link.active { background: var(--color-accent); color: #1b1512; }
:root[data-theme^="dark"] .btn:hover,
:root[data-theme^="dark"] .vp-btn--outline:hover,
:root[data-theme^="dark"] .btn-outline:hover,
:root[data-theme^="dark"] .btn-ghost:hover { background: var(--color-bg-alt) !important; }
:root[data-theme^="dark"] a:hover { color: var(--color-accent-ink); }


/* Пом'якшення контрасту: заголовки й «жирні» числа не сліпучо-білі, зображення трохи тихіші. */
:root[data-theme^="dark"] h1, :root[data-theme^="dark"] h2, :root[data-theme^="dark"] h3 { color: var(--color-text); }
:root[data-theme^="dark"] b, :root[data-theme^="dark"] strong { color: inherit; font-weight: 650; }
:root[data-theme^="dark"] img:not(.logo-badge img) { filter: brightness(.86) saturate(.92); }
:root[data-theme^="dark"] .vp-btn, :root[data-theme^="dark"] .btn-primary { color: #fdf6f1; }


/* ═══════════════════════════════════════════════════════════════════════════
   🎨 ВАРІАНТИ ТЕМНОЇ ТЕМИ — перевизначають ЛИШЕ токени, решта правил спільна.
   ═══════════════════════════════════════════════════════════════════════════ */

/* 🔥 Ember — вугілля з теплою іржею (5F605B · 323232 · 20100E · 5E3123 · 923B1B · B7622C) */
:root[data-theme="dark-ember"] {
  --color-primary: #191412;  --color-bg: #20100e;   --color-bg-alt: #2b1a16;
  --surface: #322220;        --surface-2: #2a1b18;  --ap-surface: #322220; --vp-surface: #322220;
  --color-text: #ded7d1;     --color-text-muted: #9a938c; --color-border: #4a332d;
  --color-accent: #b7622c;   --color-accent-hover: #c67a45; --color-accent-ink: #d68f5d;
  --color-success-bg:#22301f; --color-success-fg:#8fbe90; --color-success-border:#39482f; --color-success:#5c8f5f;
  --color-warning-bg:#33261a; --color-warning-fg:#d3ac7c; --color-warning-border:#4d3826; --color-warning:#b7622c;
  --color-danger-bg:#3a201a;  --color-danger-fg:#d38f7d;  --color-danger-border:#56302a;  --color-danger:#923b1b;
  --color-info-bg:#26262a;    --color-info-fg:#a9adb2;    --color-info-border:#3d3d43;    --color-info:#5f605b;
  --color-muted-bg:#2b1a16;   --color-muted-fg:#9a938c;
}

/* 🌊 Teal — графіт із бірюзою (098698 · 3D444B · 505A63 · AEC0C2 · BAB1AD · D9D4D1) */
:root[data-theme="dark-teal"] {
  --color-primary: #2b3138;  --color-bg: #23282e;   --color-bg-alt: #2d343b;
  --surface: #3d444b;        --surface-2: #333a41;  --ap-surface: #3d444b; --vp-surface: #3d444b;
  --color-text: #d9d4d1;     --color-text-muted: #9aa3a8; --color-border: #4c545c;
  --color-accent: #098698;   --color-accent-hover: #0b9db2; --color-accent-ink: #57b3c0;
  --color-success-bg:#1f3630; --color-success-fg:#84c3ab; --color-success-border:#2f4c43; --color-success:#3f9e83;
  --color-warning-bg:#3a3428; --color-warning-fg:#cfb389; --color-warning-border:#544b39; --color-warning:#b08c52;
  --color-danger-bg:#3a2a2a;  --color-danger-fg:#d09a95;  --color-danger-border:#553d3c;  --color-danger:#a75f59;
  --color-info-bg:#26333a;    --color-info-fg:#aec0c2;    --color-info-border:#3c4c55;    --color-info:#4a7983;
  --color-muted-bg:#2d343b;   --color-muted-fg:#bab1ad;
}

/* 🛹 Asphalt — глибокий графіт із бурштином (C5630C · A47F6F · 415057 · 33353A · 1A1F24 · 060A0D) */
:root[data-theme="dark-asphalt"] {
  --color-primary: #121619;  --color-bg: #1a1f24;   --color-bg-alt: #242930;
  --surface: #2b3036;        --surface-2: #23282e;  --ap-surface: #2b3036; --vp-surface: #2b3036;
  --color-text: #d8d3ce;     --color-text-muted: #98a0a5; --color-border: #414a52;
  --color-accent: #c5630c;   --color-accent-hover: #d97a29; --color-accent-ink: #dd9256;
  --color-success-bg:#1f3128; --color-success-fg:#88c2a0; --color-success-border:#2f4738; --color-success:#4f9673;
  --color-warning-bg:#38301f; --color-warning-fg:#d2ae7a; --color-warning-border:#51452e; --color-warning:#c5630c;
  --color-danger-bg:#38261f;  --color-danger-fg:#d39784;  --color-danger-border:#53382e;  --color-danger:#a45536;
  --color-info-bg:#27333a;    --color-info-fg:#a3b6c0;    --color-info-border:#3b4b55;    --color-info:#415057;
  --color-muted-bg:#242930;   --color-muted-fg:#a47f6f;
}

/* 🗡 Torch — холодна ніч із вогнем (050C0E · 132B35 · 1C3B42 · 4A7983 · 7DA7A6 · BD3F16 · E99320) */
:root[data-theme="dark-torch"] {
  --color-primary: #0a171c;  --color-bg: #0d1b21;   --color-bg-alt: #132b35;
  --surface: #1c3b42;        --surface-2: #173038;  --ap-surface: #1c3b42; --vp-surface: #1c3b42;
  --color-text: #d5dedd;     --color-text-muted: #8fa5a8; --color-border: #2e5058;
  --color-accent: #bd3f16;   --color-accent-hover: #d4552b; --color-accent-ink: #e99320;
  --color-success-bg:#173230; --color-success-fg:#7da7a6; --color-success-border:#28494a; --color-success:#4a7983;
  --color-warning-bg:#3a2f1a; --color-warning-fg:#e0b46a; --color-warning-border:#54452a; --color-warning:#e99320;
  --color-danger-bg:#3a211a;  --color-danger-fg:#e09071;  --color-danger-border:#55322a;  --color-danger:#bd3f16;
  --color-info-bg:#173038;    --color-info-fg:#9dc0c6;    --color-info-border:#2c4e58;    --color-info:#4a7983;
  --color-muted-bg:#132b35;   --color-muted-fg:#8fa5a8;
}

/* 🌋 Lava — чорне з розжареним помаранчем (0E0C0D · 561907 · 982D0B · CC762A · 137C6A) */
:root[data-theme="dark-lava"] {
  --color-primary: #100e0f;  --color-bg: #0e0c0d;   --color-bg-alt: #1d1614;
  --surface: #241a17;        --surface-2: #1b1412;  --ap-surface: #241a17; --vp-surface: #241a17;
  --color-text: #ddd5cf;     --color-text-muted: #968b84; --color-border: #45302a;
  --color-accent: #cc762a;   --color-accent-hover: #dd8b45; --color-accent-ink: #dd9a58;
  --color-success-bg:#12302a; --color-success-fg:#6fbfa6; --color-success-border:#1f4a40; --color-success:#137c6a;
  --color-warning-bg:#37281a; --color-warning-fg:#d6ac77; --color-warning-border:#503c28; --color-warning:#cc762a;
  --color-danger-bg:#3a1d13;  --color-danger-fg:#d68e72;  --color-danger-border:#562c1e;  --color-danger:#982d0b;
  --color-info-bg:#20262a;    --color-info-fg:#a3aeb5;    --color-info-border:#38424a;    --color-info:#5c6a72;
  --color-muted-bg:#1d1614;   --color-muted-fg:#968b84;
}


/* ─── Пікер тем у футері сайдбара ────────────────────────────────────────── */
.theme-menu { position: relative; }
.theme-menu__list {
  display: none; position: absolute; bottom: calc(100% + 6px); left: 0; right: 0;
  background: #1f1c19; border: 1px solid rgba(255,255,255,.14); border-radius: 10px;
  padding: 5px; z-index: 50; box-shadow: 0 10px 28px rgba(0,0,0,.45);
}
.theme-menu.open .theme-menu__list { display: block; }
.theme-menu__item {
  display: flex; align-items: center; gap: 8px; width: 100%;
  padding: 7px 9px; border: none; background: none; border-radius: 7px;
  color: rgba(255,255,255,.78); font-family: inherit; font-size: 0.82rem;
  cursor: pointer; text-align: left;
}
.theme-menu__item:hover { background: rgba(255,255,255,.09); color: #fff; }
.theme-menu__item.is-active { background: rgba(255,255,255,.14); color: #fff; font-weight: 600; }
.theme-menu__dot {
  width: 13px; height: 13px; border-radius: 50%; flex-shrink: 0;
  border: 1px solid rgba(255,255,255,.3);
}


/* ═══════════════════════════════════════════════════════════════════════════
   ☀️ СВІТЛІ ТЕМИ — теж лише токени. Базова «Світла» (data-theme="light") нічого
   не перевизначає: це рідна handmade-палітра сайту (крем + теракота).
   ═══════════════════════════════════════════════════════════════════════════ */

/* 🌅 Лагуна — крем + бірюза + теракота (13272E · 487674 · 83B4AE · E8C69B · D69369 · CB6330) */
:root[data-theme="light-lagoon"] {
  --color-primary: #13272e;  --color-bg: #f7f0e6;  --color-bg-alt: #efe4d5;
  --color-text: #1b2f36;     --color-text-muted: #6f8385; --color-border: #ddcbb6;
  --color-accent: #cb6330;   --color-accent-hover: #b5542a; --color-accent-ink: #a94f26;
  --color-success-bg:#e4efec; --color-success-fg:#2f5f57; --color-success-border:#bcd8d2; --color-success:#487674;
  --color-warning-bg:#faeedb; --color-warning-fg:#8a5f28; --color-warning-border:#e8c69b; --color-warning:#d69369;
  --color-danger-bg:#fbe6dd;  --color-danger-fg:#96341a;  --color-danger-border:#ecc0ac;  --color-danger:#cb6330;
  --color-info-bg:#e6f1f0;    --color-info-fg:#2c5d5c;    --color-info-border:#b9dad6;    --color-info:#83b4ae;
  --color-muted-bg:#efe4d5;   --color-muted-fg:#6f8385;
}

/* 🌿 Джунглі — тепла охра + приглушений зелений (4C6963 · 84988A · EDD5B1 · ECC773 · F7A647 · C29152) */
:root[data-theme="light-jungle"] {
  --color-primary: #33453f;  --color-bg: #f8f1e2;  --color-bg-alt: #f0e4cd;
  --color-text: #2f403b;     --color-text-muted: #77877f; --color-border: #ddccae;
  --color-accent: #d98f2e;   --color-accent-hover: #c07f28; --color-accent-ink: #a86d20;
  --color-success-bg:#e6ece6; --color-success-fg:#3a5a50; --color-success-border:#c2d2c6; --color-success:#4c6963;
  --color-warning-bg:#fbeed2; --color-warning-fg:#8a6520; --color-warning-border:#ecc773; --color-warning:#f7a647;
  --color-danger-bg:#f6e2da;  --color-danger-fg:#8f4529;  --color-danger-border:#e0bda9;  --color-danger:#b95f38;
  --color-info-bg:#e8eeea;    --color-info-fg:#3e5a52;    --color-info-border:#c6d6cc;    --color-info:#84988a;
  --color-muted-bg:#f0e4cd;   --color-muted-fg:#77877f;
}

/* 🏙 Ретро — крем + індиго + кораловий (443E46 · F6DEB8 · 908CA4 · 57659E · C57284 · FF5B60) */
:root[data-theme="light-retro"] {
  --color-primary: #443e46;  --color-bg: #f9efdc;  --color-bg-alt: #f3e3c6;
  --color-text: #3b3640;     --color-text-muted: #7d7a8c; --color-border: #ddd0bb;
  --color-accent: #e8555a;   --color-accent-hover: #d3474d; --color-accent-ink: #c53f45;
  --color-success-bg:#e6eee9; --color-success-fg:#3d6152; --color-success-border:#c4d8cc; --color-success:#4f7d68;
  --color-warning-bg:#fbeed4; --color-warning-fg:#87663a; --color-warning-border:#eed7ad; --color-warning:#d09a4e;
  --color-danger-bg:#fbe3e4;  --color-danger-fg:#a53238;  --color-danger-border:#f0bfc2;  --color-danger:#e8555a;
  --color-info-bg:#e8ebf4;    --color-info-fg:#3c4a7c;    --color-info-border:#c3cbe4;    --color-info:#57659e;
  --color-muted-bg:#f3e3c6;   --color-muted-fg:#7d7a8c;
}

/* 🖤 Чорнило — світло-сірий + червоний акцент (C7372C · 710D0B · 191211 · 4A4743 · 94938F · D6D7D2) */
:root[data-theme="light-ink"] {
  --color-primary: #191211;  --color-bg: #f3f3f1;  --color-bg-alt: #e8e8e5;
  --color-text: #1f1a18;     --color-text-muted: #7c7a76; --color-border: #d6d7d2;
  --color-accent: #c7372c;   --color-accent-hover: #ad2f26; --color-accent-ink: #a52a22;
  --color-success-bg:#e7efe8; --color-success-fg:#33603f; --color-success-border:#c6dbc9; --color-success:#3f7a50;
  --color-warning-bg:#f6eedb; --color-warning-fg:#7f6423; --color-warning-border:#e4d4a8; --color-warning:#b98f2c;
  --color-danger-bg:#fae4e2;  --color-danger-fg:#8e211a;  --color-danger-border:#eebfba;  --color-danger:#c7372c;
  --color-info-bg:#e9ecee;    --color-info-fg:#3f4a52;    --color-info-border:#ccd2d6;    --color-info:#5c6a72;
  --color-muted-bg:#e8e8e5;   --color-muted-fg:#94938f;
}

/* ✨ Наведення на картки адмінки в темних темах.
   Compat-шар вище ставить фон карткам через !important — тому hover теж має бути !important,
   інакше «підйом» лишиться без підсвітки (а раніше інлайновий білий фон давав білий спалах). */
:root[data-theme^="dark"] .admin-content .admin-card:hover,
:root[data-theme^="dark"] .admin-content .ui-card:hover,
:root[data-theme^="dark"] .admin-content .stat-card:hover,
:root[data-theme^="dark"] .admin-content .promo-card:hover,
:root[data-theme^="dark"] .admin-content .order-admin-card:hover,
:root[data-theme^="dark"] .admin-content .hover-lift:hover,
:root[data-theme^="dark"] .vp-content .vp-card:hover,
:root[data-theme^="dark"] .vp-content .vp-kpi:hover,
:root[data-theme^="dark"] .vp-content .ui-card:hover,
:root[data-theme^="dark"] .vp-content .hover-lift:hover {
  background: color-mix(in srgb, var(--color-accent) 12%, var(--vp-surface, var(--ap-surface))) !important;
  border-color: color-mix(in srgb, var(--color-accent) 55%, var(--color-border)) !important;
  box-shadow: 0 10px 26px rgba(0,0,0,.32) !important;
}

/* Кнопки й рядки списків у темних темах: підсвітка акцентом, а не білим. */
:root[data-theme^="dark"] .admin-content button:hover:not(:disabled),
:root[data-theme^="dark"] .admin-content .btn:hover:not(:disabled),
:root[data-theme^="dark"] .admin-content .ui-btn:hover:not(:disabled),
:root[data-theme^="dark"] .vp-content button:hover:not(:disabled),
:root[data-theme^="dark"] .vp-content .vp-btn:hover:not(:disabled) {
  box-shadow: 0 5px 14px rgba(0,0,0,.34) !important;
}
:root[data-theme^="dark"] .admin-content .list-row:hover,
:root[data-theme^="dark"] .vp-content .list-row:hover {
  background-color: color-mix(in srgb, var(--color-accent) 14%, var(--surface-2)) !important;
}

/* Інлайнові onmouseover-ховери тепер уніфіковано в ui.css (еталонна підсвітка для обох
   тем). Тут лишаємо порожньо, щоб не було дубля/конфлікту з ui.css. */

/* ── Кастом-селект (.cs-*) зі storefront main.css у ТЕМНІЙ адмінці/кабінеті ──────
   initCustomSelects (client/main.js) обгортає голі <select> у .cs-wrap; його стилі
   (main.css) світло-онлі (background:white) → у темних темах плашка випадала біла.
   dark.css вантажать лише адмінка/вендор/менеджер — вітрини це НЕ стосується. */
:root[data-theme^="dark"] .cs-trigger {
  background: var(--ui-field-bg, var(--surface-2, var(--color-bg-alt))) !important;
  color: var(--color-text) !important;
  border-color: var(--color-border) !important;
}
:root[data-theme^="dark"] .cs-panel {
  background: var(--surface, var(--color-bg-alt)) !important;
  border-color: var(--color-border) !important;
  box-shadow: 0 10px 32px rgba(0,0,0,.45) !important;
}
:root[data-theme^="dark"] .cs-option { color: var(--color-text) !important; }
:root[data-theme^="dark"] .cs-option:hover {
  background: color-mix(in srgb, var(--color-accent) 16%, transparent) !important;
  color: var(--color-accent) !important;
}
:root[data-theme^="dark"] .cs-option.cs-selected {
  background: color-mix(in srgb, var(--color-accent) 12%, transparent) !important;
  color: var(--color-accent) !important;
}
