/* Дополнения к style.css: классы, которые используют view.js и setup.js */

main { max-width: 1200px; margin: 0 auto; }

/* Блок фильтра "Даты": раскрывается прямо в строку фильтров */
.dates { display: contents; }

/* Список ключей на странице настроек */
.keys { display: block; }

/* Площадки в разделе "Источники": разделитель между блоками */
.block + .block { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }

/* Числовые поля (мин. просмотры, лимиты, подписчики): такой же вид, как у текстовых полей */
input[type="number"] {
  background: var(--surface); color: var(--ink); border: 1px solid var(--line);
  border-radius: 8px; padding: 6px 8px; min-width: 0; font-size: 13px; box-sizing: border-box;
}

/* В колонках аналитики отступ задает сетка, а не верхний отступ блока */
.cols > .stack { margin-top: 0; }

/* Тепловая карта времени публикаций: строки - дни недели, столбцы - часы */
.heat-grid {
  display: grid; grid-template-columns: 56px repeat(7, minmax(0, 1fr)); gap: 4px;
  align-items: center; margin-top: 8px; font-size: 12px;
}
.heat-grid .muted { font-size: 12px; }
.heat-cell {
  height: 26px; border-radius: 6px; background: var(--accent);
  opacity: calc(0.12 + 0.88 * var(--v, 0));
}

@media (max-width: 620px) {
  .heat-grid { grid-template-columns: 44px repeat(7, minmax(0, 1fr)); gap: 3px; }
  .heat-cell { height: 20px; }
  .top { gap: 8px; }
}

a.btn { text-decoration: none; display: inline-flex; align-items: center; }
