/* Тема «Pulse»: тёмная панель в стиле живой карты (pulse.html) — глубокий сине-чёрный фон с мягким свечением,
   стеклянные карточки с тонкой рамкой, акцент #5b86ff. Только тёмный режим (data-theme="dark" ставит theme.js); светлый — theme-glass.css.
   Подключается после style.css; убрать тему — убрать <link> на этот файл. */
:root[data-theme="dark"] {
  --bg: #05060c; --card: #0b0e19; --surface: #12162a; --field: rgba(255, 255, 255, .045);
  --line: rgba(255, 255, 255, .05); --line-2: rgba(255, 255, 255, .07); --line-3: rgba(255, 255, 255, .08);
  --text: #e6e8ee; --text-2: #c9cdd8; --muted: #8b90a0; --dim: #5a6072;
  --accent: #5b86ff; --accent-ink: #ffffff; --accent-soft: rgba(91, 134, 255, .24);
  --ok: #3ddc84; --ok-fill: #2ecc71; --warn: #f5b731; --warn-fill: #f5b731; --bad: #ff6b78; --bad-fill: #ff5f6d;
  --ok-soft: rgba(46, 204, 113, .13); --warn-soft: rgba(245, 183, 49, .13); --bad-soft: rgba(255, 95, 109, .13); --dim-soft: rgba(255, 255, 255, .06);
  --bar: rgba(5, 6, 12, .66); --hover: rgba(91, 134, 255, .07); --seg: rgba(255, 255, 255, .035); --seg-on: rgba(91, 134, 255, .2);
  --shadow: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 24px 48px -28px rgba(0, 0, 0, .9);
  --sheet-shadow: 0 40px 120px rgba(0, 0, 0, .75), 0 0 0 1px rgba(255, 255, 255, .07);
  --glass: linear-gradient(180deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, .012));
  --edge: 1px solid rgba(255, 255, 255, .07);
}

  :root[data-theme="dark"] body {
    background: radial-gradient(1100px 520px at 50% -140px, rgba(91, 134, 255, .17), transparent 70%),
                radial-gradient(800px 600px at 100% 100%, rgba(46, 204, 113, .04), transparent 70%), var(--bg);
    background-attachment: fixed;
  }

  /* шапка: стекло + знак хаба как узел на «Пульте» */
  :root[data-theme="dark"] .top { border-bottom: 1px solid rgba(255, 255, 255, .06); }
  :root[data-theme="dark"] .top .brand { display: inline-flex; align-items: center; gap: 10px; letter-spacing: .04em; }
  :root[data-theme="dark"] .top .brand::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: #fff;
    box-shadow: 0 0 0 3px rgba(91, 134, 255, .25), 0 0 14px 3px rgba(91, 134, 255, .65); }
  :root[data-theme="dark"] .top nav, :root[data-theme="dark"] .seg { border: var(--edge); background: var(--seg); }
  :root[data-theme="dark"] .top nav a { color: var(--text-2); }
  :root[data-theme="dark"] .top nav:not(.has-pill) a.active, :root[data-theme="dark"] .seg button.on { color: #fff; background: var(--seg-on);
    box-shadow: inset 0 0 0 1px rgba(91, 134, 255, .38), 0 0 18px -6px rgba(91, 134, 255, .7); }
  :root[data-theme="dark"] .top nav a.pill-on { color: #fff; }
  :root[data-theme="dark"] .nav-pill { box-shadow: inset 0 0 0 1px rgba(91, 134, 255, .38), 0 0 18px -6px rgba(91, 134, 255, .7); }

  /* карточки: стекло с тонкой рамкой */
  :root[data-theme="dark"] .card, :root[data-theme="dark"] .stat { background: var(--glass), var(--card); border: var(--edge); border-radius: 18px; }
  :root[data-theme="dark"] h1 { letter-spacing: -.03em; }
  :root[data-theme="dark"] h2 { color: var(--text); }

  /* цифры дашборда: подпись тише, цифра ярче; цветная метка-полоска сверху */
  :root[data-theme="dark"] .stat { position: relative; overflow: hidden; padding: 18px 20px 16px; }
  :root[data-theme="dark"] .stat::before { content: ""; position: absolute; left: 18px; right: 18px; top: 0; height: 2px; border-radius: 0 0 2px 2px;
    background: linear-gradient(90deg, transparent, rgba(91, 134, 255, .55), transparent); }
  :root[data-theme="dark"] .stat.ok::before { background: linear-gradient(90deg, transparent, rgba(46, 204, 113, .7), transparent); }
  :root[data-theme="dark"] .stat.warn::before { background: linear-gradient(90deg, transparent, rgba(245, 183, 49, .7), transparent); }
  :root[data-theme="dark"] .stat.bad::before { background: linear-gradient(90deg, transparent, rgba(255, 95, 109, .75), transparent); }
  :root[data-theme="dark"] .stat .n { color: #fff; }
  :root[data-theme="dark"] .stat.ok .n { color: var(--ok); text-shadow: 0 0 24px rgba(46, 204, 113, .35); }
  :root[data-theme="dark"] .stat.warn .n { text-shadow: 0 0 24px rgba(245, 183, 49, .3); }
  :root[data-theme="dark"] .stat.bad .n { text-shadow: 0 0 24px rgba(255, 95, 109, .35); }
  :root[data-theme="dark"] .stat .l { font-size: 12.5px; }
  :root[data-theme="dark"] .grid3 .stat { background: rgba(255, 255, 255, .025); border: var(--edge); }

  /* график по часам: столбики с градиентом, текущий час светится */
  :root[data-theme="dark"] .hbars { background: repeating-linear-gradient(0deg, transparent 0 37px, rgba(255, 255, 255, .035) 37px 38px); background-position: 0 -12px; }
  :root[data-theme="dark"] .hbar i { opacity: 1; border-radius: 6px 6px 3px 3px;
    background: linear-gradient(180deg, rgba(127, 156, 255, .78), rgba(91, 134, 255, .18)); }
  :root[data-theme="dark"] .hbar:hover i { background: linear-gradient(180deg, #9db5ff, rgba(91, 134, 255, .35)); }
  :root[data-theme="dark"] .hbar.now i { background: linear-gradient(180deg, #a4b8ff, #5b86ff); box-shadow: 0 0 22px rgba(91, 134, 255, .55); }
  :root[data-theme="dark"] .hbar .v { color: var(--muted); }

  /* таблицы: заголовки капителью, мягкие линии, подсветка строки акцентом */
  :root[data-theme="dark"] th { text-transform: uppercase; font-size: 11px; letter-spacing: .06em; color: var(--dim); font-weight: 600; }
  :root[data-theme="dark"] th, :root[data-theme="dark"] td { border-bottom: 1px solid rgba(255, 255, 255, .045); }
  :root[data-theme="dark"] tr:hover td { background: var(--hover); }
  :root[data-theme="dark"] tr:hover td:first-child { box-shadow: inset 2px 0 0 var(--accent); }
  :root[data-theme="dark"] .mono { color: var(--text-2); }
  /* «ссылки» в списке реклов — только у строки под курсором */
  :root[data-theme="dark"] #advTbl td:last-child .btn { opacity: 0; transition: opacity .15s; }
  :root[data-theme="dark"] #advTbl tr:hover td:last-child .btn, :root[data-theme="dark"] #advTbl .btn:focus { opacity: 1; }

  /* метки и точки */
  :root[data-theme="dark"] .badge { border: 1px solid transparent; font-weight: 600; letter-spacing: .01em; }
  :root[data-theme="dark"] .badge.ok { border-color: rgba(46, 204, 113, .22); }
  :root[data-theme="dark"] .badge.warn { border-color: rgba(245, 183, 49, .22); }
  :root[data-theme="dark"] .badge.bad { border-color: rgba(255, 95, 109, .24); }
  :root[data-theme="dark"] .pill.ok { box-shadow: 0 0 8px rgba(46, 204, 113, .7); }
  :root[data-theme="dark"] .pill.bad { box-shadow: 0 0 8px rgba(255, 95, 109, .7); }

  /* кнопки: основная — со свечением, остальные — стекло */
  :root[data-theme="dark"] .btn { background: rgba(255, 255, 255, .045); border: var(--edge); color: #a4b8ff; }
  :root[data-theme="dark"] .btn:hover { opacity: 1; background: rgba(91, 134, 255, .12); border-color: rgba(91, 134, 255, .35); }
  :root[data-theme="dark"] .btn.primary { background: linear-gradient(180deg, #6d95ff, #4a74f5); border-color: rgba(255, 255, 255, .14); color: #fff;
    box-shadow: 0 8px 24px -10px rgba(91, 134, 255, .9), inset 0 1px 0 rgba(255, 255, 255, .22); }
  :root[data-theme="dark"] .btn.primary:hover { background: linear-gradient(180deg, #7ea2ff, #5580f8); }
  :root[data-theme="dark"] .btn.danger { background: var(--bad-soft); border-color: rgba(255, 95, 109, .25); color: var(--bad); }

  /* поля и выпадающие списки */
  :root[data-theme="dark"] input, :root[data-theme="dark"] textarea, :root[data-theme="dark"] .dd-btn { border: var(--edge); }
  :root[data-theme="dark"] .dd-menu { background: #0f1322; box-shadow: 0 24px 60px rgba(0, 0, 0, .7), 0 0 0 1px rgba(255, 255, 255, .08); }

  /* карточка рекла поверх размытой панели */
  :root[data-theme="dark"] .modal { background: rgba(3, 4, 10, .62); }
  :root[data-theme="dark"] .modal .card { background: var(--glass), #0b0e19; }
  :root[data-theme="dark"] .detail { background: rgba(255, 255, 255, .03); border: var(--edge); }
  :root[data-theme="dark"] .hint .tip { background: #0f1322; box-shadow: 0 20px 50px rgba(0, 0, 0, .7), 0 0 0 1px rgba(255, 255, 255, .08); }
  :root[data-theme="dark"] .sw .knob { background: rgba(255, 255, 255, .12); }
  :root[data-theme="dark"] .sw input:checked + .knob { background: var(--ok-fill); box-shadow: 0 0 14px -2px rgba(46, 204, 113, .6); }

  /* молчащие реклы на дашборде: плашки вместо стены ссылок */
  :root[data-theme="dark"] #ovSilent .chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
  :root[data-theme="dark"] #ovSilent .chips a { padding: 3px 10px; border-radius: 999px; background: rgba(255, 255, 255, .04); border: var(--edge); color: var(--text-2); font-size: 12.5px; }
  :root[data-theme="dark"] #ovSilent .chips a:hover { opacity: 1; border-color: rgba(91, 134, 255, .4); color: #fff; }

  /* «живой» хаб: у свежего последнего постбека пульсирует точка, как узел на «Пульте» */
  :root[data-theme="dark"] .stat.live .l::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%;
    vertical-align: 1px; background: var(--ok); animation: pulse-ring 2s ease-out infinite; }
  @keyframes pulse-ring { 0% { box-shadow: 0 0 0 0 rgba(61, 220, 132, .55); } 70%, 100% { box-shadow: 0 0 0 8px rgba(61, 220, 132, 0); } }

  /* сравнение под цифрой и линия среднего */
  :root[data-theme="dark"] .stat .sub .d { padding: 1px 6px; border-radius: 6px; background: var(--dim-soft); }
  :root[data-theme="dark"] .stat .sub .d.up { background: var(--ok-soft); }
  :root[data-theme="dark"] .hbars-avg { border-top-color: rgba(164, 184, 255, .5); opacity: 1; }
  :root[data-theme="dark"] .hbars-avg span { background: #0d1120; color: #a4b8ff; border: var(--edge); }

  /* карточки появляются по очереди и чуть светлеют под курсором */
  :root[data-theme="dark"] .stat, :root[data-theme="dark"] .page > .card { animation: rise .45s cubic-bezier(.2, .7, .2, 1) both; transition: border-color .2s, transform .2s; }
  :root[data-theme="dark"] .stat:nth-child(2) { animation-delay: .04s; } :root[data-theme="dark"] .stat:nth-child(3) { animation-delay: .08s; }
  :root[data-theme="dark"] .stat:nth-child(4) { animation-delay: .12s; } :root[data-theme="dark"] .stat:nth-child(5) { animation-delay: .16s; }
  :root[data-theme="dark"] .stat:nth-child(6) { animation-delay: .2s; }
  :root[data-theme="dark"] .stat:hover { border-color: rgba(255, 255, 255, .13); transform: translateY(-1px); }
  @keyframes rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

  /* фокус в поле — светящееся кольцо */
  :root[data-theme="dark"] input:focus, :root[data-theme="dark"] textarea:focus, :root[data-theme="dark"] .dd-btn:focus-visible,
  :root[data-theme="dark"] .dd-btn.open { outline: none; border-color: rgba(91, 134, 255, .55); box-shadow: 0 0 0 3px rgba(91, 134, 255, .18); }

  :root[data-theme="dark"] .theme-seg { border: var(--edge); }
  :root[data-theme="dark"] .theme-seg button.on { color: #fff; background: var(--seg-on); box-shadow: inset 0 0 0 1px rgba(91, 134, 255, .38); }

  /* карточка рекла */
  :root[data-theme="dark"] .m-sec { background: rgba(255, 255, 255, .025); border: var(--edge); }
  :root[data-theme="dark"] .m-foot { background: rgba(11, 14, 25, .9); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border-top: var(--edge); }

  :root[data-theme="dark"] .toast { border: var(--edge); }
  :root[data-theme="dark"] ::selection { background: rgba(91, 134, 255, .35); }

@media (prefers-reduced-motion: reduce) {
  .stat, .page > .card, .stat.live .l::before { animation: none !important; }
}
