/* ═══════════════════════════════════════════════════════════════════
   MIS NSIFT — Профессиональная цветовая система v3.0
   Основа: государственный Deep Blue + Navy. Без кислотных цветов.
   Принцип: глубина через насыщенность, не через яркость.
═══════════════════════════════════════════════════════════════════ */

/* ── СВЕТЛАЯ ТЕМА ──────────────────────────────────────────────── */
:root {

  /* ── Brand ── */
  --brand-50:  #e8f0fe;
  --brand-100: #c0d3fc;
  --brand-200: #93b4f9;
  --brand-300: #5e8ef4;
  --brand-400: #3b6ef0;
  --brand-500: #1a56db;   /* Primary — глубокий королевский синий */
  --brand-600: #0e3fa8;   /* Hover / active */
  --brand-700: #0a2e7c;
  --brand-800: #071e54;
  --brand-900: #040f2c;

  /* ── Navy (тёмный фон, header, footer) ── */
  --navy-900: #0d1b3e;    /* Footer, preloader bg */
  --navy-800: #122356;
  --navy-700: #172d6e;
  --navy-600: #1e3a8a;
  --navy-500: #1d4ed8;
  --navy-400: #3b82f6;    /* Dark-mode primary */
  --navy-300: #93c5fd;    /* Dark-mode text на синем */

  /* ── Accent (sky) — гармоничный с brand ── */
  --sky-400:  #38bdf8;
  --sky-500:  #0ea5e9;
  --sky-600:  #0284c7;

  /* ── Success (зелёный) ── */
  --green-50:  #f0fdf4;
  --green-100: #dcfce7;
  --green-500: #22c55e;
  --green-600: #16a34a;
  --green-700: #15803d;
  --green-800: #166534;
  --green-900: #14532d;

  /* ── Warning (янтарь) ── */
  --amber-50:  #fffbeb;
  --amber-100: #fef3c7;
  --amber-400: #fbbf24;
  --amber-500: #f59e0b;
  --amber-600: #d97706;
  --amber-700: #b45309;
  --amber-800: #92400e;

  /* ── Danger ── */
  --red-50:  #fff1f2;
  --red-100: #ffe4e6;
  --red-500: #ef4444;
  --red-600: #dc2626;
  --red-700: #b91c1c;
  --red-800: #991b1b;

  /* ── Neutral (тёплый серый, не холодный) ── */
  --gray-50:  #f8f9fb;
  --gray-100: #f0f2f7;
  --gray-200: #e2e6ef;
  --gray-300: #ccd1de;
  --gray-400: #9ba5b8;
  --gray-500: #6b7591;
  --gray-600: #4c5570;
  --gray-700: #354060;
  --gray-800: #1e2a47;
  --gray-900: #0d1628;

  /* ══ ТОКЕНЫ СВЕТЛОЙ ТЕМЫ ══════════════════════════════════════ */

  /* Primary */
  --primary:       var(--brand-500);   /* #1a56db */
  --primary-dark:  var(--brand-600);   /* #0e3fa8 */
  --primary-light: var(--brand-50);    /* #e8f0fe */
  --primary-text:  var(--brand-700);   /* текст на светлом primary-light */

  /* Secondary / accent */
  --secondary:     var(--sky-500);     /* #0ea5e9 */
  --accent:        var(--sky-400);     /* #38bdf8 */
  --accent-dark:   var(--sky-600);     /* #0284c7 */

  /* Status */
  --success:       var(--green-600);
  --success-bg:    var(--green-100);
  --success-text:  var(--green-900);
  --warning:       var(--amber-500);
  --warning-bg:    var(--amber-100);
  --warning-text:  var(--amber-800);
  --danger:        var(--red-600);
  --danger-bg:     var(--red-100);
  --danger-text:   var(--red-800);

  /* Backgrounds */
  --bg-page:       var(--gray-50);     /* #f8f9fb — чуть теплее чем чистый белый */
  --bg-surface:    #ffffff;
  --bg-elevated:   #ffffff;
  --bg-subtle:     var(--gray-100);    /* #f0f2f7 — заменяет #f8fafc */
  --bg-dark:       var(--navy-900);    /* #0d1b3e */

  /* Text */
  --text-primary:  var(--gray-900);    /* #0d1628 */
  --text-secondary:var(--gray-600);    /* #4c5570 */
  /* --gray-400 (#9ba5b8) давал всего 2.48:1 на белом — провал WCAG AA
     (нужно 4.5:1) для реального текста: .stat-label, .tablinks,
     .footer-bottom, .char-counter и т.д. Заменён на отдельный оттенок
     между --gray-500 и --gray-600 — 4.5+:1 и на #ffffff, и на --bg-page
     (#f8f9fb), при этом всё равно заметно светлее --text-secondary. */
  --text-muted:    #5f6c89;            /* было var(--gray-400) / #9ba5b8 */
  --text-inverse:  #ffffff;

  /* Borders */
  --border:        var(--gray-200);    /* #e2e6ef */
  --border-strong: var(--gray-300);    /* #ccd1de */
  --border-focus:  var(--brand-500);

  /* Shadows */
  --shadow-sm:  0 1px 4px rgba(13, 27, 62, 0.06);
  --shadow:     0 4px 16px rgba(13, 27, 62, 0.09);
  --shadow-md:  0 8px 28px rgba(13, 27, 62, 0.11);
  --shadow-lg:  0 16px 48px rgba(13, 27, 62, 0.14);
  --shadow-xl:  0 24px 64px rgba(13, 27, 62, 0.18);

  /* Header blur shadow */
  --shadow-header: 0 1px 0 var(--border), 0 4px 20px rgba(13,27,62,.06);

  /* Border radius */
  --radius-xs:  6px;
  --radius-sm:  10px;
  --radius-md:  14px;
  --radius-lg:  20px;
  --radius-xl:  28px;
  --radius-full:9999px;

  /* Transition */
  --transition-fast:   150ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition:        260ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --transition-slow:   400ms cubic-bezier(0.25, 0.46, 0.45, 0.94);

  /* Legacy aliases (совместимость со старым кодом) */
  --dark:        var(--gray-900);
  --dark-light:  var(--gray-800);
  --light:       var(--bg-page);
  --gray:        var(--gray-500);
  --gray-light:  var(--bg-subtle);
  --border-radius:    var(--radius-lg);
  --border-radius-sm: var(--radius-sm);
}

