/* ============================================================
   ENews-bs5 — современный стиль поверх Bootstrap 5.3
   Цвета берутся из CSS-переменных Bootstrap (--bs-*) и схем (--en-*).
   ============================================================ */
:root{
    --en-accent:#d62828;
    --en-accent-2:#0353a4;
    --en-hero-h:340px;
}

body{
    background:var(--en-page-bg,var(--bs-body-bg));
    transition:background .25s ease,color .25s ease;
}

/* Ссылки — акцент при наведении */
a{color:inherit;text-decoration:none}
a:hover{color:var(--en-accent)}
.accent{color:var(--en-accent)}
.en-title-bar{display:inline-block;width:4px;height:1.15em;background:var(--en-accent);
    border-radius:2px;margin-right:.5rem;vertical-align:-.15em}

/* ---------- Карточка/тени ---------- */
.card,.list-group-item{
    background:var(--bs-body-bg);
    border-color:var(--bs-border-color);
}
.shadow-sm{box-shadow:0 1px 3px rgba(0,0,0,.08)!important}

/* ---------- Навбар ---------- */
.en-navbar{
    background:var(--bs-body-bg);
    border-bottom:2px solid var(--en-accent);
    box-shadow:0 1px 8px rgba(0,0,0,.06);
    padding-top:.5rem;padding-bottom:.5rem;
}
/* DEBUG-панель (fixed, ~60px) не должна перекрывать навбар */
body:has(#edbg){padding-top:30px}
body:has(#edbg) .en-navbar{top:30px}
.en-navbar .navbar-brand{letter-spacing:-.5px}
.en-navbar .nav-link{border-radius:.5rem;padding:.4rem .7rem}
.en-navbar .nav-link:hover{background:rgba(127,127,127,.1)}
.en-nav-avatar{border-radius:50%;object-fit:cover;border:1px solid var(--bs-border-color)}
/* Кнопка «Действия со статьёй» (шестерёнка в мета-строке статьи): меньше
   обычной btn-sm по горизонтали, чтобы не растягивать строку */
.en-art-actions{padding:.1rem .4rem;line-height:1.2}
.en-login-btn{background:var(--en-accent);border:none;color:#fff;border-radius:.5rem}
.en-login-btn:hover{background:var(--en-accent-2);color:#fff}
/* Выпадашка «Категории»: рубрик больше 30, в одну колонку список длиннее
   экрана. Пункты раскладываем в две колонки (column-count сам балансирует
   высоту), пункт не разрывается между колонками, длинные названия не
   переносятся.
   ВАЖНО: колонки и прокрутка — на РАЗНЫХ элементах. Если задать column-count
   и max-height на одном, браузер при нехватке высоты не начинает вертикальную
   прокрутку, а выводит остаток в лишнюю колонку справа — меню уезжает за
   край экрана. Поэтому скроллится внешний .en-cats-dropdown, а колонки
   живут во внутреннем .en-cats-cols без ограничения высоты. */
.en-cats-dropdown{max-height:70vh;overflow:auto;max-width:calc(100vw - 2rem)} /* min-width:560px; */
.en-cats-cols{
    column-count:2;
    column-gap:.5rem;
    column-rule:1px solid var(--bs-border-color-translucent);
    list-style:none;margin:0;padding:0;
}
.en-cats-cols>li{break-inside:avoid;-webkit-column-break-inside:avoid}
.en-cats-dropdown .dropdown-item{white-space:nowrap}
/* Ниже lg навбар свёрнут в «гамбургер» — широкая панель в две колонки
   в экран телефона не влезает, там список снова одноколоночный */
@media (max-width:991.98px){
    .en-cats-dropdown{min-width:0;max-width:none}
    .en-cats-cols{column-count:1;column-rule:0}
}

/* ---------- Поиск ---------- */
.en-search .form-control{border-top-right-radius:0;border-bottom-right-radius:0}
.en-search .btn{background:var(--en-accent);color:#fff}

/* ---------- Hero-карусель ---------- */
.en-hero{background:#000;max-height:482px}
.en-hero .carousel-inner,.en-hero .carousel-item{max-height:482px;min-height:220px;}
.en-slide{position:relative;height:100%}
.en-slide-img{object-fit:cover;filter:brightness(.85)}
.en-slide-caption{
    background:linear-gradient(0deg,rgba(0,0,0,.85),rgba(0,0,0,.35) 60%,transparent);
    left:0;right:0;bottom:0;width:100%;text-align:left;padding:2rem 1.25rem 1rem;
}
.en-slide-caption h3{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.en-slide-caption p{color:#e9ecef}

/* ---------- Блок «Главные» ---------- */
.en-top-box .card-header{background:var(--en-accent);color:#fff;font-weight:600}
.en-top-box .card-header a{color:#fff}
.en-top-box .card-header a:hover{color:#fff;text-decoration:underline}
.top-box-link{text-decoration:none}
.en-top-item{border-left:0;border-right:0}
.en-top-img{width:72px;height:54px;object-fit:cover;border-radius:.35rem;flex-shrink:0}
.en-top-img-empty{background:rgba(127,127,127,.15);color:var(--bs-secondary-color);font-size:1.4rem}
.en-top-title{font-weight:600;line-height:1.3}

/* ---------- Секция ---------- */
.en-section-title{font-weight:700}

/* ---------- Карточка новости ---------- */
.en-news-card{transition:transform .15s ease,box-shadow .15s ease}
.en-news-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.12)!important}
.en-thumb{display:block}
.en-card-img{height:200px;object-fit:cover;width:100%}
.en-cat-badge{position:absolute;top:.6rem;left:.6rem;background:var(--en-accent);color:#fff;font-weight:500}
.en-card-link{color:var(--bs-body-color);font-weight:700;line-height:1.35}
.en-card-link:hover{color:var(--en-accent)}
.en-news-card h3 a{text-decoration:none}
.en-rating{white-space:nowrap}
.vi-rate .ratingtypeplusminus{font-weight:600;font-size:1.05rem}
.ratingplus{color:#2a9d3a}
.ratingminus{color:var(--en-accent)}
.ratingzero{color:var(--bs-secondary-color)}
.fav-btn{cursor:pointer;color:var(--bs-secondary-color);font-size:1.05rem}
.fav-btn:hover{color:#f4b400}
.fav-btn.fav-on{color:#f4b400}
.fav-label{font-size:.8rem;margin-left:.25rem}
/* Иконка «Действия со статьёй» на картинке карточки (правый верхний угол).
   Полупрозрачный тёмный кружок: фотографии бывают любые, а иконка должна
   читаться на каждой. Лежит вне ссылки-картинки (см. item/news.tpl), поэтому
   клик не открывает новость и выпадашку не режет overflow-hidden у .en-thumb.
   .card уже position:relative (Bootstrap), отдельный контекст не нужен. */
.en-news-card .en-card-actions{position:absolute;top:.6rem;right:.6rem;z-index:2}
.en-news-card .en-card-actions .en-art-actions{display:flex;align-items:center;justify-content:center;
    width:2rem;height:2rem;padding:0;border:0;border-radius:50%;
    background:rgba(0,0,0,.55);color:#fff;font-size:.95rem;line-height:1;opacity:.8;
    transition:opacity .15s ease,background .15s ease}
.en-news-card .en-card-actions .en-art-actions:hover,
.en-news-card .en-card-actions .en-art-actions:focus-visible,
.en-news-card .en-card-actions .en-art-actions[aria-expanded="true"]{opacity:1;background:rgba(0,0,0,.8)}
.en-news-card .en-card-actions .dropdown-menu{font-size:.875rem}

/* ---------- боковые списки ---------- */
.en-side2{border-left:0;border-right:0}
.en-side2-img{width:60px;height:46px;object-fit:cover;border-radius:.3rem;flex-shrink:0}
.en-side2-title{font-weight:600;line-height:1.3;color:var(--bs-body-color)}
.en-side2:hover .en-side2-title{color:var(--en-accent)}

/* ---------- Сводки ---------- */
.en-svodka-card .card-header a{color:var(--en-accent)}
.en-svodka-title{font-weight:600;line-height:1.35;margin:.15rem 0}
.en-svodka-title a{color:var(--bs-body-color)}
.en-svodka-title a:hover{color:var(--en-accent)}

/* ---------- Похожие ---------- */
.en-related-card{transition:transform .15s}
.en-related-card:hover{transform:translateY(-2px)}
.en-related-img{max-height:230px;object-fit:cover}
.en-related-title{color:var(--bs-body-color);line-height:1.3;font-weight:600}
.en-related-card:hover .en-related-title{color:var(--en-accent)}

/* ---------- Статья ---------- */
.en-article-text img{max-width:100%;height:auto;border-radius:.5rem;margin:.5rem 0}
.en-article-text p{margin-bottom:1rem}
.en-article-text a{color:var(--en-accent-2);text-decoration:underline}
.en-article-text blockquote{border-left:3px solid var(--en-accent);padding-left:1rem;
    color:var(--bs-secondary-color);margin:1rem 0}
/* цитата и спойлер из BBCode (классы как в DLE) */
.quote{border:1px solid var(--bs-border-color);border-left:3px solid var(--en-accent);
    background:rgba(127,127,127,.06);padding:.5rem .75rem;border-radius:.35rem;margin:.5rem 0}
.title_quote{font-size:.85rem;color:var(--bs-secondary-color);margin-bottom:.25rem}
/* Спойлер из BBCode: заметная кликабельная плашка, а не просто ссылка в тексте
   (в теме дня это делал серый блок из engine.css). Состояние «открыт» вешает
   ShowOrHide в comments.js классом .spoiler-open — по нему поворачиваем стрелку.
   Иконку рисуем CSS-маркером: картинки dleimages есть не во всех темах. */
.title_spoiler{display:flex;align-items:center;gap:.45rem;cursor:pointer;
    font-weight:600;color:var(--en-accent-2);background:rgba(3,83,164,.08);
    border:1px solid rgba(3,83,164,.35);border-left:3px solid var(--en-accent-2);
    border-radius:.35rem;padding:.5rem .75rem;margin:.75rem 0 .4rem}
.title_spoiler:hover{background:rgba(3,83,164,.14)}
.title_spoiler img{display:none}
.title_spoiler a{color:inherit;text-decoration:none}
.title_spoiler a:first-child::before{content:"\25B8";display:inline-block;
    font-size:.95em;line-height:1}
.title_spoiler.spoiler-open a:first-child::before{content:"\25BE"}
.title_spoiler a:last-child{flex:1 1 auto;border-bottom:1px dashed currentColor}
.title_spoiler a:last-child:hover{border-bottom-style:solid}
.text_spoiler{border:1px solid var(--bs-border-color);border-left:3px solid var(--en-accent-2);
    border-radius:0 0 .35rem .35rem;padding:.65rem .85rem;margin:0 0 .9rem;
    background:rgba(127,127,127,.05)}
img.emoji{
	/* height:1.4em; */
	vertical-align:-.3em;margin:0 1px}

/* ---------- Комментарии ---------- */
/* Дерево ответов — структура как на проде (DLE compile_tree);
   визуально плоский список (в проде вложенность тоже обнулена в styles.css). */
.comments-tree-list{display:block;margin:0;padding:0;list-style:none}
.comments-tree-list .comments-tree-list{padding-left:0}
.comments-tree-item{display:block;margin:0;padding:0}
/* Аватар комментария: бокс 3rem×3rem, картинка заполняет его без искажения
   пропорций и обрезается по центру — как .en-nav-avatar в шапке. Раньше размер
   задавали атрибуты width/height в разметке, поэтому неквадратные фото
   (94×101, 101×95 и т.п. в uploads/fotos) сплющивались. */
.comm .comm-av img{width:3rem;height:3rem;object-fit:cover;object-position:center;
    border:1px solid var(--bs-border-color)}
/* аватар в форме быстрого ответа (#ac-av) — та же логика, что у комментариев */
#ac-av img{width:100%;height:100%;object-fit:cover;object-position:center}
.comm-desc{position:relative;overflow-wrap:anywhere}
.comm-desc p:last-child{margin-bottom:0}
.comm-desc img{max-width:100%;height:auto;border-radius:.35rem}
.comm-desc a{color:var(--en-accent-2);text-decoration:underline}
.comm .quote,.comm .text_spoiler{margin:.5rem 0}
.signature{border-top:1px dashed var(--bs-border-color);margin-top:.5rem;padding-top:.25rem;
    color:var(--bs-secondary-color);font-size:.85rem}
.comm-rate a{color:var(--bs-secondary-color);font-size:1.25rem;line-height:1;text-decoration:none}
.comm-rate a:hover{color:var(--en-accent)}
.pos-comm .ratingtypeplusminus,.comm-rate.pos-comm{color:#2a9d3a}
.neg-comm .ratingtypeplusminus,.comm-rate.neg-comm{color:var(--en-accent)}
/* root-comm/child-comm — на проде пустые маркеры (вложенность деревом), стиля не требуют */
.status-online a,.status-online{position:relative}
.comm-author.status-online a::after{content:'';display:inline-block;width:8px;height:8px;
    border-radius:50%;background:#2a9d3a;margin-left:4px;vertical-align:middle}

/* Сворачивание длинных комментариев.
   .comm-desc получает фиксированную высоту и overflow:hidden, поэтому кнопку
   нельзя оставлять в потоке — она уезжает ПОД обрезанный текст и её не видно
   (JS её показывает, но пользователь её не находит). В шаблоне дня кнопка
   спозиционирована абсолютно у нижнего края блока — делаем так же: снизу
   градиентная «шторка» цвета карточки и по центру кнопка раскрытия. */
.css--long{overflow:hidden;padding-bottom:2.5rem}
.css--long::before{content:'';position:absolute;z-index:1;bottom:0;left:0;right:0;height:2.5rem;
    background:linear-gradient(to bottom,rgba(0,0,0,0) 0%,var(--bs-card-bg,var(--bs-body-bg)) 100%)}
.comment-textButton{display:none;position:absolute;z-index:2;bottom:0;left:0;right:0;text-align:center}
.comment-textButton span{display:inline-block;padding:.4rem .85rem;border-radius:.5rem;cursor:pointer;
    font-size:.85rem;font-weight:600;color:var(--bs-body-color);background:var(--bs-tertiary-bg);
    transition:background-color .15s ease,color .15s ease}
.comment-textButton span:hover{background:var(--en-accent);color:#fff}
.comment-textButton em{font-style:normal;opacity:.7}

/* быстрая форма ответа (dle_fastreply) */
#dlefastreplycomments .add-comm-form{margin-left:2rem;background:rgba(127,127,127,.05);
    border-radius:.5rem}

/* ---------- Форма добавления комментария ---------- */
.add-comm-form textarea{resize:vertical;min-height:90px}
.froala-box .fr-wrapper{border:1px solid var(--bs-border-color)}

/* ---------- Пагинация (разметка DLE) ---------- */
.pagi-nav-wr{text-align:center;margin-top:1rem}
.pagi-nav{display:inline-flex;flex-wrap:wrap;gap:.25rem;align-items:center;
    padding:.5rem;background:rgba(127,127,127,.06);border-radius:.6rem}
.pagi-nav .navigation{display:inline-flex;gap:.25rem}
.pagi-nav .navigation a,.pagi-nav .navigation span,
.pagi-nav .pprev a,.pagi-nav .pnext a,.pagi-nav .nav_ext{
    min-width:2.2rem;height:2.2rem;padding:0 .55rem;display:inline-flex;align-items:center;
    justify-content:center;border-radius:.45rem;font-weight:500;text-decoration:none;
    color:var(--bs-body-color);background:var(--bs-body-bg);border:1px solid var(--bs-border-color)}
.pagi-nav .navigation a:hover{background:var(--en-accent);color:#fff;border-color:var(--en-accent)}
.pagi-nav .navigation > span{background:var(--en-accent);color:#fff;border-color:var(--en-accent)}
/* специфичность выше, чем у «.pagi-nav .navigation > span» (иначе многоточие
   красилось как активная страница); padding:0 — «...» не занимает ширину кнопки */
.pagi-nav .navigation > span.nav_ext,.pagi-nav .nav_ext span{border:none;background:none;padding:0;min-width:1rem}
.pagi-nav .pprev a,.pagi-nav .pnext a{font-weight:600}
/* Страницы выдачи поиска (POST-режим, Controller::pager с $postFn): у ссылок
   намеренно нет href, чтобы в разметке не осталось GET-адреса выдачи. Без
   href браузер не рисует «руку» — добавляем сами. */
.pagi-nav a[data-page]{cursor:pointer}
/* Узкий экран: линейка сворачивается до шести элементов — «Назад, текущая−1,
   текущая, текущая+1, …, Вперед» вместо полной ленты (~14 кнопок). Расстояние
   до текущей страницы сервер проставляет классами pg-dN, края и многоточия —
   pg-edge / pg-edge-l / pg-edge-r (Controller::pager), поэтому сворачивание —
   чистый CSS, без JS. Мобильную тему (.en-mobile) не трогаем: там линейка
   листается горизонтально своей прокруткой. */
@media (max-width: 767.98px) {
    body:not(.en-mobile) .pagi-nav .pg-d2,
    body:not(.en-mobile) .pagi-nav .pg-d3,
    body:not(.en-mobile) .pagi-nav .pg-d4,
    body:not(.en-mobile) .pagi-nav .pg-edge,
    body:not(.en-mobile) .pagi-nav .pg-edge-l { display: none; }
}

/* ---------- Выбор категорий (catpick.js, addnews/editnews) ----------
   Список с прокруткой вместо голого <select multiple size=6>: на телефоне
   и на десктопе одинаково удобен, цвета — из переменных схемы. */
.en-catpick{background:var(--bs-body-bg)}
.en-catpick-list{max-height:264px;overflow-y:auto}
.en-catpick-item{cursor:pointer}
.en-catpick-item:hover{background:var(--bs-tertiary-bg)}
.en-catpick-sub{padding-left:1.4rem}
.en-catpick .en-catpick-x{font-size:.65rem;padding:.3rem}

/* ---------- Footer ---------- */
.enews-footer{background:var(--bs-body-bg)}
.enews-footer a{color:var(--bs-secondary-color)}
.enews-footer a:hover{color:var(--en-accent)}
/* Верхняя строка футера: копирайт и навигация по краям одной строки */
.en-foot-nav{display:flex;flex-wrap:wrap;gap:1rem}
/* Нижняя строка — переключатели на всю ширину: группа «Шаблоны», группа
   «Схема» и «Мобильная» расходятся по краям строки. Внутри группы подпись
   держится рядом со своими кнопками (.en-sw-group — один flex-элемент),
   иначе space-between отрывал бы «Шаблоны:» от самих шаблонов. */
.en-foot-switchers{justify-content:space-between;margin-top:.75rem}
.en-sw-group{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}
/* На узком экране распределять нечего — строки и так переносятся */
@media (max-width:767.98px){
    .en-foot-switchers{justify-content:flex-start}
}

/* ---------- Кнопки/бейджи акцента (через CSS-переменные кнопок BS) ---------- */
.btn-primary,
.btn-primary:disabled{
    --bs-btn-bg:var(--en-accent);
    --bs-btn-border-color:var(--en-accent);
    --bs-btn-hover-bg:var(--en-accent-2);
    --bs-btn-hover-border-color:var(--en-accent-2);
    --bs-btn-active-bg:var(--en-accent-2);
    --bs-btn-active-border-color:var(--en-accent-2);
    --bs-btn-color:#fff;
    --bs-btn-hover-color:#fff;
    --bs-btn-disabled-bg:var(--en-accent);
    --bs-btn-disabled-border-color:var(--en-accent);
}
.btn-outline-primary,
.btn-outline-primary:disabled{
    --bs-btn-color:var(--en-accent);
    --bs-btn-border-color:var(--en-accent);
    --bs-btn-hover-bg:var(--en-accent);
    --bs-btn-hover-border-color:var(--en-accent);
    --bs-btn-hover-color:#fff;
    --bs-btn-active-bg:var(--en-accent-2);
    --bs-btn-active-border-color:var(--en-accent-2);
    --bs-btn-active-color:#fff;
    --bs-btn-disabled-color:var(--en-accent);
    --bs-btn-disabled-border-color:var(--en-accent);
}

/* ---------- Иконки схем в шапке ---------- */
.scheme-active{font-weight:700}

/* ---------- Адаптив ---------- */
@media (max-width:575.98px){
    .en-hero,.en-hero .carousel-inner,.en-hero .carousel-item{min-height:200px}
    .en-card-img{height:170px}
}

/* ---------- Инлайн-редактирование комментария (editcomments) ---------- */
.comments-edit-area textarea{width:100%;min-height:180px;border:1px solid var(--bs-border-color);
    border-radius:.35rem;padding:.5rem;font:inherit;resize:vertical}
.save-buttons{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}
.bbcodes{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);color:var(--bs-body-color);
    padding:.25rem .9rem;border-radius:.45rem;font-weight:600;cursor:pointer}
.bbcodes:hover{background:var(--en-accent);color:#fff;border-color:var(--en-accent)}
.comments-edit-area .froala-box .fr-wrapper{border:1px solid var(--bs-border-color)}

/* ---------- Диалоги редактора (jQuery UI, как в skin engine.css day-темы) ---------- */
.ui-dialog{background-color:var(--bs-body-bg,#fff);overflow:hidden;padding:0;position:absolute;width:600px;box-shadow:0 0 40px rgba(0,0,0,.2);border-radius:6px;z-index:10001 !important}
.ui-dialog-titlebar{padding:10px 20px;border-bottom:1px solid #e3e3e3;background-color:#f5f5f5;background:linear-gradient(to bottom,#fff 0,#f0f0f0 100%)}
.ui-dialog-title{margin-top:2px;float:left;font-size:16px;color:#444}
.ui-dialog .ui-dialog-content{padding:20px;border:0;overflow:auto;position:relative}
.ui-dialog .ui-dialog-buttonpane{border-top:1px solid #ccc;padding:15px 20px;text-align:center;background-color:#f6f6f6}
.ui-draggable .ui-dialog-titlebar{cursor:move}
/* Полный clearfix из jQuery UI CSS (там .ui-helper-clearfix — не просто display:block!).
   Без него .ui-dialog-title{float:left} выпадает из тайтлбара вниз, в область контента,
   а контент диалога (BFC из-за overflow:auto) по спецификации сжимается, чтобы не
   пересекаться с флоатом — содержимое диалога загрузки плющилось в правую половину. */
.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}
.ui-helper-clearfix:after{clear:both}
.ui-widget-overlay{background:#000;opacity:.5;left:0;top:0;right:0;bottom:0;position:fixed;z-index:10000 !important}
.ui-state-error{background:#fef1ec 50% 50% repeat-x !important;border:1px solid #cd0a0a;color:#cd0a0a}
/* jQuery UI 1.12: в кнопке закрытия диалога голый текст "Close" + иконка — оставляем только крестик */
/* Кнопка закрытия диалога: локальная сборка jquery-ui создаёт её ПУСТОЙ
   (без span.ui-icon-closethick), поэтому даём ей реальный бокс 30×30 в правом
   верхнем углу и рисуем крестик на самой кнопке через :empty:before (если
   span есть — :empty не сработает и крестик нарисует правило ниже). */
.ui-dialog .ui-dialog-titlebar-close:empty{position:absolute;right:8px;top:9px;width:30px;height:30px;border:0;background:none;padding:0;margin:0;box-shadow:none;z-index:5;cursor:pointer}
.ui-dialog .ui-dialog-titlebar-close:empty:before{content:"x";position:absolute;right:0;top:0;width:30px;height:30px;line-height:26px;text-align:center;color:#fff;background:#ff3019;background:linear-gradient(to bottom,#ff3019 0,#cf0404 100%);border-radius:4px;font-size:18px;text-indent:0}
.ui-icon-closethick{cursor:pointer;position:absolute;right:8px;top:9px;width:30px;height:30px}
.ui-icon-closethick:before{content:"x";width:30px;height:30px;line-height:26px;text-align:center;color:#fff;background:#ff3019;background:linear-gradient(to bottom,#ff3019 0,#cf0404 100%);border-radius:4px;position:absolute;right:0;top:0;text-indent:0;font-size:18px}
#loading-layer{font-size:14px;background:#f06060;padding:20px;text-align:center;color:#fff;border-radius:8px;z-index:8888 !important}

/* ---- Календарь: разметка DLE (View::buildCalendar = порт engine/modules/calendar.php),
   классы как в skin engine.css — минимальное оформление под Bootstrap.
   Цвета берём ТОЛЬКО из переменных схемы (--bs-*, --en-*): раньше тут были
   прописаны светлые #fff/#f6f6f6 и синий Bootstrap #0d6efd, поэтому в тёмных
   схемах (изумруд, ночь) календарь оставался светлым и выпадал из оформления.
   --bs-body-bg на акцентной плашке даёт «обратный» цвет текста: в светлой схеме
   белый, в тёмной — тёмный, и он читается на любом акценте.
   ВНИМАНИЕ: в комментариях не писать звёздочку перед слэшем — последовательность
   закрывает комментарий раньше времени, и парсер выбрасывает следующее правило
   до первой закрывающей скобки. ---- */
#tab-cal .calendar { font-size:.85rem; width:100%; } /* #tab-cal  */
.calendar td, .calendar th { padding:.4rem 0; text-align:center; vertical-align:middle; }
.calendar td.day, .calendar td.day-active-v, .calendar th.workday { border:1px solid var(--bs-border-color); background-color:var(--bs-body-bg); }
.calendar td.weekday, .calendar td.day-active, .calendar th.weekday { border:1px solid var(--bs-border-color); background-color:var(--bs-tertiary-bg); }
.day-active, .day-active-v { font-weight:600; }
.day-active a, .day-active-v a { color:var(--en-accent-2); text-decoration:none; }
.day-active a:hover, .day-active-v a:hover { text-decoration:underline; }
.calendar td.day-current { background:var(--en-accent); }
.day-current a, .day-current { color:var(--bs-body-bg) !important; }
th.monthselect { text-align:left; padding-bottom:.3rem; font-weight:400; }
.monthlink { text-decoration:none; }
.monthlink:hover { color:var(--en-accent); }

/* ---- Аккордеон правой колонки (partials/aside_accordion.tpl): та же подача,
   что у карточек сайдбара — без рамки, с тенью и прозрачной шапкой ---- */
.en-acc{--bs-accordion-border-width:0;--bs-accordion-border-radius:.5rem;--bs-accordion-inner-border-radius:.5rem;
  --bs-accordion-btn-padding-y:.75rem;--bs-accordion-btn-padding-x:1rem;--bs-accordion-btn-focus-box-shadow:none;
  --bs-accordion-body-padding-y:.5rem;--bs-accordion-body-padding-x:0;
  box-shadow:0 .125rem .25rem rgba(0,0,0,.075);border-radius:.5rem;overflow:hidden}
.en-acc .accordion-item{border:0}
.en-acc .accordion-item+.accordion-item{border-top:1px solid var(--bs-border-color-translucent)}
.en-acc .accordion-button{font-weight:600}
.en-acc .accordion-button:not(.collapsed){color:var(--en-accent);background-color:transparent;box-shadow:none}
.en-acc .accordion-body .list-group-item{padding-left:1rem;padding-right:1rem}

/* Кнопки в профиле */
.user-connect a {
	display: block;
    padding: 7px 10px;
    margin-top: 10px;
    border-radius: 4px;
    font-size: 14px;
    text-align: center;
    color: #fff !important;
    background-color: #398dd8;
}
/* сообщения в виджете последних комментариев */
.comm_now_body_mess {
    background: #fff;
    border: 1px solid rgba(144, 141, 141, 0.47);
    border-radius: 5px;
    padding: 5px 12px 8px;
    color: #959595;
    font-size: .9rem;
    font-family: Tahoma, Geneva, sans-serif;
	margin-left: .8rem;
}
/* ---- Кнопка «Наверх» (#scrollToTop, скрипт /public/js/scrolltop.js) ----
   Скрыта по умолчанию, класс visible вешает скрипт после прокрутки.
   z-index ниже модалок Bootstrap (1050) — кнопка не всплывает над диалогами. */
.btn-scroll-top{position:fixed;right:1.5rem;bottom:5rem;z-index:1030;
    display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;
    border:0;border-radius:50%;background:var(--en-accent);color:#fff;
    font-size:1.15rem;line-height:1;box-shadow:0 3px 10px rgba(0,0,0,.25);
    opacity:0;visibility:hidden;transform:translateY(.5rem);
    transition:opacity .2s ease,transform .2s ease,visibility .2s ease}
.btn-scroll-top.visible{opacity:.92;visibility:visible;transform:none}
.btn-scroll-top:hover{opacity:1}
.btn-scroll-top:focus-visible{outline:2px solid var(--bs-body-color);outline-offset:2px}
/* Мини-блок быстрых ЛС (FPM) висит в том же правом нижнем углу — пока он
   показан, поднимаем кнопку над ним. :has() уже используется в этой теме
   (см. body:has(#edbg) выше), так что опора на него здесь допустима. */
body:has(#fpm-mini:not([hidden])) .btn-scroll-top{bottom:5.5rem}
