/* ================================================================
   BGPU — RGB NEON + LIQUID GLASS  |  body.dark-mode
   v3 — Neon header, RGB card borders, full polish
   ================================================================ */

/* ── 1. ПЛАВНЫЙ ПЕРЕХОД ─────────────────────────────────────────── */
*, *::before, *::after {
  transition:
    background-color .35s ease,
    background      .35s ease,
    color           .28s ease,
    border-color    .32s ease,
    box-shadow      .35s ease !important;
}

/* ── 2. CSS-ПЕРЕМЕННЫЕ ──────────────────────────────────────────── */
body.dark-mode {
  --nr: #ff4d6d;
  --ng: #00e5a0;
  --nb: #4dc8ff;
  --np: #c044ff;
  --no: #ff9f43;
  --ny: #ffd166;

  --glass-bg:    rgba(20,12,35,0.72);
  --glass-b:     rgba(255,255,255,0.08);
  --rim:
    inset 0 1.5px 0 rgba(255,255,255,0.10),
    inset 1.5px 0   rgba(255,255,255,0.06),
    inset 0 -1px 0  rgba(255,255,255,0.04);
  --glow-r: 0 0 22px rgba(255,77,109,0.30), 0 0 48px rgba(255,77,109,0.12);
  --glow-p: 0 0 22px rgba(192,68,255,0.30), 0 0 48px rgba(192,68,255,0.12);
  --glow-b: 0 0 22px rgba(77,200,255,0.28), 0 0 48px rgba(77,200,255,0.10);
  --glow-g: 0 0 22px rgba(0,229,160,0.28), 0 0 48px rgba(0,229,160,0.10);
  --shadow: 0 8px 32px rgba(0,0,0,0.60), 0 2px 8px rgba(0,0,0,0.40);
  --blur:  blur(24px) saturate(1.9) brightness(1.06);
  --blur2: blur(36px) saturate(2.2) brightness(1.10);
}

/* ── 3. ФОН СТРАНИЦЫ ─────────────────────────────────────────────── */
body.dark-mode {
  background:
    radial-gradient(ellipse at 12% 5%,  rgba(255,77,109,0.16) 0%, transparent 42%),
    radial-gradient(ellipse at 88% 8%,  rgba(192,68,255,0.13) 0%, transparent 40%),
    radial-gradient(ellipse at 50% 95%, rgba(77,200,255,0.09) 0%, transparent 48%),
    radial-gradient(ellipse at 28% 60%, rgba(0,229,160,0.06) 0%, transparent 38%),
    #0a0812 !important;
  background-attachment: fixed !important;
  color: #f0ecff !important;
}

/* ── 4. RGB KEYFRAMES ───────────────────────────────────────────── */
@keyframes rgb-h {
  0%   { background-position: 0%   50%; }
  100% { background-position: 200% 50%; }
}
@keyframes rgb-v {
  0%   { background-position: 50% 0%;   }
  100% { background-position: 50% 200%; }
}
@keyframes rgb-glow-pulse {
  0%, 100% { opacity: 0.60; }
  50%      { opacity: 1.00; }
}
@keyframes header-shimmer {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(200%);  }
}

/* ── 5. ШАПКА — НEON СТИЛЬ ──────────────────────────────────────── */
body.dark-mode .header {
  background:
    linear-gradient(135deg,
      rgba(12,4,24,0.95) 0%,
      rgba(8,2,18,0.98)  100%
    ) !important;
  backdrop-filter: var(--blur2) !important;
  -webkit-backdrop-filter: var(--blur2) !important;
  border-bottom: none !important;
  box-shadow:
    inset 0 1px 0 rgba(255,100,130,0.12),
    0 4px 40px rgba(0,0,0,0.60),
    0 0 80px rgba(255,77,109,0.06) !important;
  position: relative !important;
  overflow: hidden !important;
}

/* Фоновое неоновое свечение в шапке */
body.dark-mode .header::before {
  content: '';
  position: absolute;
  top: -60%; left: -10%; right: -10%;
  height: 120%;
  background:
    radial-gradient(ellipse at 30% 50%, rgba(255,77,109,0.12) 0%, transparent 55%),
    radial-gradient(ellipse at 70% 50%, rgba(192,68,255,0.09) 0%, transparent 50%);
  pointer-events: none;
  z-index: 0;
  animation: rgb-glow-pulse 5s ease-in-out infinite;
}

/* RGB полоска снизу */
body.dark-mode .header::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg,
    #ff4d6d, #ff8c42, #ffd166,
    #00e5a0, #4dc8ff, #c044ff, #ff4d6d
  );
  background-size: 200% 100%;
  animation: rgb-h 3.5s linear infinite;
  pointer-events: none;
  z-index: 3;
  box-shadow: 0 0 12px rgba(192,68,255,0.60), 0 0 24px rgba(255,77,109,0.30);
}