/* ── ТЁМНАЯ ТЕМА ───────────────────────────────────────────────── */
[data-theme="dark"] {
  color-scheme: dark;

  /* ══ ТОКЕНЫ ТЁМНОЙ ТЕМЫ ═══════════════════════════════════════ */

  /* Primary (ярче в тёмном, чтобы работало на тёмном фоне) */
  --primary:       var(--navy-400);    /* #3b82f6 */
  --primary-dark:  var(--navy-500);    /* #1d4ed8 */
  --primary-light: rgba(59, 130, 246, 0.15);
  --primary-text:  var(--navy-300);    /* #93c5fd */

  /* Secondary */
  --secondary:     var(--sky-400);
  --accent:        var(--sky-500);
  --accent-dark:   var(--sky-400);

  /* Status (приглушённые для тёмного) */
  --success:       #4ade80;
  --success-bg:    rgba(74, 222, 128, 0.12);
  --success-text:  #86efac;
  --warning:       #fbbf24;
  --warning-bg:    rgba(251, 191, 36, 0.12);
  --warning-text:  #fcd34d;
  --danger:        #f87171;
  --danger-bg:     rgba(248, 113, 113, 0.12);
  --danger-text:   #fca5a5;

  /* Backgrounds */
  --bg-page:       #09111f;            /* Глубже и теплее чем #0f172a */
  --bg-surface:    #0d1b3e;            /* Navy как основная поверхность */
  --bg-elevated:   #122356;            /* Карточки, модалы — чуть светлее */
  --bg-subtle:     #0f1e44;            /* Секции, hover состояния */
  --bg-dark:       #060d1e;            /* Футер */

  /* Text */
  --text-primary:  #e8edf8;
  --text-secondary:#8b9dc3;
  /* #4c5f82 давал 2.63:1 на --bg-surface — тот же провал AA, что и в
     светлой теме (см. комментарий там), по той же причине заменён. */
  --text-muted:    #8496b8;            /* было #4c5f82 */
  --text-inverse:  var(--navy-900);

  /* Borders */
  --border:        rgba(255, 255, 255, 0.07);
  --border-strong: rgba(255, 255, 255, 0.13);
  --border-focus:  var(--navy-400);

  /* Shadows (тёмный режим — мягче) */
  --shadow-sm:  0 1px 4px rgba(0, 0, 0, 0.3);
  --shadow:     0 4px 16px rgba(0, 0, 0, 0.4);
  --shadow-md:  0 8px 28px rgba(0, 0, 0, 0.45);
  --shadow-lg:  0 16px 48px rgba(0, 0, 0, 0.5);
  --shadow-xl:  0 24px 64px rgba(0, 0, 0, 0.55);
  --shadow-header: 0 1px 0 var(--border), 0 4px 20px rgba(0,0,0,.3);

  /* Legacy aliases */
  --dark:        var(--text-primary);
  --dark-light:  var(--text-secondary);
  --light:       var(--bg-page);
  --gray:        var(--text-secondary);
  --gray-light:  var(--bg-subtle);
}

