/* ==========================================================================
   CS 1.6 ZONE — DLE template
   Основная вёрстка (шапка, сайдбар, карточки, hero) написана на Tailwind прямо
   в .tpl-файлах, как в макете. Этот файл описывает всё остальное: разметку,
   которую генерирует сам DLE ({pages}, {tags}, {calendar}, редактор, xfields…),
   а также формы, комментарии, профиль, ЛС, опросы и т.д.
   Палитра — из макета: csdark 950/900/800/700/600 + оранжево-красный акцент.
   ========================================================================== */

/* ---------- 1. Переменные ---------- */
:root {
	color-scheme: dark;

	--bg: #07080d;
	--surface: #0c0f17;
	--surface-soft: #131823;
	--surface-sunk: #07080d;
	--surface-2: #1b2332;
	--surface-3: #263248;

	--text: #e2e8f0;
	--news-text: #cbd5e1;
	--muted: #94a3b8;
	--line: #1b2332;
	--line-strong: #263248;

	--accent: #ff5500;
	--accent-2: #ff2a2a;
	--accent-strong: #ff7a33;
	--accent-soft: rgba(255, 85, 0, .12);
	--accent-hover-soft: rgba(255, 85, 0, .22);
	--accent-ink: #ffffff;
	--accent-grad: linear-gradient(90deg, #ff5500, #ff2a2a);

	--positive: #34d399;
	--positive-soft: rgba(16, 185, 129, .14);
	--negative: #f87171;
	--negative-soft: rgba(255, 42, 42, .14);
	--warn: #fbbf24;
	--warn-soft: rgba(251, 191, 36, .14);
	--star: #fbbf24;
	--star-off: #263248;
	--dot: #3a4660;

	--sage: #34d399; --sage-soft: rgba(16,185,129,.14); --sage-ink: #6ee7b7;
	--mist-soft: rgba(168,85,247,.14); --mist-ink: #d8b4fe;
	--amber-soft: rgba(245,158,11,.14); --amber-ink: #fcd34d;
	--rose-soft: rgba(244,63,94,.14); --rose-ink: #fda4af;

	/* совместимость со старым engine.css */
	--app-em: 1rem;
	--font-size-xs: .75rem; --font-size-sm: .86rem; --font-size-base: .9rem; --font-size-lg: 1rem;
	--sp-1: .25rem; --sp-2: .5rem; --sp-3: .75rem; --sp-4: 1rem; --sp-5: 1.25rem; --sp-6: 1.5rem;
	--sp-7: 1.75rem; --sp-8: 2rem; --sp-10: 2.5rem; --sp-12: 3rem;
	--r-xs: .375rem; --r-sm: .5rem; --r-md: .75rem; --r-lg: 1rem; --r-xl: 1rem; --r-pill: 100rem;
	--radius: 1rem;
	--hair: 1px;
	--control-h: 2.75rem;
	--fs-meta: .9375rem; --fs-sm: 1rem; --fs-ui: .95rem; --fs-body: 1.125rem; --fs-lead: 1.1rem;
	--fs-h4: 1.25rem; --fs-h3: 1.4rem; --fs-h2: 1.6rem; --fs-h1: 2rem;
	--image-brightness: 1; --image-contrast: 1; --image-saturate: 1;
	--shadow: 0 20px 52px rgba(0, 0, 0, .5);
	--shadow-soft: 0 7px 24px rgba(0, 0, 0, .35);
	--shadow-tiny: 0 4px 16px rgba(0, 0, 0, .3);
	--shadow-menu: 0 24px 56px rgba(0, 0, 0, .65), 0 4px 12px rgba(0, 0, 0, .45);
	--shadow-modal: 0 24px 64px rgba(0, 0, 0, .7), 0 4px 12px rgba(0, 0, 0, .5);
	--glow: 0 0 20px rgba(255, 85, 0, .25);
	--glow-hover: 0 0 25px rgba(255, 85, 0, .45);
	--code-bg: #07080d; --code-border: #1b2332; --code-ink: #e2e8f0; --code-comment: #64748b;
	--code-punct: #94a3b8; --code-value: #f472b6; --code-string: #6ee7b7; --code-operator: #fdba74;
	--code-keyword: #67e8f9; --code-function: #fda4af; --code-variable: #c4b5fd; --code-regex: #fcd34d;
	--code-select: #263248; --code-shadow: none;
}

/* ---------- 2. База ---------- */
html { scroll-behavior: smooth; scrollbar-color: #ff5500 #0c0f17; background: var(--bg); }
body { background: var(--bg); color: var(--text); font-family: 'Rajdhani', sans-serif; font-size: 1.0625rem; overflow-x: hidden; -webkit-font-smoothing: antialiased; }
::selection { background: var(--accent); color: #fff; }
a { transition: color .2s ease; }
img { height: auto; }

.custom-sidebar::-webkit-scrollbar { width: 4px; }
.custom-sidebar::-webkit-scrollbar-track { background: #0c0f17; }
.custom-sidebar::-webkit-scrollbar-thumb { background: #ff5500; border-radius: 2px; }
.gaming-glow { box-shadow: 0 0 20px rgba(255, 85, 0, .25); }
.gaming-glow-hover:hover { box-shadow: 0 0 25px rgba(255, 85, 0, .45); }
.cyber-border { clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px)); }
.cyber-button { clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 8px 100%, 0 calc(100% - 8px)); }

.sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 100; padding: .6rem 1rem; background: var(--accent); color: #fff; border-radius: .5rem; font-weight: 700; }
.skip-link:focus { top: 5.5rem; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.icon--brand { font-size: 1.1rem; }
.to-top { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 45; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 1px solid var(--line-strong); border-radius: .75rem; background: var(--surface-soft); color: var(--accent); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(8px); transition: .25s; }
.to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.to-top:hover { background: var(--accent); color: #fff; box-shadow: var(--glow-hover); }

/* ---------- 3. Кнопки ---------- */
.primary-button, .soft-button, .icon-button { font-family: inherit; cursor: pointer; transition: .2s ease; text-decoration: none; }
.primary-button {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	padding: .6rem 1.35rem; border: 0; color: #fff; font-weight: 700; font-size: .95rem; letter-spacing: .02em;
	background: var(--accent-grad);
}
.primary-button:hover { filter: brightness(1.12); }
.primary-button:active { transform: translateY(1px); }
.soft-button {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	padding: .5rem 1rem; border: 1px solid var(--line-strong); border-radius: .5rem;
	background: var(--surface-soft); color: var(--text); font-size: .9rem; font-weight: 600;
}
.soft-button:hover { background: var(--surface-2); border-color: var(--surface-3); }
.soft-button i { color: var(--accent); }
.soft-button.is-active { border-color: rgba(255, 85, 0, .5); color: var(--accent); }
.soft-button--danger { color: var(--negative); }
.soft-button--danger i { color: var(--negative); }
.soft-button--danger:hover { background: var(--negative-soft); border-color: var(--negative); }
.icon-button { display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border: 1px solid var(--line-strong); border-radius: .5rem; background: var(--surface-soft); color: var(--muted); }
.icon-button:hover { color: var(--accent); background: var(--surface-2); }
summary.primary-button, summary.soft-button { list-style: none; }
summary::-webkit-details-marker { display: none; }

/* ---------- 4. Структура контента ---------- */
.content-area { min-width: 0; }
.page--list #dle-content { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: stretch; }
@media (min-width: 768px)  { .page--list #dle-content { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .page--list #dle-content { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.page--list #dle-content > .pagination,
.page--list #dle-content > .notice,
.page--list #dle-content > .panel,
.page--list #dle-content > .search-result-msg,
.page--list #dle-content > .result-card,
.page--list #dle-content > .thread__item,
.page--list #dle-content > .section-heading,
.page--list #dle-content > div:not([id^="news-id-"]) { grid-column: 1 / -1; }
.page--list #dle-content > .file-card { min-width: 0; }
/* DLE оборачивает краткие новости в <div id="news-id-N" style="display:inline"> для быстрого редактирования */
#dle-content > div[id^="news-id-"] { display: contents !important; }
#dle-content > .thread__item + .thread__item { margin-top: 1rem; }
#dle-content > .result-card + .result-card { margin-top: 0; }

.section-intro { margin-bottom: 1.5rem; padding-left: 1rem; border-left: 3px solid var(--accent); }
.section-intro h1 { font-family: 'Teko', sans-serif; font-size: 2.6rem; line-height: 1; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #fff; margin: 0; }
.section-intro p { margin: .35rem 0 0; color: var(--muted); font-size: 1rem; }

.section-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.25rem; }
.section-heading h1, .section-heading h2 { margin: 0; font-family: 'Teko', sans-serif; font-size: 2rem; line-height: 1.05; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #fff; }
.section-heading h1::before, .section-heading h2::before { content: ""; display: inline-block; width: 4px; height: .85em; margin-right: .6rem; vertical-align: -.05em; background: var(--accent-grad); border-radius: 2px; }
.section-heading p { margin: .3rem 0 0; color: var(--muted); font-size: .98rem; }
.counter { margin-left: .6rem; padding: .1rem .6rem; border-radius: .4rem; background: var(--accent-soft); color: var(--accent); font-family: 'Rajdhani', sans-serif; font-size: 1rem; letter-spacing: 0; vertical-align: .25em; }

.panel { padding: 1.75rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); }
@media (max-width: 640px) { .panel { padding: 1.1rem; } }

/* ---------- 5. Фильтры и сортировка ---------- */
.filter-chip { display: inline-flex; align-items: center; padding: .5rem 1rem; border-radius: .5rem; background: var(--surface-soft); color: #cbd5e1; font-size: .875rem; font-weight: 600; white-space: nowrap; transition: .2s; }
.filter-chip:hover { background: var(--surface-2); color: #fff; }
.filter-chip.is-active { background: var(--accent); color: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .4); }

.sort-wrap { font-size: .875rem; }
.sort-wrap ul { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.sort-wrap li { display: inline-flex; }
.sort-wrap a, .sort-wrap li > span, .sort-wrap .sort > span { display: inline-flex; align-items: center; gap: .35rem; padding: .4rem .8rem; border: 1px solid var(--line-strong); border-radius: .5rem; background: var(--surface-sunk); color: #cbd5e1; font-weight: 600; }
.sort-wrap a:hover { border-color: var(--accent); color: #fff; }
.sort-wrap li.asc a, .sort-wrap li.desc a, .sort-wrap a.asc, .sort-wrap a.desc, .sort-wrap .current, .sort-wrap li.active a { border-color: rgba(255, 85, 0, .5); background: var(--accent-soft); color: var(--accent); }
.sort-wrap li.asc a::after { content: "\f062"; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: .7rem; }
.sort-wrap li.desc a::after { content: "\f063"; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: .7rem; }
.sort-wrap select { width: auto; }

/* ---------- 6. Формы ---------- */
.form-body { display: grid; gap: 1.1rem; margin-top: .5rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
.form-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 720px) { .form-grid, .form-grid--three { grid-template-columns: minmax(0, 1fr); } }
.form-row { display: block; min-width: 0; }
.form-row--inline { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; }
.form-row--check { display: flex; flex-direction: column; gap: .5rem; }
.form-label { display: block; margin-bottom: .4rem; color: var(--muted); font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.form-req { margin-left: .2rem; color: var(--accent); }
.form-hint { color: var(--muted); font-size: .9rem; }
.form-sep { margin: 1.25rem 0 .25rem; padding-bottom: .5rem; border-bottom: 1px solid var(--line); font-family: 'Teko', sans-serif; font-size: 1.4rem; letter-spacing: .05em; text-transform: uppercase; color: #fff; }
.form-inline { display: flex; gap: .6rem; }
.form-inline .form-input { flex: 1; }
.form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem 1rem; margin-top: .5rem; }
.form-actions__hint { color: var(--muted); font-size: .9rem; }
.form-actions__hint a { color: var(--accent); }

.form-input,
.form-row input[type="text"], .form-row input[type="password"], .form-row input[type="email"],
.form-row input[type="number"], .form-row input[type="url"], .form-row input[type="search"], .form-row input[type="date"],
.form-row select, .form-row textarea,
.searchtable input[type="text"], .searchtable select,
.addnews-form select, .addnews-form input[type="text"], .addnews-form textarea,
.profile-settings select, .profile-settings textarea,
.pm-dialog input[type="text"], .search-fieldset select, .search-fieldset input[type="text"],
.sort-wrap select {
	width: 100%; min-height: 2.75rem; padding: .55rem .9rem;
	border: 1px solid var(--line-strong); border-radius: .5rem;
	background: var(--surface-sunk); color: var(--text);
	font: inherit; font-size: .95rem; outline: 0;
	transition: border-color .2s, box-shadow .2s;
}
.form-input:hover, .form-row input:hover, .form-row select:hover, .form-row textarea:hover { border-color: #3a4660; }
.form-input:focus, .form-row input:focus, .form-row select:focus, .form-row textarea:focus,
.searchtable input:focus, .searchtable select:focus, .sort-wrap select:focus {
	border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft);
}
.form-row textarea, textarea.form-input { min-height: 7rem; resize: vertical; }
.form-row select, select.form-input, .sort-wrap select, .search-fieldset select { width: auto; max-width: 100%; cursor: pointer; }
.form-row .form-input[type="password"], .form-row select.form-input { width: 100%; }
.form-input::placeholder, .form-row input::placeholder, .form-row textarea::placeholder { color: #64748b; }
.form-input--file, .form-row input[type="file"] { padding: .35rem; cursor: pointer; }
input[type="file"]::file-selector-button { margin-right: .75rem; padding: .4rem .9rem; border: 0; border-radius: .4rem; background: var(--surface-2); color: var(--text); font: inherit; font-weight: 600; cursor: pointer; }
input[type="file"]::file-selector-button:hover { background: var(--accent); color: #fff; }
input[type="checkbox"], input[type="radio"] { width: 1.05rem; height: 1.05rem; margin: 0; accent-color: var(--accent); flex: none; cursor: pointer; }
.form-check-label, .form-check, .form-row--check label { display: inline-flex; align-items: flex-start; gap: .5rem; cursor: pointer; color: var(--news-text); font-size: .98rem; }
.form-check-input { margin-top: .25rem; }
.c-captcha { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.c-captcha img { border-radius: .5rem; }
.c-captcha input { width: 12rem; }
.user_fields, .admin_checkboxs { display: grid; gap: .9rem; }
.user_fields input, .user_fields textarea, .user_fields select, #xfields input[type="text"], #xfields textarea, .form-row .xfields input[type="text"] { width: 100%; padding: .55rem .9rem; border: 1px solid var(--line-strong); border-radius: .5rem; background: var(--surface-sunk); color: var(--text); font: inherit; }

.reply-form { margin-top: 1.5rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); display: grid; gap: 1.1rem; }
.reply-form__title { margin: 0; font-family: 'Teko', sans-serif; font-size: 1.7rem; letter-spacing: .05em; text-transform: uppercase; color: #fff; }
.reply-form__note { margin: 0; color: var(--muted); font-size: .98rem; }
.reply-form__note a { color: var(--accent); text-decoration: underline; }
.comments-image-uploader-toggle { color: var(--accent); font-weight: 600; }

.addvote { border: 1px dashed var(--line-strong); border-radius: .75rem; padding: .75rem; }
.addvote[open] { background: var(--surface-soft); }
.addvote__body { display: grid; gap: 1rem; margin-top: 1rem; }
.profile-settings { margin-top: 1.5rem; border-top: 1px solid var(--line); padding-top: 1.25rem; }
.profile-settings > summary { list-style: none; }
.profile-settings[open] > summary { margin-bottom: 1rem; }

/* BB-редактор DLE */
.bb-editor, .wseditor { border: 1px solid var(--line-strong); border-radius: .5rem; background: var(--surface-sunk); }
.bb-editor textarea, .wseditor textarea { border: 0 !important; background: transparent !important; color: var(--text); width: 100%; }
.bb-editor .bb-pane, .bb-pane { display: flex; flex-wrap: wrap; gap: .2rem; padding: .4rem; border-bottom: 1px solid var(--line-strong); background: var(--surface-soft); border-radius: .5rem .5rem 0 0; }
.bb-editor .bb-btn, .bb-btn { min-width: 2rem; height: 2rem; border: 1px solid transparent; border-radius: .4rem; background: transparent; color: var(--muted); cursor: pointer; }
.bb-editor .bb-btn:hover, .bb-btn:hover { background: var(--surface-2); color: var(--accent); }
.bb-editor .bb-sel { background: var(--surface-sunk); color: var(--text); border: 1px solid var(--line-strong); border-radius: .4rem; }

/* ---------- 7. Уведомления ---------- */
.notice { display: flex; gap: .9rem; align-items: flex-start; margin-bottom: 1.25rem; padding: 1rem 1.2rem; border: 1px solid rgba(255, 85, 0, .35); border-left-width: 4px; border-radius: .75rem; background: var(--accent-soft); }
.notice__icon { color: var(--accent); font-size: 1.15rem; line-height: 1.6; }
.notice__title { display: block; color: #fff; font-size: 1.05rem; }
.notice__text { color: var(--news-text); font-size: .98rem; }
.notice__text a { color: var(--accent); text-decoration: underline; }
.notice--warn { border-color: rgba(251, 191, 36, .4); background: var(--warn-soft); color: var(--warn); }

/* ---------- 8. Чипы, мета, бейджи ---------- */
.chips { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .4rem; font-size: 0; }
.chips a, .chips > span > a { display: inline-flex; align-items: center; font-size: .78rem; font-weight: 700; color: inherit; transition: color .2s; }
.chips a:hover { color: #fff; }
.chips--rub { gap: .25rem; }
.chips--rub a + a::before { content: ","; margin-right: .25rem; opacity: .6; }
.chips--tags a, .chips--tags > span > a { padding: .3rem .75rem; border: 1px solid var(--line-strong); border-radius: .5rem; background: var(--surface-soft); color: #cbd5e1; font-size: .85rem; font-weight: 600; }
.chips--tags a:hover { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }
.chips--plain a { color: var(--accent); }
.chips--cloud { gap: .6rem; }

.meta-item { display: inline-flex; align-items: center; gap: .4rem; color: var(--muted); font-size: .9rem; white-space: nowrap; }
.meta-item a { color: inherit; }
.meta-item a:hover { color: var(--accent); }
.meta-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--dot); flex: none; }
.badge { display: inline-flex; padding: .1rem .55rem; border-radius: .4rem; background: var(--surface-2); color: var(--muted); font-size: .75rem; font-weight: 700; }
.badge--new { background: var(--accent); color: #fff; }

.avatar { display: block; width: 2.75rem; height: 2.75rem; border: 2px solid var(--surface-3); border-radius: 50%; object-fit: cover; background: var(--surface-soft); flex: none; }
.avatar--sm { width: 2rem; height: 2rem; }
.avatar--lg { width: 4.5rem; height: 4.5rem; }
.avatar--xl { width: 7rem; height: 7rem; border-width: 3px; border-color: var(--accent); box-shadow: var(--glow); }
.avatar--initial { display: grid; place-items: center; }
.avatar--initial::before { content: "\f007"; font-family: "Font Awesome 6 Free"; font-weight: 900; color: var(--muted); font-size: 1rem; }

/* ---------- 9. Карточки файлов (обложка-заглушка, метки, действия) ---------- */
.file-card { position: relative; }
.file-card--pinned { border-color: rgba(255, 85, 0, .45); box-shadow: 0 0 18px rgba(255, 85, 0, .12); }
.file-card__ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: linear-gradient(135deg, #131823, #07080d); color: #263248; font-size: 3.5rem; }
.file-card__ph--lg { font-size: 6rem; }
.file-card:hover .file-card__ph { color: rgba(255, 85, 0, .5); }

.card-cat { z-index: 2; color: var(--tone, #ff5500); }
.card-cat a { color: inherit; }
.card-cat .chips { font-size: 0; }
.card-cat .chips a { font-size: .75rem; }
.card-cat__ico { font-size: .8rem; }
.card-cat__img { width: 1rem; height: 1rem; object-fit: contain; border-radius: .2rem; flex: none; }
.card-actions { position: absolute; right: .75rem; bottom: .75rem; z-index: 3; display: flex; gap: .4rem; opacity: 1; transition: opacity .2s; }
@media (hover: hover) and (min-width: 1024px) { .card-actions { opacity: 0; } .file-card:hover .card-actions, .card-actions:focus-within { opacity: 1; } }
.icon-action { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid var(--line-strong); border-radius: .5rem; background: rgba(12, 15, 23, .85); backdrop-filter: blur(6px); color: #cbd5e1; font-size: .8rem; cursor: pointer; transition: .2s; }
.icon-action:hover { border-color: var(--accent); color: var(--accent); }
.icon-action.is-active { color: var(--accent); border-color: rgba(255, 85, 0, .5); }

.tone-orange { --tone: #ff5500; } .tone-amber { --tone: #f59e0b; } .tone-cyan { --tone: #22d3ee; }
.tone-emerald { --tone: #34d399; } .tone-purple { --tone: #c084fc; } .tone-indigo { --tone: #818cf8; }
.tone-blue { --tone: #60a5fa; } .tone-rose { --tone: #fb7185; }

/* рейтинг */
.story-rate, .thread__rate { display: inline-flex; align-items: center; gap: .3rem; }
.thread__stars { color: var(--star); }
.thread__stars .rating, .thread__stars ul.unit-rating { margin: 0; }
.vote-pill { display: inline-flex; align-items: center; gap: .3rem; padding: .15rem .55rem; border-radius: .4rem; font-size: .8rem; font-weight: 700; border: 1px solid transparent; }
.vote-pill i { font-size: .7rem; }
.vote-pill--up { background: var(--positive-soft); color: var(--positive); }
.vote-pill--down { background: var(--negative-soft); color: var(--negative); }
.vote-pill a { color: inherit; }
.vote-score { color: #fff; font-size: .85rem; font-weight: 700; }
.thread__rate.is-positive .vote-score { color: var(--positive); }
.thread__rate.is-negative .vote-score { color: var(--negative); }
.rating, ul.unit-rating { display: inline-flex; }
ul.unit-rating li a { color: var(--star); }

/* ---------- 10. Сайдбар ---------- */
.side-link { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .625rem .875rem; border: 1px solid transparent; border-radius: .5rem; color: #cbd5e1; font-size: .9rem; font-weight: 500; transition: .2s ease; }
.side-link:hover { background: var(--surface-soft); color: #fff; }
.side-link.is-active { background: rgba(255, 85, 0, .1); border-color: rgba(255, 85, 0, .3); color: var(--accent); font-weight: 600; }
.side-count { flex: none; padding: .125rem .5rem; border-radius: .25rem; background: var(--surface-soft); color: var(--muted); font-size: .75rem; font-weight: 500; }
.side-link.is-active .side-count { background: rgba(255, 85, 0, .2); color: var(--accent); font-weight: 700; }

.cat-menu, .cat-submenu { list-style: none; margin: 0; padding: 0; }
.cat-row { display: flex; align-items: stretch; gap: .25rem; }
.cat-row > .side-link { flex: 1; min-width: 0; }
.cat-ico { color: var(--tone, var(--muted)); }
.side-link.is-active .cat-ico { color: var(--accent); }
.cat-img { width: 1.25rem; height: 1.25rem; object-fit: contain; flex: none; }
.cat-img ~ .cat-ico { display: none; }
.cat-toggle { display: grid; place-items: center; width: 2.25rem; flex: none; border: 1px solid transparent; border-radius: .5rem; background: transparent; color: var(--muted); cursor: pointer; transition: .2s; }
.cat-toggle:hover { background: var(--surface-soft); color: #fff; }
.cat-toggle i { transition: transform .2s; font-size: .75rem; }
.cat-toggle[aria-expanded="true"] i { transform: rotate(180deg); }
.cat-submenu { display: none; margin: .25rem 0 .25rem 1.25rem; padding-left: .75rem; border-left: 1px solid var(--line-strong); }
.cat-submenu.is-open { display: block; }
.cat-submenu .side-link { padding: .45rem .75rem; font-size: .85rem; }

.widget { padding: 1rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface-sunk); }
.widget__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; flex-wrap: wrap; margin-bottom: .75rem; }
.widget__head h2 { margin: 0; color: #94a3b8; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.widget__link { display: inline-flex; align-items: center; gap: .35rem; color: var(--accent); font-size: .8rem; font-weight: 600; }
.widget__link i { font-size: .65rem; }
.widget__link:hover { color: var(--accent-strong); }
.widget--ad { padding: .5rem; text-align: center; overflow: hidden; }
.widget--ad img { margin: 0 auto; border-radius: .5rem; }
.popular-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; counter-reset: pop; }
.popular-item { counter-increment: pop; }
.popular-item__link { display: grid; gap: .2rem; padding: .5rem .5rem .5rem 2rem; position: relative; border-radius: .5rem; transition: .2s; }
.popular-item__link::before { content: counter(pop); position: absolute; left: .4rem; top: .5rem; width: 1.15rem; height: 1.15rem; display: grid; place-items: center; border-radius: .3rem; background: var(--surface-2); color: var(--accent); font-size: .7rem; font-weight: 700; }
.popular-item__link:hover { background: var(--surface-soft); }
.popular-item__title { color: #e2e8f0; font-size: .92rem; font-weight: 600; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.popular-item__link:hover .popular-item__title { color: var(--accent); }
.popular-item__meta { display: flex; gap: .75rem; color: var(--muted); font-size: .75rem; }
.popular-item__meta i { margin-right: .25rem; font-size: .7rem; }

.tabs { display: inline-flex; gap: .25rem; padding: .2rem; border-radius: .5rem; background: var(--surface-soft); }
.tabs__btn { padding: .25rem .6rem; border: 0; border-radius: .35rem; background: transparent; color: var(--muted); font: inherit; font-size: .75rem; font-weight: 700; cursor: pointer; }
.tabs__btn.is-active { background: var(--accent); color: #fff; }
.tab-panel[hidden] { display: none; }
.archive-list { display: grid; gap: .25rem; }
.archive-list a, a.archives { display: block; padding: .3rem .5rem; border-radius: .4rem; color: #cbd5e1; font-size: .9rem; }
.archive-list a:hover, a.archives:hover { background: var(--surface-soft); color: var(--accent); }
.skin-select select { width: 100%; }

/* календарь DLE — классы строго по официальной документации тега {calendar}:
   .calendar (таблица), .monthlink (ссылка смены месяца), .day-active-v
   (будний день с новостями), .day-active (выходной день с новостями),
   .day (будний без новостей), .weekday (выходной без новостей),
   .day-current (текущий/просматриваемый день) */
.calendar { width: 100%; border-collapse: collapse; font-size: .85rem; text-align: center; }
.calendar th, .calendar td { padding: .3rem 0; border: 0; color: var(--muted); }
.calendar caption { color: #fff; font-family: 'Teko', sans-serif; font-size: 1.3rem; letter-spacing: .05em; text-transform: uppercase; padding-bottom: .4rem; }
.monthlink { color: var(--accent); font-weight: 700; }
.monthlink:hover { color: var(--accent-strong); }
.day, .weekday { color: var(--muted); }
.weekday { color: #64748b; }
.day-active, .day-active-v { display: inline-block; min-width: 1.6rem; padding: .1rem .2rem; border-radius: .35rem; color: var(--accent); font-weight: 700; }
.day-active { color: var(--accent-2); }
.calendar a.day-active, .calendar a.day-active-v { text-decoration: none; }
.calendar a.day-active:hover, .calendar a.day-active-v:hover { background: var(--accent-soft); }
.day-current { display: inline-block; min-width: 1.6rem; padding: .1rem .2rem; border-radius: .35rem; color: #fff; background: var(--accent); font-weight: 700; }

/* ---------- 11. Полная новость ---------- */
.fullstory { border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); overflow: hidden; }
.fullstory--pinned { border-color: rgba(255, 85, 0, .45); }
.fullstory__media { position: relative; height: 22rem; overflow: hidden; background: var(--surface-sunk); }
@media (max-width: 640px) { .fullstory__media { height: 14rem; } }
.fullstory__media .cover-image { width: 100%; height: 100%; object-fit: cover; }
.fullstory__fade { position: absolute; inset: 0; background: linear-gradient(to top, var(--surface) 2%, rgba(12, 15, 23, .55) 40%, rgba(12, 15, 23, 0) 75%); pointer-events: none; }
.fullstory__badges { position: absolute; left: 1.25rem; top: 1.25rem; z-index: 3; display: flex; flex-wrap: wrap; gap: .5rem; }
.fullstory__body { position: relative; padding: 0 1.75rem 1.75rem; margin-top: -2.75rem; }
@media (max-width: 640px) { .fullstory__body { padding: 0 1.1rem 1.25rem; } }
.fullstory__title { margin: 0 0 1.25rem; font-family: 'Teko', sans-serif; font-size: 3rem; line-height: 1.02; font-weight: 700; letter-spacing: .03em; color: #fff; text-shadow: 0 2px 12px rgba(0, 0, 0, .6); overflow-wrap: anywhere; }
@media (max-width: 640px) { .fullstory__title { font-size: 2.1rem; } }
.fullstory__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: .75rem; margin-bottom: 1.25rem; }
.fact { display: grid; gap: .25rem; padding: .75rem .9rem; border: 1px solid var(--line-strong); border-radius: .75rem; background: var(--surface-soft); min-width: 0; }
.fact__label { display: flex; align-items: center; gap: .4rem; color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.fact__label i { color: var(--accent); }
.fact__value { color: #fff; font-size: 1.05rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; }
.fact__value a { color: #fff; } .fact__value a:hover { color: var(--accent); }
.fullstory__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
.fullstory__meta { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
.fullstory__pages { margin-top: 1.25rem; }
.fullstory__tags { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.fullstory__tags-label { display: inline-flex; align-items: center; gap: .4rem; color: var(--muted); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.fullstory__tags-label i { color: var(--accent); }
.edit-note { margin-top: 1rem; color: var(--muted); font-size: .85rem; }
.poll-block { margin-top: 1.5rem; }

/* ---------- 12. Типографика контента ---------- */
.text { color: var(--news-text); font-size: 1.1rem; line-height: 1.65; overflow-wrap: anywhere; }
.text p, .text h1, .text h2, .text h3, .text h4, .text h5, .text h6, .text ul, .text ol, .text hr, .text pre, .text table { margin: 0 0 1rem; }
.text > :last-child { margin-bottom: 0; }
.text h1, .text h2, .text h3, .text h4, .text h5, .text h6 { font-family: 'Teko', sans-serif; color: #fff; line-height: 1.1; letter-spacing: .03em; text-transform: uppercase; margin-top: 1.5rem; }
.text h1 { font-size: 2.4rem; } .text h2 { font-size: 2rem; } .text h3 { font-size: 1.7rem; }
.text h4 { font-size: 1.45rem; } .text h5 { font-size: 1.25rem; } .text h6 { font-size: 1.1rem; }
.text > h1:first-child, .text > h2:first-child, .text > h3:first-child { margin-top: 0; }
.text a { color: var(--accent); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.text a:hover { color: var(--accent-strong); }
.text ul { list-style: disc; padding-left: 1.5rem; }
.text ol { list-style: decimal; padding-left: 1.5rem; }
.text li::marker { color: var(--accent); }
.text li + li { margin-top: .25rem; }
.text img { display: inline-block; height: auto; max-width: 100%; border-radius: .75rem; }
.text figure { margin: 1.25rem 0; }
.text figcaption, .text .image-caption { margin-top: .5rem; color: var(--muted); font-size: .9rem; }
.text hr { height: 1px; margin: 1.5rem 0; border: 0; background: var(--line-strong); }
.text table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.text th, .text td { padding: .5rem .75rem; border: 1px solid var(--line-strong); text-align: left; }
.text th { background: var(--surface-soft); color: #fff; font-weight: 700; }
.text strong, .text b { color: #fff; }
.image-bordered { border: 1px solid var(--line-strong); }
.image-padded { padding: .5rem; }
.image-shadows { box-shadow: var(--shadow-soft); }
.emoji, .native-emoji, span.emoji { display: inline-block; vertical-align: -.15em; width: 1.25rem; height: 1.25rem; }
.text img.emoji { display: inline-block; border-radius: 0; }

.quote_block { margin: 0 0 1rem; overflow: hidden; border-left: 3px solid var(--accent); border-radius: 0 .75rem .75rem 0; background: var(--surface-soft); }
.title_quote, .quote, blockquote { padding: .65rem .9rem; background: var(--surface-soft); color: var(--text); }
.title_quote { display: block; border-bottom: 1px solid var(--line-strong); color: var(--muted); font-size: .9rem; font-weight: 700; }
.quote, blockquote { border-left: 3px solid var(--accent); border-radius: 0 .75rem .75rem 0; }
.quote_block > .quote { border-left: 0; border-radius: 0; }
blockquote { margin: 1rem 0; }
.quote_body { display: block; }
.quote_link { float: right; color: var(--accent); }
.scriptcode, pre, code, kbd, samp { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .9rem; }
.scriptcode, pre { display: block; margin: 0 0 1rem; padding: 1rem; overflow-x: auto; border: 1px solid var(--code-border); border-radius: .75rem; background: var(--code-bg); color: var(--code-ink); line-height: 1.55; }
:not(pre) > code { padding: .1rem .35rem; border-radius: .3rem; background: var(--surface-2); color: #fdba74; }
code[class*="language-"], pre[class*="language-"] { color: var(--code-ink); text-shadow: none; }
.token.comment, .token.prolog, .token.doctype, .token.cdata { color: var(--code-comment); }
.token.punctuation { color: var(--code-punct); }
.token.property, .token.tag, .token.boolean, .token.number, .token.constant, .token.symbol, .token.deleted { color: var(--code-value); }
.token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.inserted { color: var(--code-string); }
.token.operator, .token.entity, .token.url { color: var(--code-operator); }
.token.atrule, .token.attr-value, .token.keyword { color: var(--code-keyword); }
.token.function, .token.class-name { color: var(--code-function); }
.token.regex, .token.important, .token.variable { color: var(--code-regex); }
.clipboard-copy-link { display: inline-flex; align-items: center; gap: .25rem; color: var(--muted); font-size: .85rem; cursor: pointer; }
.clipboard-copy-link:hover { color: var(--accent); }
.title_spoiler, .dle-spoiler > summary { display: flex; align-items: center; gap: .5rem; padding: .5rem .8rem; border: 1px solid var(--line-strong); border-radius: .5rem; background: var(--surface-soft); color: var(--accent); font-size: 1rem; font-weight: 600; cursor: pointer; }
.title_spoiler a { text-decoration: none; }
.text_spoiler { display: block; margin-top: .5rem; padding: 1rem; border: 1px solid var(--line-strong); border-radius: .75rem; }
.dleshowhidden { padding: 1rem; border: 1px dashed var(--accent); border-radius: .75rem; background: var(--accent-soft); }
.dlehidden { color: var(--muted); }
.dle-media-block { border-radius: .75rem; overflow: hidden; }
.dle-media-block iframe, .dle-media-block video { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.dlemedia-oembed-error { padding: .75rem; border-radius: .75rem; background: var(--negative-soft); color: var(--negative); }
.dleaudioplayer, .dlevideoplayer { margin: 1rem 0; }
.signature { margin-top: 1rem; padding-top: .75rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .9rem; }

/* вложения */
.attachment { display: inline-flex; align-items: center; gap: .9rem; margin: .5rem .5rem .5rem 0; padding: .75rem 1.1rem; border: 1px solid rgba(255, 85, 0, .35); border-radius: .75rem; background: var(--accent-soft); transition: .2s; }
.attachment:hover { border-color: var(--accent); box-shadow: var(--glow); }
.attachment__icon { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; flex: none; border-radius: .6rem; background: var(--accent-grad); color: #fff; font-size: 1.05rem; }
.attachment__body { display: grid; gap: .1rem; }
.attachment__name { color: #fff; font-size: 1.05rem; font-weight: 700; text-decoration: none !important; }
.attachment__name:hover { color: var(--accent); }
.attachment__meta { color: var(--muted); font-size: .85rem; }
.attachment__online { color: var(--accent); font-size: .85rem; }
.attachment--denied { border-color: rgba(255, 42, 42, .35); background: var(--negative-soft); color: var(--negative); }
.attachment--denied .attachment__icon { background: var(--negative); }

/* ---------- 13. Навигация между новостями, похожие ---------- */
.story-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.5rem; }
@media (max-width: 640px) { .story-nav { grid-template-columns: minmax(0, 1fr); } }
.story-nav__item { display: grid; gap: .35rem; padding: 1rem 1.2rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); transition: .2s; }
.story-nav__item:hover { border-color: rgba(255, 85, 0, .6); }
.story-nav__item--next { text-align: right; grid-column: 2; }
@media (max-width: 640px) { .story-nav__item--next { grid-column: 1; } }
.story-nav__label { display: flex; align-items: center; gap: .4rem; color: var(--accent); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.story-nav__item--next .story-nav__label { justify-content: flex-end; }
.story-nav__title { color: #fff; font-size: 1.05rem; font-weight: 600; line-height: 1.25; }
.related { margin-top: 2rem; }
.related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
@media (max-width: 900px) { .related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) { .related-grid { grid-template-columns: minmax(0, 1fr); } }
.discussion { margin-top: 2rem; }

/* ---------- 14. Комментарии и сообщения ---------- */
.thread { display: grid; gap: 1rem; }
.thread__item { padding: 1.1rem 1.25rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); }
.thread__item--reply { margin-left: 1.5rem; border-left: 3px solid rgba(255, 85, 0, .5); }
.thread__item--own { border-color: rgba(255, 85, 0, .35); background: linear-gradient(135deg, rgba(255, 85, 0, .06), var(--surface)); }
.thread__top { display: flex; align-items: center; gap: .9rem; margin-bottom: .75rem; }
.thread__avatar { position: relative; flex: none; }
.thread__avatar .avatar { width: 3.25rem; height: 3.25rem; }
.thread__online { position: absolute; right: 0; bottom: 0; width: .8rem; height: .8rem; border: 2px solid var(--surface); border-radius: 50%; background: #10b981; }
.thread__ident { min-width: 0; flex: 1; }
.thread__who { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.thread__author, .thread__author a { color: #fff; font-size: 1.05rem; font-weight: 700; }
.thread__author a:hover { color: var(--accent); }
.thread__badge { padding: .1rem .5rem; border-radius: .35rem; background: var(--accent-soft); color: var(--accent); font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.thread__when { display: flex; flex-wrap: wrap; gap: .25rem .75rem; color: var(--muted); font-size: .82rem; }
.thread__group { color: var(--accent); }
.thread__mass { margin-left: auto; }
.thread__text { color: var(--news-text); font-size: 1.05rem; line-height: 1.55; }
.thread__images { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.thread__images img { max-height: 10rem; border-radius: .5rem; }
.thread__signature { margin-top: .75rem; padding-top: .5rem; border-top: 1px dashed var(--line-strong); color: var(--muted); font-size: .85rem; }
.thread__actions { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-top: .9rem; padding-top: .75rem; border-top: 1px solid var(--line); }
.thread__btn { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .7rem; border-radius: .4rem; background: var(--surface-soft); color: var(--muted); font-size: .82rem; font-weight: 600; cursor: pointer; transition: .2s; }
.thread__btn:hover { background: var(--surface-2); color: var(--accent); }
.thread__btn--danger:hover { color: var(--negative); background: var(--negative-soft); }
.thread__replies { display: inline-flex; align-items: center; gap: .35rem; color: var(--muted); font-size: .82rem; }
.thread__actions .thread__rate { margin-left: auto; }

/* ---------- 15. Пагинация ---------- */
.pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .5rem; padding-top: 1rem; }
.pagination__pages { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.pagination__pages a, .pagination__pages > span, .pagination__arrow, .pagination__label {
	display: inline-flex; align-items: center; gap: .35rem; padding: .5rem 1rem; border: 1px solid var(--line); border-radius: .5rem;
	background: var(--surface); color: #cbd5e1; font-size: .875rem; font-weight: 500; transition: .2s;
}
.pagination__pages a:hover, .pagination__edge > a:hover .pagination__arrow { background: var(--surface-soft); color: #fff; }
.pagination__pages > span { background: var(--accent); border-color: var(--accent); color: #fff; font-weight: 700; }
.pagination__pages > span.nav_ext { background: transparent; border-color: transparent; color: var(--muted); }
.pagination__edge > span > .pagination__arrow { opacity: .4; cursor: default; }
.pagination__edge a { text-decoration: none; }
.pagination__arrow i { font-size: .7rem; }
.pagination__label { border: 0; background: transparent; color: var(--muted); }
@media (max-width: 540px) { .pagination__word { display: none; } }
.pagination--split { justify-content: flex-start; padding-top: 0; }

/* ---------- 16. Хлебные крошки ---------- */
.speedbar { font-size: .875rem; color: var(--muted); }
.speedbar__inner { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.speedbar a { color: var(--muted); transition: color .2s; }
.speedbar a:hover { color: var(--accent); }
.speedbar span { color: #e2e8f0; }
.speedbar__inner > span, .speedbar__inner span[itemprop] { display: inline-flex; align-items: center; gap: .5rem; }

/* ---------- 17. Меню пользователя (шапка) ---------- */
.user-menu { position: relative; }
.user-menu__toggle { padding: .5rem 1.25rem; font-size: .875rem; user-select: none; }
.user-menu__name { max-width: 9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 639px) { .user-menu__name { display: none; } .user-menu__toggle { padding: .55rem .8rem; } }
.user-menu__badge { min-width: 1.25rem; padding: 0 .35rem; border-radius: 999px; background: #fff; color: var(--accent-2); font-size: .7rem; font-weight: 800; line-height: 1.25rem; text-align: center; }
.user-menu__badge.is-empty { display: none; }
.user-menu__panel { position: absolute; right: 0; top: calc(100% + .75rem); z-index: 60; width: 19rem; max-width: calc(100vw - 2rem); padding: 1rem; border: 1px solid var(--line-strong); border-radius: 1rem; background: var(--surface); box-shadow: var(--shadow-menu); }
.user-menu__panel--login { width: 21rem; }
.user-menu__panel form { display: grid; gap: .9rem; }
.user-menu__head { display: flex; align-items: center; gap: .9rem; padding-bottom: .9rem; border-bottom: 1px solid var(--line); }
.user-menu__head .avatar { width: 3rem; height: 3rem; border-color: var(--accent); }
.user-menu__profile { display: block; color: #fff; font-size: 1.1rem; font-weight: 700; }
.user-menu__profile:hover { color: var(--accent); }
.user-menu__group { color: var(--accent); font-size: .8rem; font-weight: 600; }
.user-menu__list { display: grid; gap: .15rem; padding: .6rem 0; }
.user-menu__list a { display: flex; align-items: center; gap: .7rem; padding: .5rem .6rem; border-radius: .5rem; color: #cbd5e1; font-size: .92rem; font-weight: 500; transition: .2s; }
.user-menu__list a i { width: 1.1rem; text-align: center; color: var(--accent); }
.user-menu__list a:hover { background: var(--surface-soft); color: #fff; }
.user-menu__count { margin-left: auto; color: var(--muted); font-size: .8rem; }
.user-menu__count b { color: var(--accent); }
.user-menu__foot { padding-top: .75rem; border-top: 1px solid var(--line); }
.user-menu__foot .soft-button { width: 100%; }
.user-menu__links { display: flex; justify-content: space-between; gap: 1rem; font-size: .85rem; }
.user-menu__links a { color: var(--muted); }
.user-menu__links a:hover { color: var(--accent); }
.soc-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.soc-links__item { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border: 1px solid var(--line-strong); border-radius: .5rem; background: var(--surface-soft); color: #cbd5e1; transition: .2s; }
.soc-links__item:hover { border-color: var(--accent); color: var(--accent); }

/* ---------- 18. Логотип, страницы входа/регистрации ---------- */
.brand { display: inline-flex; align-items: center; gap: .75rem; }
.brand__mark { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; background: var(--accent-grad); color: #fff; font-size: 1.4rem; box-shadow: var(--glow); }
.brand__name { font-family: 'Teko', sans-serif; font-size: 2rem; font-weight: 700; letter-spacing: .06em; color: #fff; line-height: 1; }
.brand__name span { color: var(--accent); }
.gate { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.25rem; padding: 2rem 1rem; background: radial-gradient(60rem 30rem at 50% -10%, rgba(255, 85, 0, .14), transparent 60%), var(--bg); }
.gate__back { align-self: flex-start; display: inline-flex; align-items: center; gap: .5rem; color: var(--muted); font-size: .9rem; font-weight: 600; max-width: 34rem; width: 100%; margin: 0 auto; }
.gate__back:hover { color: var(--accent); }
.gate__card { width: 100%; max-width: 34rem; padding: 2rem; border: 1px solid var(--line-strong); border-radius: 1rem; background: var(--surface); box-shadow: var(--glow); }
.gate__card .brand { margin-bottom: 1.5rem; }
.gate__foot { color: #475569; font-size: .8rem; }
.auth-form { display: grid; gap: 1.1rem; }
.auth-form__title { margin: 0; font-family: 'Teko', sans-serif; font-size: 2.4rem; line-height: 1; letter-spacing: .05em; text-transform: uppercase; color: #fff; }
.auth-form__lead { margin: 0; color: var(--muted); font-size: 1rem; }
.auth-form__lead a { color: var(--accent); text-decoration: underline; }

/* ---------- 19. Подвал ---------- */
.site-footer { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.site-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 2rem; }
@media (max-width: 1000px) { .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .site-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px)  { .site-footer__grid { grid-template-columns: minmax(0, 1fr); } }
.site-footer__brand p { max-width: 30rem; margin: 1rem 0; color: var(--muted); font-size: .95rem; }
.site-footer__links { display: flex; flex-wrap: wrap; gap: .5rem; }
.site-footer__col h2 { margin: 0 0 .75rem; color: #fff; font-family: 'Teko', sans-serif; font-size: 1.25rem; letter-spacing: .08em; text-transform: uppercase; }
.site-footer__col a { display: block; padding: .25rem 0; color: var(--muted); font-size: .92rem; }
.site-footer__col a:hover { color: var(--accent); }
.site-footer__bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: 2rem; padding: 1rem 0 .25rem; border-top: 1px solid var(--line); color: #64748b; font-size: .85rem; }
.site-footer__bottom a { color: var(--muted); }
.site-footer__bottom a:hover { color: var(--accent); }

/* ---------- 20. Блоки под лентой (комментарии, партнёры) ---------- */
.community { margin-top: 3rem; }
.community-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr)); gap: 1.5rem; }
@media (max-width: 480px) { .community-grid { grid-template-columns: minmax(0, 1fr); } }
.wide-section { min-width: 0; padding: 1.5rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); }
.wide-section__head { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.1rem; }
.wide-section__head h2 { margin: 0; font-family: 'Teko', sans-serif; font-size: 1.8rem; line-height: 1.05; letter-spacing: .04em; text-transform: uppercase; color: #fff; }
.wide-section__head p { margin: .2rem 0 0; color: var(--muted); font-size: .92rem; }
.comment-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 720px) { .comment-grid { grid-template-columns: minmax(0, 1fr); } }
.comment-card { display: grid; gap: .6rem; align-content: start; padding: 1rem; border: 1px solid var(--line-strong); border-radius: .75rem; background: var(--surface-soft); transition: .2s; }
.comment-card:hover { border-color: rgba(255, 85, 0, .5); }
.comment-card__top { display: flex; align-items: center; gap: .7rem; }
.comment-card__who { display: grid; min-width: 0; }
.comment-card__author, .comment-card__author a { color: #fff; font-weight: 700; }
.comment-card__when { color: var(--muted); font-size: .78rem; }
.comment-card__text { margin: 0; color: var(--news-text); font-size: .95rem; line-height: 1.45; }
.comment-card__link { display: flex; align-items: center; gap: .4rem; color: var(--accent); font-size: .85rem; font-weight: 600; }
.comment-card__link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.partners { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.partner__link { display: grid; gap: .3rem; padding: .85rem 1rem; border: 1px solid var(--line-strong); border-radius: .75rem; background: var(--surface-soft); transition: .2s; }
.partner__link:hover { border-color: rgba(255, 85, 0, .5); }
.partner__title { color: #fff; font-size: 1rem; }
.partner__link:hover .partner__title { color: var(--accent); }
.partner__text { color: var(--muted); font-size: .88rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.partner__meta { display: flex; align-items: center; gap: .35rem; color: #64748b; font-size: .78rem; }
.partners__promo { margin-top: 1rem; }

/* ---------- 21. Профиль ---------- */
.profile { padding-top: 0; overflow: hidden; }
.profile__head { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; margin: 0 -1.75rem 1.5rem; padding: 1.75rem; background: radial-gradient(30rem 12rem at 0 0, rgba(255, 85, 0, .18), transparent 70%), linear-gradient(135deg, #131823, #0c0f17); border-bottom: 1px solid var(--line-strong); }
@media (max-width: 640px) { .profile__head { margin: 0 -1.1rem 1.25rem; padding: 1.25rem; } }
.profile__avatar { position: relative; flex: none; }
.profile__avatar .thread__online { width: 1.1rem; height: 1.1rem; right: .35rem; bottom: .35rem; border-color: var(--surface-soft); }
.profile__ident { min-width: 0; flex: 1; display: grid; gap: .5rem; }
.profile__name { margin: 0; font-family: 'Teko', sans-serif; font-size: 2.8rem; line-height: 1; font-weight: 700; letter-spacing: .04em; color: #fff; overflow-wrap: anywhere; }
.profile__status { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; margin: 0; color: var(--muted); }
.is-online { color: var(--positive); font-weight: 700; }
.profile__group { padding: .1rem .65rem; border-radius: .4rem; background: var(--accent-soft); color: var(--accent); font-size: .85rem; font-weight: 700; }
.profile__actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.profile__actions a, .profile__action-content { display: inline-flex; align-items: center; gap: .5rem; padding: .45rem .9rem; border: 1px solid var(--line-strong); border-radius: .5rem; background: var(--surface-soft); color: #e2e8f0; font-size: .9rem; font-weight: 600; cursor: pointer; transition: .2s; }
.profile__actions a:hover, .profile__action-content:hover { border-color: var(--accent); color: var(--accent); }
.profile__action-content i { color: var(--accent); }
.profile__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .75rem; margin-bottom: 1.25rem; }
.stat-tile { display: grid; gap: .2rem; padding: 1rem 1.1rem; border: 1px solid var(--line-strong); border-radius: .75rem; background: var(--surface-soft); position: relative; overflow: hidden; }
.stat-tile::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background: var(--accent-grad); opacity: .7; }
.stat-tile__label { display: flex; align-items: center; gap: .45rem; color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.stat-tile__label i { color: var(--accent); }
.stat-tile__value { font-family: 'Teko', sans-serif; font-size: 2.4rem; line-height: 1; color: #fff; }
.profile__link a { color: var(--accent); font-size: .85rem; font-weight: 600; }
.profile__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: .75rem; margin: 0 0 1.25rem; }
.profile__facts > div { padding: .7rem .9rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--surface-sunk); }
.profile__facts dt { color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.profile__facts dd { margin: .15rem 0 0; color: #e2e8f0; font-size: 1rem; font-weight: 600; overflow-wrap: anywhere; }
.profile__about { margin-bottom: 1.25rem; padding: 1.1rem 1.25rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface-sunk); }
.profile__about h2 { margin: 0 0 .6rem; font-family: 'Teko', sans-serif; font-size: 1.5rem; letter-spacing: .05em; text-transform: uppercase; color: #fff; }

.profile-popup { display: grid; gap: 1rem; color: var(--news-text); }
.profile-popup__summary { display: flex; gap: 1rem; align-items: flex-start; }
.profile-popup__avatar { position: relative; flex: none; }
.profile-popup__name { display: block; margin-bottom: .4rem; color: #fff; font-family: 'Teko', sans-serif; font-size: 1.6rem; line-height: 1; letter-spacing: .04em; }
.profile-popup__details { display: grid; gap: .3rem; margin: 0; }
.profile-popup__details > div { display: flex; justify-content: space-between; gap: 1rem; font-size: .9rem; }
.profile-popup__details dt { color: var(--muted); }
.profile-popup__details dd { margin: 0; color: #fff; font-weight: 600; }
.profile-popup__links { display: flex; flex-wrap: wrap; gap: .5rem; padding-top: .75rem; border-top: 1px solid var(--line); }
.profile-popup__link a { display: inline-flex; padding: .3rem .7rem; border-radius: .4rem; background: var(--surface-soft); color: var(--accent); font-size: .85rem; font-weight: 600; }
.profile-popup__link a:hover { background: var(--accent); color: #fff; }

/* ---------- 22. Статистика ---------- */
.stats-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.stats-card { display: grid; gap: .3rem; padding: 1.1rem 1.25rem; border: 1px solid var(--line-strong); border-radius: .75rem; background: var(--surface-soft); position: relative; overflow: hidden; }
.stats-card::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background: var(--accent-grad); opacity: .7; }
.stats-card__label { color: var(--muted); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.stats-card__value { font-family: 'Teko', sans-serif; font-size: 3rem; line-height: 1; color: #fff; }
.stats-card__hint { color: var(--muted); font-size: .88rem; }
.stats-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.stats-group { padding: 1.1rem 1.25rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface-sunk); }
.stats-group h2 { display: flex; align-items: center; gap: .6rem; margin: 0 0 .75rem; font-family: 'Teko', sans-serif; font-size: 1.5rem; letter-spacing: .05em; text-transform: uppercase; color: #fff; }
.stats-group h2 i { color: var(--accent); font-size: 1.05rem; }
.stats-group ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .3rem; }
.stats-group li { display: flex; justify-content: space-between; gap: 1rem; padding: .3rem 0; border-bottom: 1px dashed var(--line); color: var(--muted); }
.stats-group li:last-child { border-bottom: 0; }
.stats-group li b { color: #fff; }
.stats-group li a { color: var(--accent); }
.stats-db { color: var(--muted); }
.stats-db b { color: #fff; }
.stats-top-title { margin: 1.5rem 0 .75rem; font-family: 'Teko', sans-serif; font-size: 1.7rem; letter-spacing: .05em; text-transform: uppercase; color: #fff; }
.table-scroll { overflow-x: auto; border: 1px solid var(--line-strong); border-radius: .75rem; }
.userstop { width: 100%; border-collapse: collapse; font-size: .95rem; }
.userstop th, .userstop td { padding: .6rem .9rem; border: 0; border-bottom: 1px solid var(--line); text-align: left; }
.userstop tr:first-child th, .userstop tr:first-child td { background: var(--surface-soft); color: var(--muted); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.userstop a { color: var(--accent); font-weight: 600; }

/* ---------- 23. Личные сообщения ---------- */
.pm-menu { display: flex; flex-wrap: wrap; gap: .5rem; }
.pm-menu a { display: inline-flex; }
.pm-status { display: grid; gap: .4rem; margin-bottom: 1.25rem; }
.pm-status__bar > div, .pm_progress_bar { height: .6rem; border-radius: 99px; background: var(--surface-2); overflow: hidden; }
.pm-status__bar > div > div, .pm_progress_bar > div, .pm_progress_bar span, .pm-status__bar span { display: block; height: 100%; border-radius: 99px; background: var(--accent-grad); font-size: 0; }
.pm-status__text { color: var(--muted); font-size: .88rem; }
.pmlist table, .pmlist .pm { width: 100%; border-collapse: collapse; font-size: .95rem; }
.pmlist th, .pmlist td { padding: .65rem .8rem; border: 0; border-bottom: 1px solid var(--line); text-align: left; }
.pmlist th { color: var(--muted); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.pmlist a { color: #fff; font-weight: 600; } .pmlist a:hover { color: var(--accent); }
.pm-dialog .section-heading { margin-bottom: 1rem; }

/* ---------- 24. Опросы ---------- */
.poll-card { padding: 1.5rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); }
.poll-card__head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .75rem; }
.poll-card__title { margin: 0; font-family: 'Teko', sans-serif; font-size: 1.7rem; letter-spacing: .05em; text-transform: uppercase; color: #fff; }
.poll-question { margin: 0 0 .75rem; color: #fff; font-size: 1.02rem; font-weight: 600; line-height: 1.35; }
.widget--poll .poll-question { font-size: .95rem; }
.poll-list { display: grid; gap: .5rem; }
.poll-list .vote, .poll-list > div, .poll-list label { display: flex; align-items: center; gap: .5rem; color: var(--news-text); font-size: .95rem; }
.poll-list .vote { flex-wrap: wrap; }
.poll-list .vote > div, .pollprogress { flex-basis: 100%; }
.pollprogress { height: 1.3rem; border-radius: .4rem; background: var(--surface-2); overflow: hidden; }
.pollprogressbar { height: 100%; min-width: 2.2rem; padding: 0 .5rem; border-radius: .4rem; background: var(--accent-grad); color: #fff; font-size: .75rem; font-weight: 700; line-height: 1.3rem; white-space: nowrap; }
.poll-total { margin: .75rem 0 0; color: var(--muted); font-size: .88rem; }
.poll-total b { color: #fff; }
.poll-total--closed { color: var(--warn); }
.poll-actions { display: flex; align-items: center; gap: .5rem; margin-top: .9rem; }
.poll-actions__results { flex: none; }

/* ---------- 25. Поиск ---------- */
.search-simple { display: grid; gap: 1rem; }
.search-advanced { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 800px) { .search-advanced { grid-template-columns: minmax(0, 1fr); } }
.search-fieldset { min-width: 0; margin: 0; padding: 1rem 1.1rem 1.1rem; border: 1px solid var(--line-strong); border-radius: .75rem; background: var(--surface-sunk); }
.search-fieldset legend { padding: 0 .5rem; color: var(--accent); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.search-fieldset--wide, .search-actions { grid-column: 1 / -1; }
.search-fieldset .form-row { display: grid; gap: .5rem; }
.search-fieldset .form-row--inline { display: flex; }
.search-fieldset label { color: var(--news-text); }
.search-result-msg { margin-top: 1rem; padding: .75rem 1rem; border-radius: .5rem; background: var(--accent-soft); color: var(--news-text); }
#searchtable input[type="text"], .searchtable input[type="text"] { width: 100%; }
.result-card { padding: 1.1rem 1.25rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); transition: .2s; }
.result-card:hover { border-color: rgba(255, 85, 0, .5); }
.result-card--pinned { border-color: rgba(255, 85, 0, .4); }
.result-card__top { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; margin-bottom: .5rem; }
.result-card__title { margin: 0 0 .4rem; font-family: 'Teko', sans-serif; font-size: 1.7rem; line-height: 1.1; letter-spacing: .03em; color: #fff; }
.result-card__title a:hover { color: var(--accent); }
.result-card__text { margin: 0; color: var(--muted); font-size: .98rem; }
.result-card__tools { margin-top: .75rem; display: flex; gap: .5rem; }
.searchheading { display: block; color: #fff; font-weight: 700; }
#searchsuggestions { border: 1px solid var(--line-strong); border-radius: .75rem; background: var(--surface); box-shadow: var(--shadow-menu); overflow: hidden; }
#searchsuggestions a { display: block; padding: .6rem .9rem; color: var(--news-text); border-bottom: 1px solid var(--line); }
#searchsuggestions a:hover { background: var(--surface-soft); color: var(--accent); }
#searchsuggestions span { display: block; font-size: .85rem; color: var(--muted); }
#searchsuggestions span.searchheading { color: #fff; font-size: 1rem; }

/* ---------- 26. Прочее ---------- */
.staticpage .static-meta { display: flex; align-items: center; gap: .6rem; margin-top: .4rem; }
.static-tools { display: flex; flex-wrap: wrap; gap: .5rem; }
.chips--tags.chips--cloud a.clouds_xsmall { font-size: .8rem; }
.chips--tags.chips--cloud a.clouds_small { font-size: 1rem; }
.chips--tags.chips--cloud a.clouds_medium { font-size: 1.2rem; }
.chips--tags.chips--cloud a.clouds_large { font-size: 1.45rem; }
.chips--tags.chips--cloud a.clouds_xlarge { font-size: 1.75rem; color: var(--accent); }
.panel--tags { min-height: 12rem; }
.cat-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.cat-list--nested { margin: .35rem 0 .35rem 1.1rem; }
.cat-list__link { display: flex; align-items: center; gap: .6rem; padding: .5rem .75rem; border-radius: .5rem; color: #cbd5e1; }
.cat-list__link:hover { background: var(--surface-soft); color: #fff; }
.cat-list__link.is-active { background: rgba(255, 85, 0, .1); color: var(--accent); }
.cat-list__icon { width: 1.25rem; height: 1.25rem; }
.cat-list__name { flex: 1; }
.cat-list__count { color: var(--muted); font-size: .8rem; }
.cat-list__descr { display: block; padding: 0 .75rem; color: var(--muted); font-size: .8rem; }

/* Адаптив: карточки на мобильных */
@media (max-width: 640px) {
	.section-intro h1 { font-size: 2rem; }
	.section-heading h1, .section-heading h2 { font-size: 1.6rem; }
	.thread__item--reply { margin-left: .75rem; }
}
@media print { .to-top { display: none; } }