body.dark-mode .header-content { position: relative; z-index: 2; }

/* Неоновый заголовок */
body.dark-mode .header h1 {
  color: #fff !important;
  text-shadow:
    0 0 20px rgba(255,77,109,0.50),
    0 0 40px rgba(255,77,109,0.20) !important;
  letter-spacing: -0.02em !important;
}

body.dark-mode .header p {
  color: rgba(200,180,240,0.75) !important;
}

/* Пробегающий shimmer */
body.dark-mode .header-text::after {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 40%; height: 100%;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(255,255,255,0.04) 50%,
    transparent 100%
  );
  animation: header-shimmer 8s ease-in-out infinite;
  pointer-events: none;
}
body.dark-mode .header-text { position: relative; overflow: hidden; }

/* ── 6. RGB ПЕРЕЛИВЫ ПО КРАЯМ КАРТОЧЕК ─────────────────────────── */

/* Общий glass стиль — БЕЗ position:relative для settings-card (ломает fixed на мобильном) */
body.dark-mode .week-navigation,
body.dark-mode .schedule-wrapper,
body.dark-mode .stats-bar,
body.dark-mode .message {
  background: var(--glass-bg) !important;
  backdrop-filter: var(--blur) !important;
  -webkit-backdrop-filter: var(--blur) !important;
  border: 1px solid var(--glass-b) !important;
  box-shadow: var(--rim), var(--shadow) !important;
  position: relative !important;
  overflow: hidden !important;
}

/* settings-card — glass стиль */
body.dark-mode .settings-card {
  background: var(--glass-bg) !important;
  backdrop-filter: var(--blur) !important;
  -webkit-backdrop-filter: var(--blur) !important;
  border: 1px solid var(--glass-b) !important;
  box-shadow: var(--rim), var(--shadow) !important;
  overflow: hidden !important;
}

/* ДЕСКТОП: position:relative для ::before RGB-эффекта */
@media (min-width: 769px) {
  body.dark-mode .settings-card {
    position: relative !important;
  }
}

/* МОБИЛЬ: восстанавливаем position:fixed */
@media (max-width: 768px) {
  body.dark-mode .settings-card {
    position: fixed !important;
    top: 0 !important;
    left: 0.6rem !important;
    right: 0.6rem !important;
  }
}

/* RGB линия СВЕРХУ */
body.dark-mode .settings-card::before,
body.dark-mode .week-navigation::before,
body.dark-mode .schedule-wrapper::before,
body.dark-mode .stats-bar::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1.5px;
  background: linear-gradient(90deg,
    transparent 0%,
    #ff4d6d 15%, #ff9f43 30%, #ffd166 45%,
    #00e5a0 55%, #4dc8ff 70%, #c044ff 85%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: rgb-h 4s linear infinite;
  pointer-events: none;
  z-index: 10;
  box-shadow: 0 0 8px rgba(192,68,255,0.40);
}

/* Псевдоэлемент для левой + низа — используем box-shadow */
body.dark-mode .settings-card::after,
body.dark-mode .week-navigation::after,
body.dark-mode .stats-bar::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: transparent;
  pointer-events: none;
  z-index: 10;
  /* Мерцающее внутреннее свечение */
  box-shadow:
    inset 0 0 30px rgba(255,77,109,0.04),
    inset 0 0 60px rgba(192,68,255,0.03);
  animation: rgb-glow-pulse 6s ease-in-out infinite;
}

/* RGB левый бордер-эффект (псевдо через ::before на wrapper) */
/* Добавляем левый RGB line через отдельную технику — color stop на border */
body.dark-mode .settings-card {
  border-image: none !important;
}

/* Дополнительное неоновое обрамление при ховере */
body.dark-mode .settings-card:hover {
  box-shadow:
    var(--rim),
    var(--shadow),
    0 0 0 1px rgba(192,68,255,0.20),
    var(--glow-p) !important;
}

/* ── 7. НАСТРОЙКИ — ТЕКСТЫ ──────────────────────────────────────── */
body.dark-mode .settings-card h2 {
  color: var(--nr) !important;
  text-shadow: 0 0 20px rgba(255,77,109,0.45), 0 0 40px rgba(255,77,109,0.15) !important;
}
body.dark-mode label,
body.dark-mode .role-option label { color: rgba(200,185,240,0.90) !important; }
body.dark-mode .filter-group label { color: rgba(144,128,184,0.80) !important; }