/* ══ ПРИМЕНЕНИЕ К ЭЛЕМЕНТАМ ════════════════════════════════════ */

body {
  background: var(--bg-page);
  color: var(--text-primary);
}

/* Header */
header {
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-header);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
[data-theme="dark"] header {
  background: rgba(9, 17, 31, 0.96);
  border-bottom-color: var(--border);
}
header.header-scrolled {
  box-shadow: var(--shadow-md);
}

/* Logo */
.logo-icon {
  background: linear-gradient(135deg, var(--brand-500), var(--brand-600));
  box-shadow: 0 4px 12px rgba(26, 86, 219, 0.3);
}
[data-theme="dark"] .logo-icon {
  background: linear-gradient(135deg, var(--navy-400), var(--navy-500));
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.35);
}
.logo-text h1 {
  background: linear-gradient(135deg, var(--gray-900), var(--brand-500));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
[data-theme="dark"] .logo-text h1 {
  background: linear-gradient(135deg, #e8edf8, var(--navy-400));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.logo-text p {
  color: var(--text-muted);
}

/* Navigation */
nav a {
  color: var(--text-secondary);
}
nav a:hover, nav a.active {
  color: var(--primary);
}
nav ul li a.active::after {
  background: linear-gradient(90deg, var(--brand-500), var(--sky-500));
}
.nav-dropdown {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-lg);
}
.nav-dropdown a {
  color: var(--text-secondary);
}
.nav-dropdown a:hover {
  background: var(--bg-subtle);
  color: var(--primary);
}
[data-theme="dark"] .nav-dropdown a {
  color: var(--text-secondary);
}
[data-theme="dark"] .nav-dropdown a:hover {
  background: var(--bg-subtle);
}

/* Buttons */
.btn-primary {
  background: linear-gradient(135deg, var(--brand-500), var(--brand-600));
  color: #fff;
  box-shadow: 0 2px 8px rgba(26, 86, 219, 0.25);
}
.btn-primary:hover {
  background: linear-gradient(135deg, var(--brand-600), var(--brand-700));
  box-shadow: 0 6px 20px rgba(26, 86, 219, 0.4);
  transform: translateY(-2px);
}
[data-theme="dark"] .btn-primary {
  background: linear-gradient(135deg, var(--navy-400), var(--navy-500));
  box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3);
}
[data-theme="dark"] .btn-primary:hover {
  box-shadow: 0 6px 20px rgba(59, 130, 246, 0.45);
}

.btn-outline {
  color: var(--primary);
  border: 2px solid var(--brand-200);
  background: transparent;
}
.btn-outline:hover {
  background: var(--primary-light);
  border-color: var(--primary);
}
[data-theme="dark"] .btn-outline {
  color: var(--navy-300);
  border-color: rgba(59, 130, 246, 0.3);
}
[data-theme="dark"] .btn-outline:hover {
  background: var(--primary-light);
  border-color: var(--navy-400);
}

