/* ═══════════════════════════════════════════════════════════════════
   Market Partners — Analytics · design system
   Тёмная премиальная тема, золотой брендовый акцент, Inter.
   Палитра площадок валидирована (CVD-safe, dark surface):
   WB #c026d3 · Ozon #3b82f6 · YM #b45309 · Total #059669
   ═══════════════════════════════════════════════════════════════════ */

:root {
  /* поверхности */
  --bg:        #0b0d14;
  --surface:   #12141d;
  --surface-2: #181b27;
  --surface-3: #1f2333;
  --border:    #262b3d;
  --border-2:  #333a52;

  /* текст */
  --ink:    #eef1f8;
  --ink-2:  #aab2c8;
  --muted:  #667089;

  /* бренд */
  --gold:      #c9a84c;
  --gold-soft: rgba(201, 168, 76, .14);
  --gold-grad: linear-gradient(135deg, #e8d28a 0%, #c9a84c 55%, #a07828 100%);
  --brand:      #17a06a;
  --brand-dark: #0e7a4f;
  --brand-soft: rgba(23, 160, 106, .13);

  /* площадки (категориальная палитра, CVD-safe) */
  --mp-wb:    #c026d3;
  --mp-ozon:  #3b82f6;
  --mp-ym:    #b45309;
  --mp-total: #059669;

  /* статусы */
  --ok:      #34d399;
  --warn:    #fbbf24;
  --danger:  #f87171;

  --radius:    14px;
  --radius-sm: 10px;
  --shadow:    0 8px 28px rgba(0, 0, 0, .35);

  /* табличные токены (используются inline-стилями из app.js) */
  --t-sticky:   #181a20;   /* липкие ячейки первого столбца */
  --t-row:      #111;      /* обычная строка данных */
  --t-mp-row:   #1a1a2e;   /* строка площадки (заказы) */
  --t-grp-row:  #141520;   /* строка группы */
  --t-sku-row:  #111122;   /* строка артикула */
  --t-legend:   #0f1117;   /* ячейка легенды под графиком */
  --t-detail:   #12131f;   /* липкая ячейка раскрытой детали */

  /* финансовая таблица */
  --fin-header:   #1a1c2a;
  --fin-cost:     #0d0e1a;
  --fin-subtotal: #1e2035;
  --fin-total:    #0d2010;
  --fin-pct:      #0a1a0a;

  /* разделители недель/колонок */
  --sep:        #2a2a3e;
  --sep-strong: #3a3f5c;

  /* значения в таблицах */
  --val:      #fff;
  --val-soft: #e2e8f0;
  --dim:      #94a3b8;

  /* семантика чисел */
  --pos:        #4ade80;
  --pos-soft:   #86efac;
  --pos-strong: #16a34a;
  --pos-bright: #22c55e;
  --neg:        #f87171;
  --warn-c:     #fbbf24;

  /* хедер площадки в остатках (баннеры WB/Ozon/YM — текст всегда белый) */
  --chip-bg:  #f0f0f0;
  --chip-ink: #111;
}

/* ═══ Светлая тема ═══ */
html[data-theme="light"] {
  --bg:        #eef0f6;
  --surface:   #ffffff;
  --surface-2: #f3f4fa;
  --surface-3: #e8eaf3;
  --border:    #dcdfe9;
  --border-2:  #c6ccde;

  --ink:    #171a23;
  --ink-2:  #444c62;
  --muted:  #7b849b;

  --gold:      #a8842e;
  --gold-soft: rgba(168, 132, 46, .14);
  --gold-grad: linear-gradient(135deg, #e3c878 0%, #c9a84c 55%, #a07828 100%);

  --ok:      #0e9f6e;
  --warn:    #b45309;
  --danger:  #dc2626;

  --shadow: 0 8px 28px rgba(24, 30, 52, .08);

  --t-sticky:   #e9ebf4;
  --t-row:      #ffffff;
  --t-mp-row:   #e9ecf8;
  --t-grp-row:  #f0f1f8;
  --t-sku-row:  #f7f8fd;
  --t-legend:   #f3f4fa;
  --t-detail:   #edeff7;

  --fin-header:   #edeff7;
  --fin-cost:     #f9fafd;
  --fin-subtotal: #e6e9f5;
  --fin-total:    #e0f3e6;
  --fin-pct:      #eff8f1;

  --sep:        #d4d8e6;
  --sep-strong: #b6bed6;

  --val:      #12151f;
  --val-soft: #2a3040;
  --dim:      #5b6472;

  --pos:        #0e9f6e;
  --pos-soft:   #0c8a5f;
  --pos-strong: #16a34a;
  --pos-bright: #15803d;
  --neg:        #dc2626;
  --warn-c:     #b45309;

  --chip-bg:  #dde1ee;
  --chip-ink: #171a23;
}

body {
  background:
    radial-gradient(1100px 500px at 85% -10%, rgba(201,168,76,.05), transparent 60%),
    radial-gradient(900px 480px at -10% 0%, rgba(192,38,211,.04), transparent 55%),
    var(--bg);
  color: var(--ink);
  font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
  font-variant-numeric: tabular-nums;   /* табличные цифры — колонки не пляшут */
  letter-spacing: .01em;
}

/* ══ Навбар ══ */
.navbar {
  background: rgba(13, 15, 22, .85) !important;
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border) !important;
  padding-top: .65rem;
  padding-bottom: .65rem;
}

.navbar .navbar-brand { letter-spacing: .02em; }

/* название компании в шапке */
.brand-text {
  color: var(--ink);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 3px;
  white-space: nowrap;
}

/* ══ Вкладки ══ */
.nav-tabs {
  border-bottom: none;
  gap: 4px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 5px;
  display: inline-flex;
  flex-wrap: wrap;
}
.nav-tabs .nav-link {
  color: var(--ink-2);
  border: none !important;
  border-radius: 9px;
  padding: 8px 18px;
  font-weight: 600;
  font-size: .92rem;
  transition: color .15s, background .15s;
}
.nav-tabs .nav-link:hover { color: var(--ink); background: var(--surface-2); }
.nav-tabs .nav-link.active {
  color: #14110a;
  background: var(--gold-grad);
  box-shadow: 0 2px 12px rgba(201,168,76,.35);
}

/* ══ Карточки ══ */
.bg-card,
.card.bg-card {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
}
.card { box-shadow: var(--shadow); }
.card-header { font-weight: 600; color: var(--ink); }

/* ══ Таблицы ══ */
.table {
  --bs-table-bg: transparent;
  --bs-table-hover-bg: rgba(201, 168, 76, .06);
  color: var(--ink);
}
.table thead th {
  background: var(--surface-2);
  color: var(--muted);
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .07em;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
  border-bottom: 1px solid var(--border-2);
  padding-top: .55rem;
  padding-bottom: .55rem;
}
.table thead th:hover { color: var(--ink); }
.table td {
  border-color: var(--border);
  font-size: .85rem;
  padding-top: .42rem;
  padding-bottom: .42rem;
}
.table > :not(caption) > * > * { background-color: transparent; }
.table-secondary td {
  background: var(--surface-3) !important;
  color: var(--ink) !important;
  border-color: var(--border-2);
}
.table-dark { --bs-table-bg: var(--surface-2); }

/* ══ Кнопки ══ */
.btn { border-radius: var(--radius-sm); font-weight: 600; }
.btn-sm { font-size: .82rem; }
.btn-outline-secondary { color: var(--ink-2); border-color: var(--border-2); }
.btn-outline-secondary:hover { background: var(--surface-3); border-color: var(--border-2); color: var(--ink); }
.btn-outline-light { border-color: var(--border-2); }
.btn-outline-success { color: var(--ok); border-color: rgba(52,211,153,.4); }
.btn-outline-success:hover { background: rgba(52,211,153,.12); border-color: var(--ok); color: var(--ok); }
.btn-outline-info { color: #7dd3fc; border-color: rgba(125,211,252,.4); }
.btn-outline-info:hover { background: rgba(125,211,252,.1); border-color: #7dd3fc; color: #7dd3fc; }
.btn-outline-warning { color: var(--gold); border-color: rgba(201,168,76,.45); }
.btn-outline-warning:hover { background: var(--gold-soft); border-color: var(--gold); color: #e8d28a; }

/* ══ Формы ══ */
.form-select, .form-control {
  border-radius: var(--radius-sm);
}
.form-select.bg-dark, .form-control.bg-dark {
  background-color: var(--surface-2) !important;
  border-color: var(--border-2) !important;
  color: var(--ink) !important;
}
.form-select:focus, .form-control:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px var(--gold-soft);
}

/* ══ Бейджи ══ */
.badge { font-weight: 600; letter-spacing: .02em; border-radius: 7px; }
.badge-A { background: #16a34a; color: #fff; }
.badge-B { background: #2563eb; color: #fff; }
.badge-C { background: #64748b; color: #fff; }
.badge-abc-A { background: #16a34a; color: #fff; }
.badge-abc-B { background: #d97706; color: #fff; }
.badge-abc-C { background: #dc2626; color: #fff; }

.need-badge {
  background: #dc2626;
  color: #fff;
  border-radius: 5px;
  padding: 1px 6px;
  font-size: .82rem;
}

.coverage-low { color: var(--danger); font-weight: 600; }
.coverage-med { color: var(--warn); }
.coverage-ok  { color: var(--ok); }

/* ══ Скроллбары ══ */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border-2); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #454e6e; }

/* ══ Верхнее меню разделов с выпадающими списками ══ */
.mp-menu {
  display: flex;
  gap: 4px;
  align-items: center;
  flex-wrap: wrap;
}
.mp-menu-item { position: relative; }
.mp-menu-title {
  display: inline-block;
  padding: 9px 18px;
  border-radius: 11px;
  font-weight: 600;
  font-size: .95rem;
  color: var(--ink-2);
  cursor: pointer;
  user-select: none;
  transition: background .15s, color .15s;
}
.mp-menu-item:hover .mp-menu-title { background: var(--surface-2); color: var(--ink); }
.mp-menu-item.active .mp-menu-title { background: var(--brand-soft); color: var(--brand); }
.mp-menu-drop {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 250px;
  padding: 6px;
  background: var(--surface-2);
  border: 1px solid var(--border-2);
  border-radius: 13px;
  box-shadow: var(--shadow);
  z-index: 1500;
}
.mp-menu-item:hover .mp-menu-drop { display: block; }
.mp-menu-drop a {
  display: block;
  padding: 8px 13px;
  border-radius: 8px;
  color: var(--ink-2);
  text-decoration: none;
  font-size: .9rem;
  white-space: nowrap;
}
.mp-menu-drop a:hover { background: var(--brand-soft); color: var(--brand); }
.mp-drop-sep { border-top: 1px solid var(--border); margin: 4px 8px; }
.mp-drop-right { right: 0; left: auto; }
.mp-drop-note {
  padding: 6px 13px 4px;
  font-size: .74rem;
  color: var(--muted);
  white-space: nowrap;
}
/* аккаунт-меню в навбаре: дропдаун поверх липких шапок таблиц */
.navbar { overflow: visible; position: relative; z-index: 2000; }
.mp-acc .mp-menu-title { font-size: .88rem; padding: 7px 14px; }

/* Chrome-автозаполнение красит поля логина белым — возвращаем стекло */
.mp-box .mp-input:-webkit-autofill,
.mp-box .mp-input:-webkit-autofill:hover,
.mp-box .mp-input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px #1d3a2c inset;
  -webkit-text-fill-color: #fff;
  caret-color: #fff;
}

/* ══ Логин / выбор кабинета — «пруд»: тёмно-зелёная вода, круги, стекло ══ */
.mp-overlay {
  position: fixed;
  inset: 0;
  background:
    url('/api/tools/asset/bg') center / cover no-repeat,
    radial-gradient(900px 500px at 72% 12%, rgba(214, 178, 92, .16), transparent 55%),
    repeating-radial-gradient(circle at 50% 46%,
      rgba(255, 255, 255, .045) 0 2px, transparent 2px 44px),
    repeating-radial-gradient(circle at 50% 46%,
      rgba(0, 0, 0, .12) 10px 13px, transparent 13px 44px),
    radial-gradient(1200px 900px at 50% 40%, #14402d 0%, #0d2e20 55%, #081d14 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

/* стеклянная карточка поверх воды */
.mp-box {
  width: 430px;
  max-width: 92vw;
  text-align: center;
  padding: 46px 42px 34px;
  background: rgba(16, 34, 26, .42);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 22px;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .55);
  backdrop-filter: blur(14px) saturate(1.1);
  -webkit-backdrop-filter: blur(14px) saturate(1.1);
}
.mp-box .mp-title { color: rgba(255, 255, 255, .92); }
/* кастомный логотип (маскот) — компактный; фолбэк-вордмарк — белый широкий */
.mp-box .mp-logo { width: auto; max-width: 82%; max-height: 110px; margin-bottom: 24px; }
.mp-box .mp-logo-mono {
  width: 300px;
  max-height: none;
  filter: brightness(0) invert(1);
  opacity: .95;
}
.mp-box .mp-input {
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .2);
  color: #fff;
}
.mp-box .mp-input::placeholder { color: rgba(255, 255, 255, .45); }
.mp-box .mp-input:focus {
  border-color: var(--brand);
  background: rgba(255, 255, 255, .12);
}
.mp-box .mp-btn {
  background: var(--brand);
  color: #fff;
}
.mp-box .mp-btn:hover { background: var(--brand-dark); }
.mp-powered {
  margin-top: 22px;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .45);
}
.mp-powered b { display: block; color: rgba(255, 255, 255, .75); letter-spacing: 3px; }

.mp-logo {
  width: 300px;
  max-width: 82%;
  margin-bottom: 34px;
}

.mp-title {
  font-size: 13px;
  font-weight: 600;
  color: #6b6b6b;
  margin: 0 0 22px;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.mp-input {
  display: block;
  width: 100%;
  padding: 14px 18px;
  margin-bottom: 12px;
  background: #f5f5f5;
  color: #111;
  border: 1px solid #dcdcdc;
  border-radius: 12px;
  font-size: 15px;
  font-family: inherit;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.mp-input::placeholder { color: #9a9a9a; }
.mp-input:focus {
  border-color: #111;
  box-shadow: 0 0 0 3px rgba(0,0,0,.1);
  background: #fff;
}

.mp-btn {
  width: 100%;
  padding: 14px;
  margin-top: 6px;
  border: none;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 700;
  font-family: inherit;
  letter-spacing: .5px;
  color: #fff;
  background: #111;
  cursor: pointer;
  transition: transform .15s, box-shadow .15s, background .15s;
  box-shadow: 0 6px 22px rgba(0,0,0,.25);
}
.mp-btn:hover  { background: #2b2b2b; transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0,0,0,.35); }
.mp-btn:active { transform: translateY(0); background: #000; }

.mp-error { color: #c0392b; min-height: 20px; margin-top: 12px; font-size: 13px; }

.mp-cab-grid {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 8px;
}
.mp-cab-card {
  width: 180px;
  height: 180px;
  background: #fafafa;
  border: 1px solid #e0e0e0;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  cursor: pointer;
  transition: transform .25s, border-color .25s, box-shadow .25s;
  padding: 16px;
  color: #1c1c1c;
  font-weight: 600;
  font-size: 14px;
}
.mp-cab-card:hover {
  transform: translateY(-6px);
  border-color: var(--brand);
  box-shadow: 0 12px 36px rgba(14, 122, 79, .3);
}

/* ══ Метрики (P&L карточки) ══ */
.metric-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 16px;
  height: 100%;
  transition: border-color .2s, transform .15s;
}
.metric-card:hover { border-color: rgba(201,168,76,.35); transform: translateY(-2px); }
.mc-head  { font-size: 11px; color: var(--muted); margin-bottom: 4px; letter-spacing: .02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-val   { font-size: 19px; font-weight: 700; color: var(--ink); line-height: 1.2; }
.mc-prev  { font-size: 11px; color: var(--muted); white-space: nowrap; }
.mc-delta { font-size: 11px; font-weight: 600; white-space: nowrap; }
.mc-delta.up   { color: var(--ok); }
.mc-delta.down { color: var(--danger); }
.mc-sub   { font-size: 10px; color: var(--muted); margin-top: 4px; }

/* ══ Склады ══ */
.wh-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px;
  height: 100%;
}
.wh-card.wh-low { border-left: 3px solid var(--danger); }
.wh-card.wh-ok  { border-left: 3px solid var(--ok); }
.wh-name { font-size: 14px; font-weight: 600; color: var(--ink); margin-bottom: 4px; }
.wh-meta { font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.wm      { font-size: 12px; margin-bottom: 2px; }
.spark   { width: 100% !important; display: block; margin-top: 10px; }

.prio-urgent  { color: var(--danger); font-weight: 600; }
.prio-planned { color: var(--warn);   font-weight: 600; }
.prio-ok      { color: var(--ok); }

/* Пилюли инструментов внутри вкладок WB/Ozon скрыты — навигация через
   верхнее меню; в строке остаются подсказка и «Обновить» */
#pane-tools .mp-selector-bloc,
#pane-toolsoz .mp-selector-bloc { display: none; }

/* ══ Сегментированные переключатели (Заказы: площадки и режим) ══ */
.mp-seg {
  display: inline-flex;
  gap: 2px;
  padding: 3px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 11px;
}
.mp-seg-btn {
  padding: 6px 15px;
  border-radius: 8px;
  font-weight: 600;
  font-size: .88rem;
  color: var(--ink-2);
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
  transition: background .15s, color .15s, scale .12s;
}
.mp-seg-btn:hover { color: var(--ink); }
.mp-seg-btn:active { scale: .96; }

/* ── Полировка по UI-скиллам (better-ui / typography / accessibility) ── */
/* сегменты и пункты меню теперь настоящие <button> (клавиатура/скринридер);
   :where — нулевая специфичность, чтобы не перебивать стили классов */
:where(button.mp-seg-btn, button.mp-menu-title, button.mp-ai-link) {
  border: 0;
  background: none;
  font: inherit;
  color: inherit;
  text-align: inherit;
}
/* выпадающие меню открываются и с клавиатуры (Tab), не только по hover */
.mp-menu-item:focus-within .mp-menu-drop { display: block; }
/* жёлтое Bootstrap (#ffc107) нечитаемо на белом — в светлой теме токен --warn */
html[data-theme="light"] .text-warning { color: var(--warn) !important; }
.badge.bg-warning { color: #212529 !important; }
/* приглушённый текст Bootstrap в тёмной теме (контраст 3.7:1 → токен) */
:root:not([data-theme="light"]) .text-secondary { color: var(--ink-2) !important; }
/* пилюля «% выкупа»: было 9.6px зелёным на сером (~2.8:1) — нечитаемо */
.buyout-pill { font-size: .72rem; line-height: 1.2; margin-top: 1px; color: #4ade80; }
html[data-theme="light"] .buyout-pill { color: #15803d; }
/* табличные цифры: числа в колонках выравниваются по разрядам и не пляшут */
.table, .mp-badge { font-variant-numeric: tabular-nums; }
/* тактильный отклик кнопок: лёгкое сжатие на нажатии (ровно 0.96) */
.btn {
  transition: color .15s, background-color .15s, border-color .15s,
              box-shadow .15s, scale .12s;
}
.btn:active, .mp-refresh:active, .mp-selector-bloc:active { scale: .96; }
/* видимый фокус с клавиатуры — только для focus-visible, мышь не трогает */
:where(button, a, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}
.mp-seg-btn.active {
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 1px 6px rgba(0, 0, 0, .12);
}
.mp-ai-link {
  color: var(--brand);
  font-weight: 700;
  font-size: .92rem;
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 8px;
}
.mp-ai-link:hover { background: var(--brand-soft); }
.mp-refresh {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  border: none;
  background: var(--brand);
  color: #fff;
  font-size: 1.05rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
}
.mp-refresh:hover { background: var(--brand-dark); }

/* ══ Переключатели площадок ══ */
.mp-selector-bloc {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 18px;
  border-radius: 11px;
  background: var(--surface);
  border: 1px solid var(--border);
  cursor: pointer;
  font-weight: 600;
  font-size: .9rem;
  color: var(--ink-2);
  transition: border-color .15s, color .15s, background .15s, transform .1s;
  user-select: none;
}
.mp-selector-bloc:hover {
  border-color: var(--mp-color);
  color: var(--ink);
  transform: translateY(-1px);
}
.mp-selector-bloc.active {
  background: color-mix(in srgb, var(--mp-color) 20%, var(--surface));
  border-color: var(--mp-color);
  color: var(--ink);
  box-shadow: 0 2px 14px color-mix(in srgb, var(--mp-color) 35%, transparent);
}
.mp-selector-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }

/* ══ Заказы: липкий первый столбец ══ */
#ordersTableWrap { max-height: 70vh; }
#ordersTable th:first-child,
#ordersTable td:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  background: var(--surface-2);
}
#ordersTable thead th:first-child { z-index: 3; }
/* вторая строка шапки: «Артикул» тянется rowspan-ом, поэтому first-child там —
   ₽-ячейка первой недели; липкость/фон первого столбца ей не положены */
#ordersTable thead tr:nth-child(2) th:first-child {
  position: sticky;
  left: auto;          /* липнет только по вертикали, как вся шапка */
  background: var(--t-sticky);   /* фон шапки, а не «дыра» в карточку */
  z-index: 3;
}
#ordersTable tr[data-row="mp"]  td:first-child { background: var(--t-mp-row); }
#ordersTable tr[data-row="grp"] td:first-child { background: var(--t-grp-row); }
#ordersTable tr[data-row="sku"] td:first-child { background: var(--t-sku-row); }

/* ══ Модалки ══ */
.modal-content {
  background: var(--surface-2) !important;
  color: var(--ink) !important;
  border: 1px solid var(--border-2) !important;
  border-radius: var(--radius) !important;
}
.modal-header { border-bottom: 1px solid var(--border) !important; }

/* ══ Алерты ══ */
.alert-info    { background: rgba(59,130,246,.12); border-color: rgba(59,130,246,.35); color: #93c5fd; }
.alert-danger  { background: rgba(248,113,113,.1); border-color: rgba(248,113,113,.3);  color: var(--danger); }
.alert-warning { background: rgba(251,191,36,.1);  border-color: rgba(251,191,36,.3);   color: var(--warn); }

/* ═══ Светлая тема — точечные доводки ═══ */
html[data-theme="light"] body {
  background:
    radial-gradient(1100px 500px at 85% -10%, rgba(168,132,46,.06), transparent 60%),
    radial-gradient(900px 480px at -10% 0%, rgba(192,38,211,.04), transparent 55%),
    var(--bg);
}
html[data-theme="light"] .navbar {
  background: rgba(255, 255, 255, .85) !important;
}
html[data-theme="light"] .navbar-dark .navbar-brand { color: var(--ink); }
html[data-theme="light"] .nav-tabs .nav-link.active {
  color: #fff;
  box-shadow: 0 2px 12px rgba(168,132,46,.35);
}
html[data-theme="light"] .table {
  --bs-table-hover-bg: rgba(168, 132, 46, .07);
}
html[data-theme="light"] .btn-outline-info { color: #0369a1; border-color: rgba(3,105,161,.4); }
html[data-theme="light"] .btn-outline-info:hover { background: rgba(3,105,161,.08); border-color: #0369a1; color: #0369a1; }
html[data-theme="light"] .btn-outline-warning:hover { color: #8a6a1e; }
html[data-theme="light"] .btn-outline-light { color: var(--ink-2); border-color: var(--border-2); }
html[data-theme="light"] .btn-outline-light:hover { background: var(--surface-3); border-color: var(--border-2); color: var(--ink); }
html[data-theme="light"] .alert-info { color: #1d4ed8; }
html[data-theme="light"] ::-webkit-scrollbar-thumb:hover { background: #a7b0c9; }
html[data-theme="light"] .metric-card:hover { border-color: rgba(168,132,46,.4); }
html[data-theme="light"] .nav-tabs .nav-link:hover { color: var(--ink); background: var(--surface-3); }
html[data-theme="light"] .text-secondary { color: var(--muted) !important; }
html[data-theme="light"] .btn-close-white { filter: none; }
html[data-theme="light"] .spinner-border.text-light { color: var(--ink-2) !important; }

/* Bootstrap-утилиты тёмного фона (карточки отзывов, таблицы рейтингов,
   селекты) в светлой теме перекрашиваем в светлые поверхности */
html[data-theme="light"] .bg-dark {
  background: var(--surface) !important;
  color: var(--ink);
}
html[data-theme="light"] .table-dark {
  --bs-table-bg: var(--surface);
  --bs-table-color: var(--ink);
  --bs-table-striped-color: var(--ink);
  --bs-table-hover-color: var(--ink);
  --bs-table-hover-bg: rgba(168, 132, 46, .07);
  --bs-table-border-color: var(--border);
  color: var(--ink);
  border-color: var(--border);
}
html[data-theme="light"] .text-white { color: var(--ink) !important; }
html[data-theme="light"] .border-secondary { border-color: var(--border-2) !important; }
html[data-theme="light"] .text-info { color: #0369a1 !important; }

/* кнопка переключения темы */
#themeBtn { min-width: 38px; }

/* сворачиваемые блоки на вкладке Отзывы */
.rev-fold > summary {
  cursor: pointer;
  user-select: none;
  font-weight: 600;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 10px 16px;
  list-style: none;
  transition: border-color .15s, background .15s;
}
.rev-fold > summary::-webkit-details-marker { display: none; }
.rev-fold > summary::before {
  content: '▸';
  display: inline-block;
  margin-right: 10px;
  color: var(--muted);
  transition: transform .15s;
}
.rev-fold[open] > summary::before { transform: rotate(90deg); }
.rev-fold > summary:hover { border-color: var(--gold); background: var(--surface-2); }

/* монограмма кабинета — в стиле квадрата BN (тёмный скруглённый, золотые буквы) */
.cab-mono {
  width: 64px; height: 64px;
  border-radius: 16px;
  background: linear-gradient(135deg, #1db477 0%, #0e7a4f 100%);
  border: none;
  color: #fff;
  font-weight: 800;
  font-size: 22px;
  letter-spacing: 1px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 6px 18px rgba(14, 122, 79, .35);
}
.cab-mono.cab-mono-sm { width: 26px; height: 26px; border-radius: 7px; font-size: 11px; letter-spacing: 0; display: inline-flex; margin-right: 8px; vertical-align: middle; position: relative; top: -1px; }

/* ═══ Мобильная адаптация ═══ */
@media (max-width: 768px) {
  .navbar { padding: .35rem .5rem !important; }
  .navbar .btn { padding: 4px 8px; font-size: .78rem; }
  .navbar .btn-label { display: none; }          /* только иконки */
  #lastUpdated { display: none; }
  .brand-text { font-size: 12px; letter-spacing: 2px; }
  .navbar .d-flex.gap-3 { gap: .5rem !important; }

  .container-fluid { padding-left: 8px; padding-right: 8px; }

  /* вкладки — одна строка со скроллом */
  .nav-tabs { flex-wrap: nowrap; overflow-x: auto; max-width: 100%;
              scrollbar-width: none; }
  .nav-tabs::-webkit-scrollbar { display: none; }
  .nav-tabs .nav-link { padding: 6px 12px; font-size: .84rem; white-space: nowrap; }

  .mp-selector-bloc { padding: 6px 11px; font-size: .8rem; gap: 6px; }
  .btn-sm { font-size: .76rem; }

  .table td { font-size: .78rem; padding-top: .3rem; padding-bottom: .3rem; }
  .table thead th { font-size: .64rem; }

  .metric-card { padding: 10px 12px; }
  .mc-val { font-size: 16px; }

  .rev-fold > summary { font-size: .85rem; padding: 9px 12px; }

  /* экран выбора кабинета */
  .mp-box { padding: 30px 20px 26px; }
  .mp-logo { width: 220px; margin-bottom: 22px; }
  .mp-cab-card { width: 136px; height: 136px; font-size: 12px; gap: 10px; }
  .mp-cab-card img, .mp-cab-card .cab-mono { width: 52px !important; height: 52px !important; }
}

/* ── Закреплённые шапки таблиц: заголовок не уезжает при прокрутке ── */
.table-responsive thead th {
  position: sticky;
  top: 0;
  background: var(--t-sticky);
  z-index: 3;
}
.table-responsive thead tr:nth-child(2) th {
  top: 34px;   /* вторая строка шапки (репрайсер) липнет под первой */
}

/* Счётчик важных новостей в верхнем меню */
.mp-badge {
  display: inline-block;
  min-width: 18px;
  margin-left: 6px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--danger);
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  vertical-align: 1px;
}