/* ── 8. ИНПУТЫ / СЕЛЕКТЫ ─────────────────────────────────────────── */
body.dark-mode .filter-group select,
body.dark-mode .search-input {
  background: rgba(12,6,22,0.80) !important;
  color: #f0ecff !important;
  border: 1px solid rgba(120,80,200,0.25) !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,0.06),
    inset 0 -1px 0 rgba(0,0,0,0.18) !important;
  backdrop-filter: blur(12px) !important;
  border-radius: 10px !important;
}
body.dark-mode .filter-group select:hover,
body.dark-mode .search-input:hover {
  border-color: rgba(192,68,255,0.35) !important;
}
body.dark-mode .filter-group select:focus,
body.dark-mode .search-input:focus {
  border-color: rgba(255,77,109,0.60) !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,0.06),
    0 0 0 3px rgba(255,77,109,0.12),
    0 0 18px rgba(255,77,109,0.16) !important;
  outline: none !important;
}
body.dark-mode .filter-group select:disabled { opacity: 0.35 !important; }
body.dark-mode select option {
  background: #160e28 !important;
  color: #f0ecff !important;
}
body.dark-mode .search-icon { color: rgba(144,128,184,0.50) !important; }

/* ── 9. НАВИГАЦИЯ ПО НЕДЕЛЯМ ─────────────────────────────────────── */
body.dark-mode .week-navigation { border-radius: 18px !important; }

body.dark-mode .week-dates { color: #f0ecff !important; font-weight: 500 !important; }
body.dark-mode .week-label { color: rgba(144,128,184,0.60) !important; }

body.dark-mode .week-arrow-btn { color: rgba(160,120,220,0.40) !important; background: transparent !important; }
body.dark-mode .week-arrow-btn:hover {
  color: var(--np) !important;
  background: rgba(192,68,255,0.10) !important;
  box-shadow: 0 0 18px rgba(192,68,255,0.25) !important;
}

body.dark-mode .week-dates:hover {
  color: var(--np) !important;
  text-shadow: 0 0 14px rgba(192,68,255,0.55) !important;
  background: rgba(192,68,255,0.08) !important;
}

body.dark-mode .week-today-btn {
  border-left: 1px solid rgba(255,77,109,0.14) !important;
  background: rgba(255,77,109,0.10) !important;
  color: var(--nr) !important;
  text-shadow: 0 0 12px rgba(255,77,109,0.45) !important;
}
body.dark-mode .week-today-btn svg { color: var(--nr) !important; }
body.dark-mode .week-today-btn:hover {
  background: rgba(255,77,109,0.78) !important;
  color: #fff !important;
  text-shadow: none !important;
  box-shadow: 0 0 24px rgba(255,77,109,0.45) !important;
}

body.dark-mode .week-day-dot { background: rgba(255,255,255,0.07) !important; }
body.dark-mode .week-day-dot.has-lessons {
  background: rgba(255,77,109,0.55) !important;
  box-shadow: 0 0 4px rgba(255,77,109,0.40) !important;
}
body.dark-mode .week-day-dot.today {
  background: var(--nr) !important;
  box-shadow: 0 0 8px rgba(255,77,109,0.65) !important;
}

/* ── 10. СТАТИСТИКА ─────────────────────────────────────────────── */
body.dark-mode .stats-bar { border-radius: 16px !important; }

body.dark-mode .stats-toggle-btn {
  background: rgba(12,6,22,0.70) !important;
  border: 1px solid rgba(255,77,109,0.32) !important;
  color: var(--nr) !important;
  box-shadow: 0 0 14px rgba(255,77,109,0.10) !important;
}
body.dark-mode .stats-toggle-btn:hover {
  background: rgba(255,77,109,0.78) !important;
  color: #fff !important;
  box-shadow: 0 0 26px rgba(255,77,109,0.38) !important;
}

body.dark-mode .stat-icon {
  border: 1px solid rgba(255,255,255,0.07) !important;
}
body.dark-mode .stat-icon.lectures  {
  background: rgba(255,77,109,0.13) !important; color: var(--nr) !important;
  box-shadow: 0 0 14px rgba(255,77,109,0.22) !important;
}
body.dark-mode .stat-icon.practices {
  background: rgba(0,229,160,0.11) !important; color: var(--ng) !important;
  box-shadow: 0 0 14px rgba(0,229,160,0.20) !important;
}
body.dark-mode .stat-icon.labs {
  background: rgba(77,200,255,0.11) !important; color: var(--nb) !important;
  box-shadow: 0 0 14px rgba(77,200,255,0.18) !important;
}

body.dark-mode .stat-value {
  color: var(--nr) !important;
  text-shadow: 0 0 12px rgba(255,77,109,0.38) !important;
}
body.dark-mode .stat-done {
  color: var(--nr) !important;
  text-shadow: 0 0 16px rgba(255,77,109,0.48) !important;
}
body.dark-mode .stat-label  { color: rgba(144,128,184,0.75) !important; }
body.dark-mode .stat-sem-total { color: rgba(144,128,184,0.70) !important; }
body.dark-mode .stat-sep-slash { color: rgba(120,80,200,0.45) !important; }

body.dark-mode .stat-progress-bar-track {
  background: rgba(255,77,109,0.09) !important;
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.30) !important;
}
body.dark-mode .stat-progress-bar-fill {
  background: linear-gradient(90deg,
    #ff4d6d 0%, #c044ff 60%, #4dc8ff 100%
  ) !important;
  background-size: 200% 100% !important;
  animation: rgb-h 3s linear infinite !important;
  box-shadow: 0 0 12px rgba(255,77,109,0.50), 0 0 24px rgba(192,68,255,0.25) !important;
  transition: width 0.5s ease !important;
}

