/* Дополнения к теме для страниц админки */
.table td, .table th { vertical-align: middle; }
.table .text-truncate-cell { max-width: 32rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stat-number { font-size: 1.75rem; font-weight: 600; line-height: 1.2; }
.log-output { max-height: 70vh; overflow: auto; background: #1e1e1e; color: #ddd; padding: 1rem; border-radius: .5rem;
    font-size: .8rem; white-space: pre-wrap; }
.article-frame { width: 100%; height: 70vh; border: 1px solid var(--bs-border-color); border-radius: .5rem; background: #fff; }
textarea.code { font-family: var(--bs-font-monospace); font-size: .85rem; }

/* План развития */
ol.roadmap { list-style: none; padding: 0; margin: 0; }
ol.roadmap li { padding: .45rem 0; border-bottom: 1px solid var(--bs-border-color); }
ol.roadmap li:last-child { border-bottom: 0; }
ol.roadmap li.roadmap-done { color: var(--bs-secondary-color); }
ol.roadmap li.roadmap-next, ol.roadmap li.roadmap-progress { font-weight: 600; }
.markdown-body h1 { font-size: 1.5rem; margin-bottom: 1rem; }
.markdown-body h2 { font-size: 1.25rem; margin-top: 1.5rem; }
.markdown-body h3 { font-size: 1.05rem; margin-top: 1.25rem; }
.markdown-body table { width: 100%; margin-bottom: 1rem; border-collapse: collapse; }
.markdown-body th, .markdown-body td { border: 1px solid var(--bs-border-color); padding: .35rem .5rem; vertical-align: top; }
.markdown-body pre { background: var(--bs-tertiary-bg); padding: .75rem; border-radius: .375rem; }
.markdown-body blockquote { border-left: 3px solid var(--bs-border-color); padding-left: .75rem; color: var(--bs-secondary-color); }
.markdown-body li > input[type="checkbox"] { margin-right: .35rem; }

/* Предпросмотр поста в стиле Telegram */
.telegram-preview { white-space: pre-wrap; background: #eef3f8; border-radius: .75rem; padding: 1rem 1.1rem; font-size: .95rem; line-height: 1.45; max-width: 36rem; }
.telegram-preview a { color: #168acd; text-decoration: none; }

/* Кандидаты «Главного»: длинный заголовок переносится колонкой справа от галочки, а не под неё */
.news-pick { display: flex; align-items: flex-start; gap: .6rem; padding-left: 0; min-height: 0; }
.news-pick .form-check-input { float: none; margin: .1rem 0 0; flex-shrink: 0; }
.news-pick .form-check-label { margin: 0; }
/* Логи: запись раскрывается кликом, длинные адреса переносятся */
.log-table summary { cursor: pointer; }
.log-table td { word-break: break-word; }