/* Sections */
.section {
  background: var(--bg-page);
}
.section--light {
  background: var(--bg-subtle) !important;
}
[data-theme="dark"] .section {
  background: var(--bg-page);
}
[data-theme="dark"] .section--light {
  background: var(--bg-surface) !important;
}

/* Stats section (gradient hero strip) */
.stats-section {
  background: linear-gradient(135deg, var(--navy-900) 0%, var(--brand-600) 100%);
}
.stats-section .stat-number {
  background: linear-gradient(135deg, #ffffff, #c0d3fc);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Cards */
.project-card,
.agency-card,
.feature-card,
.audience-card,
.news-card,
.faq-item,
.project-stat-card,
.contact-feature {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}
.project-card:hover,
.agency-card:hover,
.feature-card:hover,
.audience-card:hover,
.news-card:hover {
  box-shadow: var(--shadow-md);
  border-color: var(--brand-200);
}
[data-theme="dark"] .project-card,
[data-theme="dark"] .agency-card,
[data-theme="dark"] .feature-card,
[data-theme="dark"] .audience-card,
[data-theme="dark"] .news-card,
[data-theme="dark"] .faq-item,
[data-theme="dark"] .project-stat-card,
[data-theme="dark"] .contact-feature {
  background: var(--bg-elevated) !important;
  border-color: var(--border) !important;
  color: var(--text-primary) !important;
}
[data-theme="dark"] .project-card:hover,
[data-theme="dark"] .agency-card:hover,
[data-theme="dark"] .feature-card:hover,
[data-theme="dark"] .news-card:hover {
  border-color: rgba(59, 130, 246, 0.35) !important;
  box-shadow: var(--shadow-lg);
}

/* Project badges */
.project-badge.government {
  background: var(--brand-50);
  color: var(--brand-700);
}
.project-badge.international {
  background: #e0f2fe;
  color: #0369a1;
}
.project-badge.ngo {
  background: var(--green-100);
  color: var(--green-800);
}
[data-theme="dark"] .project-badge.government {
  background: rgba(59, 130, 246, 0.2);
  color: var(--navy-300);
}
[data-theme="dark"] .project-badge.international {
  background: rgba(14, 165, 233, 0.15);
  color: #7dd3fc;
}
[data-theme="dark"] .project-badge.ngo {
  background: rgba(74, 222, 128, 0.15);
  color: #86efac;
}

/* Голые <a> в мета-строке проекта (организация, email) и в тексте карточек
   агентств (сайт донора) — раньше без правила вообще, т.е. рендерились
   браузерным дефолтом (синий + подчёркивание), выбивались из остального
   оформления страницы. */
.project-meta a,
.agency-card p a {
  color: var(--primary);
  font-weight: 600;
  text-decoration: none;
}
.project-meta a:hover,
.agency-card p a:hover {
  text-decoration: underline;
}

/* Хлебные крошки на /new/projects/{id} (project-detail.blade.php) — были
   без единого CSS-правила (только margin/font-size инлайном), ссылки
   рендерились браузерным дефолтом. Разделители — приглушённым текстом,
   ссылки — фирменным цветом, текущая страница — обычным текстом (не
   ссылка, поэтому не подсвечена). */
.proj-breadcrumb {
  margin-bottom: 1.5rem;
  font-size: 0.9rem;
  color: var(--text-muted);
}
.proj-breadcrumb a {
  color: var(--text-secondary);
  text-decoration: none;
  font-weight: 600;
}
.proj-breadcrumb a:hover {
  color: var(--primary);
  text-decoration: underline;
}
.proj-breadcrumb span[aria-hidden] {
  margin: 0 0.4em;
  color: var(--border-strong);
}
.proj-breadcrumb span[aria-current] {
  color: var(--text-primary);
  font-weight: 600;
}

/* Progress bar */
.progress {
  background: linear-gradient(90deg, var(--brand-500), var(--sky-500));
}
[data-theme="dark"] .progress {
  background: linear-gradient(90deg, var(--navy-400), var(--sky-400));
}
.progress-bar {
  background: var(--gray-200);
}
[data-theme="dark"] .progress-bar {
  background: var(--bg-subtle);
}

/* Section titles */
.section-title h2 {
  color: var(--text-primary);
}
.section-title p {
  color: var(--text-secondary);
}

/* Feedback title gradient */
.feedback-title {
  background: linear-gradient(135deg, var(--brand-500), var(--sky-500));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
[data-theme="dark"] .feedback-title {
  background: linear-gradient(135deg, var(--navy-400), var(--sky-400));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Feedback section bg */
.feedback-section {
  background: linear-gradient(135deg, var(--bg-subtle) 0%, var(--brand-50) 100%);
}
[data-theme="dark"] .feedback-section {
  background: linear-gradient(135deg, var(--bg-page) 0%, rgba(26,86,219,.06) 100%);
}

/* Contact block */
.contacts_block {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-lg);
}
[data-theme="dark"] .contacts_block {
  background: var(--bg-elevated);
  border-color: var(--border);
}

/* Form elements */
.form-group input,
.form-group select,
.form-group textarea,
.message-section textarea {
  background: var(--bg-page);
  border: 2px solid var(--border);
  color: var(--text-primary);
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus,
.message-section textarea:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(26, 86, 219, 0.12);
}
[data-theme="dark"] .form-group input,
[data-theme="dark"] .form-group select,
[data-theme="dark"] .form-group textarea,
[data-theme="dark"] .message-section textarea {
  background: var(--bg-subtle);
  border-color: var(--border-strong);
  color: var(--text-primary);
}
[data-theme="dark"] .form-group input:focus,
[data-theme="dark"] .form-group select:focus,
[data-theme="dark"] .message-section textarea:focus {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);
}

/* FAQ */
.faq-item {
  border: 1px solid var(--border);
}
.faq-question {
  background: var(--bg-surface);
  color: var(--text-primary);
}
.faq-question:hover {
  background: var(--bg-subtle);
}
.faq-item.active .faq-question {
  background: var(--primary-light);
}
.faq-question i {
  color: var(--primary);
}
.faq-answer {
  background: var(--bg-surface);
  color: var(--text-secondary);
}
[data-theme="dark"] .faq-question {
  background: var(--bg-elevated);
  color: var(--text-primary);
}
[data-theme="dark"] .faq-question:hover {
  background: var(--bg-subtle);
}
[data-theme="dark"] .faq-item.active .faq-question {
  background: rgba(59, 130, 246, 0.12);
}
[data-theme="dark"] .faq-answer {
  background: var(--bg-elevated);
  color: var(--text-secondary);
}

/* Tabs */
.tab {
  background: var(--bg-subtle);
  border: 2px solid var(--border);
}
.tablinks {
  color: var(--text-muted);
}
.tablinks.active {
  color: #fff;
}
.tab::before {
  background: linear-gradient(135deg, var(--brand-500), var(--brand-600));
}
[data-theme="dark"] .tab {
  background: var(--bg-subtle);
  border-color: var(--border);
}
[data-theme="dark"] .tablinks {
  color: var(--text-muted);
}
[data-theme="dark"] .tab::before {
  background: linear-gradient(135deg, var(--navy-400), var(--navy-500));
}

/* CTA section */
.cta-section {
  background: linear-gradient(135deg, var(--navy-900) 0%, var(--brand-600) 60%, var(--sky-600) 100%);
}

/* Filter / category buttons */
.filter-btn {
  border: 1.5px solid var(--border);
  color: var(--text-secondary);
  background: var(--bg-surface);
}
.filter-btn.active, .filter-btn:hover {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
}
.category-btn {
  border: 1.5px solid var(--border);
  color: var(--text-secondary);
  background: var(--bg-surface);
}
.category-btn:hover {
  border-color: var(--primary);
  color: var(--primary);
  background: var(--primary-light);
}
.category-btn.active {
  background: linear-gradient(135deg, var(--brand-500), var(--brand-600));
  border-color: transparent;
  color: #fff;
  box-shadow: 0 4px 12px rgba(26, 86, 219, 0.3);
}
[data-theme="dark"] .filter-btn,
[data-theme="dark"] .category-btn {
  background: var(--bg-elevated);
  border-color: var(--border);
  color: var(--text-secondary);
}
[data-theme="dark"] .filter-btn.active,
[data-theme="dark"] .category-btn.active {
  background: linear-gradient(135deg, var(--navy-400), var(--navy-500));
  border-color: transparent;
  color: #fff;
}
[data-theme="dark"] .filter-btn:hover,
[data-theme="dark"] .category-btn:hover {
  border-color: var(--navy-400);
  color: var(--navy-300);
  background: rgba(59, 130, 246, 0.1);
}

/* News category badges by type */
.news-card[data-category="project"]  .news-category-badge { background: var(--brand-50);     color: var(--brand-700);  border-color: var(--brand-200); }
.news-card[data-category="vacancy"]  .news-category-badge { background: var(--green-100);    color: var(--green-800);  border-color: #86efac; }
.news-card[data-category="updates"]  .news-category-badge { background: var(--amber-100);    color: var(--amber-800);  border-color: #fcd34d; }
.news-card[data-category="events"]   .news-category-badge { background: #fdf2f8;             color: #9d174d;           border-color: #f9a8d4; }
.news-card[data-category="partners"] .news-category-badge { background: #eff6ff;             color: #1e40af;           border-color: #bfdbfe; }

[data-theme="dark"] .news-card[data-category="project"]  .news-category-badge { background: rgba(59,130,246,.18); color: #93c5fd; border-color: rgba(59,130,246,.3); }
[data-theme="dark"] .news-card[data-category="vacancy"]  .news-category-badge { background: rgba(74,222,128,.14); color: #86efac; border-color: rgba(74,222,128,.25); }
[data-theme="dark"] .news-card[data-category="updates"]  .news-category-badge { background: rgba(251,191,36,.14); color: #fcd34d; border-color: rgba(251,191,36,.25); }
[data-theme="dark"] .news-card[data-category="events"]   .news-category-badge { background: rgba(244,114,182,.14);color: #f9a8d4; border-color: rgba(244,114,182,.25); }
[data-theme="dark"] .news-card[data-category="partners"] .news-category-badge { background: rgba(96,165,250,.14); color: #bfdbfe; border-color: rgba(96,165,250,.25); }

/* News date */
.news-date time {
  background: var(--brand-50);
}
.news-card:hover .news-date time {
  background: linear-gradient(135deg, var(--brand-500), var(--sky-500));
}
.news-date .day { color: var(--primary); }
.news-date .month { color: var(--text-primary); }
.news-date .year { color: var(--text-muted); }
.news-card:hover .news-date .day,
.news-card:hover .news-date .month,
.news-card:hover .news-date .year { color: #fff; }
[data-theme="dark"] .news-date time { background: rgba(59, 130, 246, 0.15) !important; }
[data-theme="dark"] .news-card:hover .news-date time { background: linear-gradient(135deg,var(--navy-400),var(--sky-400)) !important; }
[data-theme="dark"] .news-date .day { color: var(--navy-300); }
[data-theme="dark"] .news-date .month { color: var(--text-secondary); }

/* News card icon */
.news-card-icon {
  background: linear-gradient(135deg, var(--brand-50), #e0f2fe);
  color: var(--brand-500);
}
.news-card:hover .news-card-icon {
  background: linear-gradient(135deg, var(--brand-500), var(--sky-500));
  color: #fff;
}
[data-theme="dark"] .news-card-icon {
  background: linear-gradient(135deg, rgba(26,86,219,.18), rgba(14,165,233,.12)) !important;
  color: var(--navy-300) !important;
}

/* Floating buttons */
.dark-toggle-btn {
  background: linear-gradient(135deg, var(--gray-800), var(--gray-700));
  color: var(--gray-300);
  box-shadow: var(--shadow);
}
[data-theme="dark"] .dark-toggle-btn {
  background: linear-gradient(135deg, #b45309, #f59e0b) !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(245,158,11,.35) !important;
}
.menu-toggle {
  background: linear-gradient(135deg, var(--brand-600), var(--brand-700));
}
.back-to-top {
  background: linear-gradient(135deg, var(--brand-500), var(--sky-500));
}

/* Submit button */
.send_anon_btn {
  background: linear-gradient(135deg, var(--brand-500), var(--brand-600));
}
.send_anon_btn:hover {
  background: linear-gradient(135deg, var(--brand-600), var(--brand-700));
  box-shadow: var(--shadow-lg);
}

/* Agency icon */
.agency-icon {
  background: var(--brand-50);
  color: var(--brand-500);
}
.agency-icon--primary {
  background: linear-gradient(135deg, var(--brand-500), var(--brand-600));
  color: #fff;
}
.agency-card:hover .agency-icon {
  background: linear-gradient(135deg, var(--brand-500), var(--sky-500));
  color: #fff;
}
[data-theme="dark"] .agency-icon {
  background: rgba(59, 130, 246, 0.15);
  color: var(--navy-300);
}

/* Audience icon */
.audience-icon {
  background: var(--brand-50);
  color: var(--brand-500);
}
[data-theme="dark"] .audience-icon {
  background: rgba(59, 130, 246, 0.15);
  color: var(--navy-300);
}

/* Feature icon */
.feature-icon {
  background: var(--brand-50);
  color: var(--brand-500);
}
[data-theme="dark"] .feature-icon {
  background: rgba(59, 130, 246, 0.15);
  color: var(--navy-300);
}

/* Step numbers */
.step-number {
  background: linear-gradient(135deg, var(--brand-500), var(--sky-500));
}

/* Stat numbers */
.stat-number { color: var(--primary); }
.stat-label  { color: var(--text-muted); }
[data-theme="dark"] .stat-number { color: var(--navy-300); }

/* Social links */
.social-link-footer {
  background: rgba(255,255,255,.1);
}
.social-link-footer:hover {
  background: var(--brand-500);
}

/* Search trigger */
.search-trigger {
  background: var(--bg-subtle);
  border: 1.5px solid var(--border);
  color: var(--text-muted);
}
.search-trigger:hover {
  border-color: var(--primary);
  color: var(--primary);
  background: var(--primary-light);
}
[data-theme="dark"] .search-trigger {
  background: var(--bg-elevated);
  border-color: var(--border);
  color: var(--text-muted);
}

/* Projects search */
.projects-search {
  background: var(--bg-surface);
  border: 1.5px solid var(--border);
}
.projects-search:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(26, 86, 219, 0.1);
}
[data-theme="dark"] .projects-search {
  background: var(--bg-elevated);
  border-color: var(--border);
}
.projects-count {
  background: var(--primary-light);
  color: var(--primary-text);
}
[data-theme="dark"] .projects-count {
  background: rgba(59, 130, 246, 0.15);
  color: var(--navy-300);
}

/* News search */
.news-search-wrap {
  background: var(--bg-surface);
  border: 1.5px solid var(--border);
}
.news-search-wrap:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(26, 86, 219, 0.1);
}
[data-theme="dark"] .news-search-wrap {
  background: var(--bg-elevated);
  border-color: var(--border);
}

/* Footer */
footer {
  background: var(--navy-900);
  color: #e8edf8;
}
.footer-bottom {
  border-top-color: rgba(255,255,255,.08);
  color: var(--text-muted);
}

/* Preloader */
#preloader {
  background: linear-gradient(135deg, var(--navy-900) 0%, #0a1e50 50%, var(--brand-600) 100%);
}
.progress-bar {
  background: linear-gradient(90deg, var(--sky-500), var(--brand-500), #818cf8);
}

/* Cookie banner */
.cookie-banner {
  background: var(--bg-surface);
  border-top: 1px solid var(--border);
  box-shadow: 0 -4px 24px rgba(13,27,62,.08);
}
[data-theme="dark"] .cookie-banner {
  background: var(--bg-elevated);
  border-top-color: var(--border);
}
.cookie-text strong { color: var(--text-primary); }
.cookie-text p { color: var(--text-secondary); }

/* Scroll progress */
.scroll-progress {
  background: linear-gradient(90deg, var(--brand-500), var(--sky-500));
}

/* Toast */
.toast-success { background: linear-gradient(135deg, #065f46, #10b981); }
.toast-error   { background: linear-gradient(135deg, #991b1b, #ef4444); }
.toast-info    { background: linear-gradient(135deg, var(--brand-600), var(--brand-500)); }
.toast-warning { background: linear-gradient(135deg, #b45309, #f59e0b); }

/* Compare bar */
.compare-bar {
  background: linear-gradient(135deg, var(--navy-900), #0d1e4a);
  border-top: 2px solid var(--brand-500);
}
.compare-bar-tag {
  background: rgba(59, 130, 246, 0.2);
  border-color: rgba(59, 130, 246, 0.35);
  color: var(--navy-300);
}

/* Modal */
.modal, .compare-modal {
  background: var(--bg-surface);
  border: 1px solid var(--border);
}
[data-theme="dark"] .modal,
[data-theme="dark"] .compare-modal {
  background: var(--bg-elevated);
  border-color: var(--border);
}
.modal-close, .compare-modal-close {
  background: var(--bg-subtle);
  color: var(--text-muted);
}
.modal-close:hover {
  background: var(--danger-bg);
  color: var(--danger);
}

/* Search overlay */
.search-overlay { background: rgba(9, 17, 31, 0.8); }
.search-box {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-xl);
}
[data-theme="dark"] .search-box {
  background: var(--bg-elevated);
  border-color: var(--border);
}

/* Lang switcher */
.lang-switcher {
  background: rgba(255,255,255,.92);
  border: 1px solid var(--border);
}
[data-theme="dark"] .lang-switcher {
  background: rgba(9,17,31,.95);
  border-color: var(--border-strong);
}
.lang-btn:hover, .lang-active {
  color: var(--primary);
  background: var(--primary-light);
}

/* Hero auth card */
.auth-card {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(20px);
}
.auth-card:hover {
  background: rgba(255,255,255,.11);
  border-color: rgba(255,255,255,.22);
}

/* Partners section */
.partners-stats {
  background: var(--bg-subtle);
  border: 1px solid var(--border);
}
[data-theme="dark"] .partners-stats {
  background: var(--bg-elevated);
  border-color: var(--border);
}
.partners-stat-num { color: var(--primary); }
[data-theme="dark"] .partners-stat-num { color: var(--navy-300); }
.partners-ticker-wrap::before {
  background: linear-gradient(to right, var(--bg-page) 0%, transparent 100%);
}
.partners-ticker-wrap::after {
  background: linear-gradient(to left, var(--bg-page) 0%, transparent 100%);
}
[data-theme="dark"] .partners-ticker-wrap::before {
  background: linear-gradient(to right, var(--bg-page) 0%, transparent 100%);
}
[data-theme="dark"] .partners-ticker-wrap::after {
  background: linear-gradient(to left, var(--bg-page) 0%, transparent 100%);
}

/* 404 / 500 pages — override */
[data-theme="dark"] body.error-page {
  background: var(--bg-page);
}

/* Mobile nav */
.mobile-nav {
  background: linear-gradient(135deg, var(--navy-900) 0%, #0f1e50 100%);
}
.mobile-nav-header {
  background: rgba(0,0,0,.2);
}
.mobile-nav a {
  background: rgba(255,255,255,.04);
  color: #e8edf8;
}
.mobile-nav a:hover {
  background: rgba(255,255,255,.09);
}

/* Rate limit msg */
.rate-limit-msg {
  background: var(--amber-50);
  border-color: var(--amber-400);
  color: var(--amber-800);
}
[data-theme="dark"] .rate-limit-msg {
  background: rgba(245,158,11,.1);
  border-color: rgba(245,158,11,.3);
  color: #fcd34d;
}

/* Char counter */
.char-counter { color: var(--text-muted); }
.char-counter.warning { color: var(--warning); }
.char-counter.error   { color: var(--danger); }

/* Хлебные крошки на страницах-деталях — структура в style.css */
.breadcrumb-nav {
  color: var(--text-muted);
}
.breadcrumb-nav a {
  color: var(--text-muted);
}
.breadcrumb-nav a:hover {
  color: var(--primary);
}
.breadcrumb-nav .current {
  color: var(--text-primary);
  font-weight: 600;
}