body.dark-mode .stat-divider { background: rgba(120,80,200,0.16) !important; }

body.dark-mode #export-ics-btn,
body.dark-mode #export-print-btn,
body.dark-mode #print-btn {
  background: rgba(12,6,22,0.75) !important;
  border: 1px solid rgba(255,77,109,0.25) !important;
  color: var(--nr) !important;
  backdrop-filter: blur(10px) !important;
}
body.dark-mode #export-ics-btn:hover,
body.dark-mode #export-print-btn:hover,
body.dark-mode #print-btn:hover {
  background: rgba(255,77,109,0.14) !important;
  border-color: rgba(255,77,109,0.55) !important;
  box-shadow: 0 0 18px rgba(255,77,109,0.28) !important;
}

/* ── 11. ТАБЛИЦА РАСПИСАНИЯ ─────────────────────────────────────── */
body.dark-mode .schedule-wrapper { border-radius: 20px !important; }

body.dark-mode .schedule-grid { border-color: rgba(120,80,200,0.14) !important; }

body.dark-mode .time-header {
  background: linear-gradient(155deg,
    rgba(16,8,30,0.96) 0%, rgba(10,5,20,0.99) 100%
  ) !important;
  backdrop-filter: blur(18px) !important;
  border-right: 1px solid rgba(192,68,255,0.12) !important;
}

body.dark-mode .day-header {
  background: linear-gradient(155deg,
    rgba(45,8,16,0.94) 0%, rgba(30,5,10,0.97) 100%
  ) !important;
  border-right: 1px solid rgba(255,77,109,0.08) !important;
  box-shadow: inset 0 1px 0 rgba(255,100,130,0.10) !important;
}

body.dark-mode .current-day,
body.dark-mode .day-header.today-col {
  background: linear-gradient(155deg,
    rgba(12,28,60,0.94) 0%, rgba(8,18,45,0.97) 100%
  ) !important;
  box-shadow:
    inset 0 1px 0 rgba(77,200,255,0.16),
    0 0 24px rgba(77,200,255,0.10) !important;
}

body.dark-mode .time-cell {
  background: rgba(12,6,22,0.65) !important;
  border-right: 1px solid rgba(120,80,200,0.12) !important;
  color: rgba(144,128,184,0.80) !important;
}
body.dark-mode .slot-start { color: rgba(200,185,240,0.90) !important; }
body.dark-mode .slot-end   { color: rgba(144,128,184,0.65) !important; }

body.dark-mode .schedule-cell {
  background: rgba(18,10,32,0.55) !important;
  border-right: 1px solid rgba(120,80,200,0.09) !important;
  border-bottom: 1px solid rgba(120,80,200,0.09) !important;
}
body.dark-mode .schedule-cell:hover,
body.dark-mode .lesson-cell:hover {
  background: rgba(192,68,255,0.06) !important;
}

/* ── 12. КАРТОЧКИ ЗАНЯТИЙ — LIQUID GLASS + NEON ─────────────────── */
body.dark-mode .lesson {
  background: rgba(25,14,44,0.82) !important;
  backdrop-filter: blur(16px) saturate(1.6) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.6) !important;
  border: 1px solid rgba(255,255,255,0.06) !important;
  border-left: 3px solid var(--nr) !important;
  border-radius: 10px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.07),
    0 2px 14px rgba(0,0,0,0.45) !important;
  color: #f0ecff !important;
  position: relative;
}

/* Тонкий RGB top-border на карточке */
body.dark-mode .lesson::before {
  content: '';
  position: absolute;
  top: 0; left: 3px; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    rgba(255,255,255,0.12) 0%,
    rgba(255,255,255,0.04) 100%
  );
  border-radius: 0 10px 0 0;
  pointer-events: none;
}

body.dark-mode .lesson:hover {
  background: rgba(32,18,56,0.90) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.09),
    0 6px 24px rgba(255,77,109,0.22),
    0 0 32px rgba(255,77,109,0.12) !important;
  transform: translateY(-2px) scale(1.01) !important;
}

body.dark-mode .lesson.lecture  { border-left-color: var(--nr) !important; }
body.dark-mode .lesson.lecture:hover {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.09),
    0 6px 24px rgba(255,77,109,0.22), var(--glow-r) !important;
}

body.dark-mode .lesson.practice { border-left-color: var(--ng) !important; }
body.dark-mode .lesson.practice:hover {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.09),
    0 6px 22px rgba(0,229,160,0.20), var(--glow-g) !important;
}

body.dark-mode .lesson.lab { border-left-color: var(--nb) !important; }
body.dark-mode .lesson.lab:hover {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.09),
    0 6px 22px rgba(77,200,255,0.18), var(--glow-b) !important;
}

body.dark-mode .lesson.exam {
  border-left-color: var(--np) !important;
  background: rgba(28,10,50,0.84) !important;
}
body.dark-mode .lesson.exam:hover {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.09),
    0 6px 24px rgba(192,68,255,0.24), var(--glow-p) !important;
}

body.dark-mode .lesson-subject { color: #f0ecff !important; }
body.dark-mode .lesson-info    { color: rgba(144,128,184,0.80) !important; }
body.dark-mode .lesson-teacher { color: rgba(144,128,184,0.75) !important; }

body.dark-mode .lesson-type.lecture  {
  background: rgba(255,77,109,0.14) !important; color: #ff8099 !important;
}
body.dark-mode .lesson-type.practice {
  background: rgba(0,229,160,0.12) !important; color: #00e5a0 !important;
}
body.dark-mode .lesson-type.lab {
  background: rgba(77,200,255,0.12) !important; color: #4dc8ff !important;
}
body.dark-mode .lesson-type.exam {
  background: rgba(192,68,255,0.12) !important; color: #c044ff !important;
}

/* ── 13. СООБЩЕНИЕ «ВЫБЕРИТЕ ПАРАМЕТРЫ» ─────────────────────────── */
body.dark-mode .message {
  border-radius: 18px !important;
}
body.dark-mode .message h3 { color: rgba(200,185,240,0.90) !important; }
body.dark-mode .message p  { color: rgba(144,128,184,0.70) !important; }
body.dark-mode .message-icon { color: var(--nr) !important; opacity: 0.55 !important; }

/* ── 14. МОБИЛЬНОЕ РАСПИСАНИЕ ──────────────────────────────────── */
body.dark-mode .mobile-day {
  background: var(--glass-bg) !important;
  backdrop-filter: var(--blur) !important;
  -webkit-backdrop-filter: var(--blur) !important;
  border: 1px solid var(--glass-b) !important;
  box-shadow: var(--rim), var(--shadow) !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  position: relative !important;
}

/* RGB линия сверху мобильного дня */
body.dark-mode .mobile-day::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1.5px;
  background: linear-gradient(90deg,
    transparent 0%,
    #ff4d6d 15%, #ffd166 35%, #00e5a0 50%,
    #4dc8ff 65%, #c044ff 85%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: rgb-h 4.5s linear infinite;
  pointer-events: none;
  z-index: 3;
  box-shadow: 0 0 8px rgba(192,68,255,0.35);
}

body.dark-mode .mobile-day-header {
  background: linear-gradient(135deg,
    rgba(45,8,16,0.92) 0%, rgba(30,5,10,0.96) 100%
  ) !important;
  border-bottom: 1px solid rgba(255,77,109,0.10) !important;
}
body.dark-mode .mobile-day-header.current-day {
  background: linear-gradient(135deg,
    rgba(12,28,60,0.92) 0%, rgba(8,18,45,0.96) 100%
  ) !important;
}

body.dark-mode .mobile-slot {
  background: rgba(18,10,32,0.55) !important;
  border-bottom: 1px solid rgba(120,80,200,0.09) !important;
}
body.dark-mode .mobile-time {
  background: rgba(12,6,22,0.68) !important;
  border-right: 1px solid rgba(120,80,200,0.12) !important;
}
body.dark-mode .mobile-time .slot-start { color: rgba(200,185,240,0.90) !important; }
body.dark-mode .mobile-time .slot-sep   { color: rgba(120,80,200,0.28) !important; }
body.dark-mode .mobile-time .slot-end   { color: rgba(144,128,184,0.65) !important; }

body.dark-mode .mobile-lesson {
  background: rgba(25,14,44,0.82) !important;
  backdrop-filter: blur(12px) !important;
  border-left-color: var(--nr) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 1px 8px rgba(0,0,0,0.35) !important;
  color: #f0ecff !important;
}
/* border-left-color задаётся inline по предмету, не по типу */

body.dark-mode .mobile-lesson-subject { color: #f0ecff !important; }
body.dark-mode .mobile-lesson-meta    { color: rgba(144,128,184,0.75) !important; }
body.dark-mode .mobile-day-empty {
  background: rgba(12,6,22,0.45) !important;
  color: rgba(144,128,184,0.45) !important;
}

/* Мобильные тип-бейджи */
body.dark-mode .mobile-lesson-type.lecture  {
  background: rgba(255,77,109,0.80) !important;
  box-shadow: 0 0 8px rgba(255,77,109,0.40) !important;
}
body.dark-mode .mobile-lesson-type.practice {
  background: rgba(0,185,120,0.80) !important;
  box-shadow: 0 0 8px rgba(0,229,160,0.35) !important;
}
body.dark-mode .mobile-lesson-type.lab {
  background: rgba(0,160,220,0.80) !important;
  box-shadow: 0 0 8px rgba(77,200,255,0.35) !important;
}
body.dark-mode .mobile-lesson-type.exam {
  background: rgba(170,50,220,0.80) !important;
  box-shadow: 0 0 8px rgba(192,68,255,0.40) !important;
}

/* ── 15. КАЛЕНДАРЬ ─────────────────────────────────────────────── */
body.dark-mode .calendar-popup {
  background: rgba(4,1,10,0.80) !important;
  backdrop-filter: blur(20px) !important;
}

body.dark-mode .calendar-container {
  background: rgba(16,8,30,0.92) !important;
  backdrop-filter: var(--blur2) !important;
  -webkit-backdrop-filter: var(--blur2) !important;
  border: 1px solid rgba(192,68,255,0.20) !important;
  box-shadow:
    var(--rim),
    0 0 60px rgba(192,68,255,0.18),
    0 40px 80px rgba(0,0,0,0.70) !important;
  border-radius: 24px !important;
  position: relative; overflow: hidden;
}

body.dark-mode .calendar-container::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 1.5px;
  background: linear-gradient(90deg,
    transparent 0%, #ff4d6d 20%, #c044ff 50%, #4dc8ff 80%, transparent 100%
  );
  background-size: 200% 100%;
  animation: rgb-h 4s linear infinite;
  pointer-events: none; z-index: 3;
  box-shadow: 0 0 10px rgba(192,68,255,0.50);
}
body.dark-mode .calendar-container > * { position: relative; z-index: 1; }

body.dark-mode .calendar-header { border-bottom-color: rgba(192,68,255,0.16) !important; }
body.dark-mode .calendar-month-year {
  color: var(--np) !important;
  text-shadow: 0 0 16px rgba(192,68,255,0.50) !important;
}
body.dark-mode .calendar-weekday { color: rgba(144,128,184,0.65) !important; }
body.dark-mode .calendar-day { color: rgba(200,185,240,0.90) !important; }
body.dark-mode .calendar-day.other-month { color: rgba(120,80,200,0.22) !important; }

body.dark-mode .calendar-day:not(.other-month):hover {
  background: rgba(192,68,255,0.14) !important;
  box-shadow: 0 0 12px rgba(192,68,255,0.24) !important;
}
body.dark-mode .calendar-day.today {
  background: linear-gradient(135deg,
    rgba(0,175,100,0.78) 0%, rgba(0,130,70,0.90) 100%
  ) !important;
  box-shadow: 0 0 18px rgba(0,229,160,0.45) !important;
}
body.dark-mode .calendar-day.selected {
  background: linear-gradient(135deg,
    rgba(255,77,109,0.84) 0%, rgba(180,20,50,0.94) 100%
  ) !important;
  box-shadow: 0 0 20px rgba(255,77,109,0.50) !important;
}
body.dark-mode .calendar-day.has-lessons::after { background: var(--nr) !important; }
body.dark-mode .calendar-day.has-lessons.selected::after,
body.dark-mode .calendar-day.has-lessons.today::after { background: #fff !important; }

body.dark-mode .calendar-nav-btn {
  background: linear-gradient(135deg,
    rgba(192,68,255,0.72) 0%, rgba(140,20,210,0.88) 100%
  ) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.20), var(--glow-p) !important;
}
body.dark-mode .calendar-nav-btn:hover {
  transform: scale(1.10) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 0 30px rgba(192,68,255,0.60) !important;
}
body.dark-mode .calendar-close {
  background: linear-gradient(135deg,
    rgba(255,77,109,0.80) 0%, rgba(180,20,50,0.94) 100%
  ) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), var(--glow-r) !important;
  border-radius: 14px !important;
}
body.dark-mode .calendar-close:hover {
  transform: translateY(-2px) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 0 32px rgba(255,77,109,0.55) !important;
}

/* ── 16. МОДАЛКА ПРЕПОДАВАТЕЛЯ ─────────────────────────────────── */
body.dark-mode .teacher-modal {
  background: rgba(4,1,10,0.78) !important;
  backdrop-filter: blur(20px) !important;
}

body.dark-mode .teacher-modal-content {
  background: rgba(16,8,30,0.92) !important;
  backdrop-filter: var(--blur2) !important;
  -webkit-backdrop-filter: var(--blur2) !important;
  border: 1px solid rgba(255,77,109,0.12) !important;
  box-shadow:
    var(--rim),
    0 0 50px rgba(255,77,109,0.14),
    0 40px 80px rgba(0,0,0,0.70) !important;
  position: relative; overflow: hidden;
}

/* RGB линия вверху модалки */
body.dark-mode .teacher-modal-content::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 1.5px;
  background: linear-gradient(90deg,
    transparent 0%, #ff4d6d 20%, #ff9f43 40%,
    #c044ff 60%, #4dc8ff 80%, transparent 100%
  );
  background-size: 200% 100%;
  animation: rgb-h 4s linear infinite;
  pointer-events: none; z-index: 10;
  box-shadow: 0 0 10px rgba(255,77,109,0.40);
}

body.dark-mode .teacher-photo-wrapper { background: #08041a !important; }

body.dark-mode .teacher-modal-close {
  background: rgba(25,14,44,0.90) !important;
  border: 1px solid rgba(255,77,109,0.20) !important;
  color: var(--nr) !important;
  backdrop-filter: blur(12px) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.50) !important;
}
body.dark-mode .teacher-modal-close:hover {
  background: rgba(255,77,109,0.78) !important;
  color: #fff !important;
  box-shadow: 0 0 24px rgba(255,77,109,0.45) !important;
}

body.dark-mode .teacher-modal-body { background: transparent !important; }
body.dark-mode .tm-surname { color: #f0ecff !important; }
body.dark-mode .tm-nameparts { color: rgba(144,128,184,0.80) !important; }
body.dark-mode .teacher-position {
  color: var(--nr) !important;
  text-shadow: 0 0 14px rgba(255,77,109,0.40) !important;
  border-bottom-color: rgba(255,77,109,0.12) !important;
}
body.dark-mode .tm-dept { color: rgba(144,128,184,0.50) !important; }

body.dark-mode .teacher-contact-item {
  background: rgba(12,6,22,0.75) !important;
  border: 1px solid rgba(120,80,200,0.16) !important;
  border-left: 3px solid var(--nr) !important;
  backdrop-filter: blur(10px) !important;
}
body.dark-mode .teacher-contact-item:hover {
  background: rgba(255,77,109,0.08) !important;
  box-shadow: 0 0 16px rgba(255,77,109,0.14) !important;
}
body.dark-mode .teacher-contact-link,
body.dark-mode .teacher-contact-item span { color: rgba(200,185,240,0.88) !important; }
body.dark-mode .teacher-contact-item svg  { color: var(--nr) !important; }
body.dark-mode .teacher-contact-link:hover { color: var(--nr) !important; }

body.dark-mode .teacher-profile-btn {
  background: linear-gradient(135deg,
    rgba(255,77,109,0.82) 0%, rgba(180,20,50,0.94) 100%
  ) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), var(--glow-r) !important;
}
body.dark-mode .teacher-profile-btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 0 38px rgba(255,77,109,0.55) !important;
}
body.dark-mode .teacher-modal-content::-webkit-scrollbar-thumb {
  background: rgba(255,77,109,0.32) !important;
}

/* ── 17. ЧАТ ПОДДЕРЖКИ ─────────────────────────────────────────── */
/* ── КНОПКА ПОДДЕРЖКИ ── */
body.dark-mode .support-button {
  background: linear-gradient(135deg, #B74D3F 0%, #8C3530 100%) !important;
  box-shadow: 0 4px 20px rgba(183,77,63,0.5), 0 0 0 1px rgba(255,255,255,0.08) !important;
}

body.dark-mode .support-chat {
  background: rgba(16,8,30,0.94) !important;
  backdrop-filter: var(--blur2) !important;
  border: 1px solid rgba(192,68,255,0.16) !important;
  box-shadow: 0 24px 60px rgba(0,0,0,0.70), var(--glow-p) !important;
  border-radius: 20px !important;
  overflow: hidden;
}
body.dark-mode .support-chat::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 1.5px;
  background: linear-gradient(90deg,
    transparent, #ff4d6d 25%, #c044ff 50%, #4dc8ff 75%, transparent
  );
  background-size: 200% 100%;
  animation: rgb-h 4s linear infinite;
  pointer-events: none; z-index: 3;
}
body.dark-mode .support-chat > * { position: relative; z-index: 1; }
body.dark-mode .support-chat-body { background: transparent !important; }
body.dark-mode .support-form-group label { color: rgba(144,128,184,0.80) !important; }
body.dark-mode .support-form-group select,
body.dark-mode .support-form-group textarea {
  background: rgba(12,6,22,0.80) !important;
  color: #f0ecff !important;
  border-color: rgba(120,80,200,0.24) !important;
}
body.dark-mode .support-form-group select:focus,
body.dark-mode .support-form-group textarea:focus {
  border-color: rgba(255,77,109,0.55) !important;
}
body.dark-mode .support-submit {
  background: linear-gradient(135deg,
    rgba(255,77,109,0.82) 0%, rgba(180,20,50,0.94) 100%
  ) !important;
  box-shadow: var(--glow-r) !important;
}
body.dark-mode .support-success h4 { color: #f0ecff !important; }
body.dark-mode .support-success p  { color: rgba(144,128,184,0.75) !important; }

/* ── 18. КНОПКИ ГЛАВНЫЕ ─────────────────────────────────────────── */
body.dark-mode .btn-primary {
  background: linear-gradient(135deg,
    rgba(255,77,109,0.84) 0%, rgba(180,20,50,0.95) 100%
  ) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), var(--glow-r) !important;
}
body.dark-mode .btn-primary:hover:not(:disabled) {
  transform: translateY(-2px) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22),
    0 0 36px rgba(255,77,109,0.50) !important;
}

/* ── 19. GLASS TOGGLE КНОПКА ─────────────────────────────────────── */
body.dark-mode .theme-toggle-track {
  background: linear-gradient(145deg,
    rgba(192,68,255,0.22) 0%,
    rgba(100,30,180,0.14) 50%,
    rgba(150,50,220,0.18) 100%
  ) !important;
  border-color: rgba(192,68,255,0.38) !important;
  box-shadow:
    inset 0 1.5px 0 rgba(210,170,255,0.32),
    inset 0 -1px 0 rgba(0,0,0,0.14),
    0 0 26px rgba(192,68,255,0.28),
    0 4px 20px rgba(0,0,0,0.38) !important;
}

body.dark-mode .theme-toggle.is-dark .theme-toggle-track {
  background: linear-gradient(145deg,
    rgba(192,68,255,0.32) 0%,
    rgba(130,40,220,0.22) 50%,
    rgba(170,60,255,0.28) 100%
  ) !important;
  border-color: rgba(192,68,255,0.52) !important;
  box-shadow:
    inset 0 1.5px 0 rgba(220,180,255,0.42),
    0 0 32px rgba(192,68,255,0.48),
    0 0 64px rgba(192,68,255,0.18),
    0 4px 22px rgba(0,0,0,0.42) !important;
}

/* ── 20. TOGGLE В СТАТИСТИКЕ (мобильная) ─────────────────────────── */
.theme-toggle-stats {
  width: 72px !important;
  height: 34px !important;
  flex-shrink: 0;
}
.theme-toggle-stats .theme-toggle-track { border-radius: 17px !important; }
.theme-toggle-stats .theme-toggle-thumb {
  width: 26px !important;
  height: 26px !important;
  top: 4px !important;
  left: 4px !important;
}
.theme-toggle-stats .theme-toggle-thumb::before {
  width: 9px !important;
  height: 6px !important;
  top: 4px !important;
  left: 5px !important;
}
.theme-toggle-stats .theme-icon {
  width: 12px !important;
  height: 12px !important;
}
.theme-toggle-stats.is-dark .theme-toggle-thumb {
  transform: translateX(38px) !important;
}
.theme-toggle-stats.is-dark:hover .theme-toggle-thumb {
  transform: translateX(38px) !important;
}

/* Десктоп: скрываем маленькую */
@media (min-width: 769px) {
  .theme-toggle-stats { display: none !important; }
}
/* Мобиль: кнопка темы в шапке скрыта (шапка скрыта на мобильном)
   Мобильная кнопка темы (theme-toggle-stats) - временно отключена */
@media (max-width: 768px) {
  .theme-toggle-stats { display: none !important; }
}

/* ── 21. СКРОЛЛБАР ─────────────────────────────────────────────── */
body.dark-mode ::-webkit-scrollbar { width: 5px; height: 5px; }
body.dark-mode ::-webkit-scrollbar-track {
  background: rgba(12,6,22,0.55);
  border-radius: 3px;
}
body.dark-mode ::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg,
    rgba(255,77,109,0.55) 0%,
    rgba(192,68,255,0.55) 100%
  );
  border-radius: 3px;
  box-shadow: 0 0 6px rgba(192,68,255,0.35);
}
body.dark-mode ::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg,
    rgba(255,77,109,0.80) 0%,
    rgba(192,68,255,0.80) 100%
  );
  box-shadow: 0 0 12px rgba(192,68,255,0.55);
}

/* ── 22. ИНДИКАТОР «СЕГОДНЯ» ───────────────────────────────────── */
body.dark-mode .today-indicator {
  background: var(--ng) !important;
  box-shadow: 0 0 10px rgba(0,229,160,0.75) !important;
}

/* ── 23. MOBILE DARK BACKGROUND ────────────────────────────────── */
body.dark-mode .stats-container {
  background: var(--glass-bg) !important;
  border-color: var(--glass-b) !important;
  backdrop-filter: var(--blur) !important;
}

