/*
Theme Name: Chimera
Theme URI: https://project-chimera.ru
Author: Project Chimera
Description: Тема публичного сайта Project Chimera.
Version: 3.8.1
Requires at least: 6.5
Requires PHP: 8.1
License: проприетарная, только для этого проекта
Text Domain: chimera
*/

/* ─── Что здесь осталось и почему ──────────────────────────────────────
 * 2026-09-13, редизайн: сетка, журнальная раскладка, типографика,
 * кнопки (.ch-btn--go/.ch-btn--gh) и процедурный фон (.ch-backdrop) —
 * всё это теперь в tokens.css/system.css/backdrop.js, каскад описан в
 * functions.php. Здесь остаётся только то, что они не покрывают: блок
 * состояния кластера и личный кабинет (chimera-core.php рисует их как
 * обычный HTML, не блоками — используют .panel/.kv/.lbl/.dot/.mono),
 * диск Луны, форма обратной связи (Contact Form 7) и мелкая адаптивная
 * подстройка под старую блочную разметку страниц, которые ещё не
 * переведены на новые паттерны.
 * ─────────────────────────────────────────────────────────────────────── */

/* ─── Адм.-блоки на голом HTML (chimera-core.php) ──────────────────────
 * .panel/.kv/.lbl/.dot/.mono — язык system.css (.ch-panel/.ch-table/
 * .ch-label/.ch-data), но для мест, где разметку рисует PHP напрямую
 * (chimera/cluster-status, chimera/admin-only, chimera/moon-phase,
 * chimera/moon-calendar), а не блоками редактора. */
.panel,.has-panel-background-color{
  position:relative; background:var(--ink-3,#0d1c18)!important;
  border:1px solid var(--rule,#17302a); border-radius:var(--radius,2px);
}
.lbl{font:700 13px/1 var(--sans,"Golos Text",sans-serif);letter-spacing:.16em;text-transform:uppercase;color:var(--quiet,#96ada4)}
.mono{font-family:var(--mono,"JetBrains Mono",monospace);font-variant-numeric:tabular-nums}
.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}
.kv{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--rule-soft,#101f1b);font-size:14px}
.tag{font:700 11.5px/1 var(--sans,"Golos Text",sans-serif);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--rule,#17302a);padding:5px 11px;color:var(--quiet,#96ada4);border-radius:var(--radius,2px)}

/* ─── Добавки, которых не было в статике ───────────────────────────── */
.alignleft{float:left;margin:0 24px 18px 0}
.alignright{float:right;margin:0 0 18px 24px}
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.wp-caption{max-width:100%}
.wp-caption-text,figcaption{color:#96ada4;font-size:13px;margin-top:8px}
img{max-width:100%;height:auto}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
/* 2026-09-13, редизайн: max-width:760px отсюда убран. Kubio вешает
   .entry-content на wp:post-content, и этот предел резал секции системы
   (.ch-wrap рассчитан на 1240) почти вдвое — на широком экране контент
   занимал 708px из 1240. Длину строки держит сама система:
   p{max-width:var(--measure)} в system.css. */
.entry-content{position:relative}
/* Kubio отдельно режет КАЖДОГО прямого потомка post-content:
   `.entry-content:not(.wc-tab) > *{max-width:840px}` в его style.css.
   Секции системы полноширинные (.alignfull) и держат свою ширину сами
   через .ch-wrap — снимаем предел ровно для них. Специфичность (0,3,0)
   против (0,2,0) у Kubio, поэтому без !important. */
.entry-content:not(.wc-tab) > .alignfull{max-width:none}
.entry-content>*+*{margin-top:18px}
.entry-content h2{margin-top:44px}
.entry-content h3{margin-top:32px}
/* 2026-09-13, редизайн: Kubio вешает класс .entry-content на КАЖДУЮ
   wp:post-content (проверено — не только у страниц лаунчера, как
   считалось раньше в инкременте 009). Старые #cfe0d8/#96ada4/#35d49d —
   буквальные значения ступеней --paper-2/--quiet/--emerald до
   редизайна — заменены на переменные, иначе проза на всех новых
   страницах красилась мимо системы. */
.entry-content p{color:var(--paper-2);line-height:1.7}
.entry-content ul,.entry-content ol{color:var(--paper-2);line-height:1.7;padding-left:22px}
.entry-content li+li{margin-top:7px}
.entry-content a{color:var(--emerald);text-decoration:underline;text-underline-offset:3px}
.entry-content blockquote{border-left:2px solid var(--gold);padding-left:18px;color:var(--quiet)}
/* .entry-content code больше нет: инкремент dd00fb0 дал системный
   компонент `code,kbd,samp` в system.css. Здешнее правило было
   специфичнее (0,1,1 против 0,0,1) и перебивало бы его на всех
   страницах — ровно то расползание, от которого система и заводилась. */
.entry-content pre{background:var(--ink-3);border:1px solid var(--rule);padding:16px 18px;overflow-x:auto}
.entry-content table{width:100%;border-collapse:collapse}
.entry-content th,.entry-content td{border-bottom:1px solid var(--rule-soft);padding:10px 12px;text-align:left}
.nx.current-menu-item,.nx.current_page_item,.nx.current-menu-ancestor{color:#eaf3ef}
.nx.current-menu-item::after,.nx.current_page_item::after{transform:scaleX(1)}
/* Навигация из wp:navigation — активный пункт золотым подчёркиванием */
.wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content{color:#eaf3ef!important;border-bottom:1px solid #d9a441;padding-bottom:3px}
/* 2026-09-13, редизайн: выпадающее подменю — тот же плоский язык, что у
   .ch-panel (сплошная подложка + тонкая рамка, без блюра/градиента).
   Только в шапке: wp:page-list в подвале использует ту же разметку
   подменю, и без ограничения по .ch-top дочерние страницы лаунчера
   висели в колонке подвала всплывающей панелью поверх списка. */
.ch-top .wp-block-navigation__submenu-container{
  background:var(--ink-3,#0d1c18)!important;
  border:1px solid var(--rule,#17302a)!important;border-radius:var(--radius,2px)!important;
  box-shadow:0 18px 44px rgba(0,0,0,.4);padding:8px!important
}
.ch-top .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
  color:var(--paper-2,#cfe0d8)!important;padding:10px 14px!important;border-radius:0;white-space:nowrap
}
.ch-top .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{
  background:rgba(110,231,191,.12)!important;color:var(--paper,#eaf3ef)!important
}
/* В подвале — обычный вложенный список, без всплытия и подложки. */
.ch-foot .wp-block-navigation__submenu-container{
  position:static!important;opacity:1!important;visibility:visible!important;
  background:none!important;border:0!important;box-shadow:none;min-width:0!important;
  padding:6px 0 0 14px!important;border-left:1px solid var(--rule-soft)!important
}
.ch-foot .wp-block-navigation__submenu-container a{color:var(--quiet)}
.ch-foot .wp-block-navigation__submenu-container a:hover{color:var(--paper-2)}

/* Contact Form 7 — только то, что генерирует сам плагин.
   Поля, подписи и подсказки формы теперь размечены системными классами
   (.ch-form, .ch-form-row, .ch-field, .ch-form-hint) прямо в определении
   формы — см. 10-assets/wp-theme/pages/contact-form.txt. Дублировать их
   вид здесь больше не нужно; раньше дублировали, и форма не получала
   состояний системы: ховера, кольца фокуса, вида при ошибке. */
.wpcf7-form .wpcf7-not-valid-tip{ font:400 13px/1.5 var(--sans); color:#e08078; margin-top:6px }
.wpcf7-form .wpcf7-not-valid-tip::before{ content:"— " }
.wpcf7-response-output{
  border:1px solid var(--rule); color:var(--paper-2);
  margin:18px 0 0; padding:12px 16px; border-radius:var(--radius)
}
.wpcf7-mail-sent-ok{ border-color:var(--emerald)!important; color:var(--paper)!important }
.wpcf7-validation-errors,.wpcf7-mail-sent-ng{ border-color:var(--danger)!important; color:#e08c81!important }
/* CF7 помечает невалидное поле своим классом, система — атрибутом:
   сводим к одному виду, чтобы ошибка выглядела одинаково всюду. */
.wpcf7-form .wpcf7-not-valid{ border-color:var(--danger) }

/* Диск Луны (chimera/moon-phase, chimera/moon-calendar) — не трогаем: и
   тёмная, и освещённая часть диска остаются нейтральными/золотыми
   независимо от общей палитры сайта, Луна не перекрашивается в изумруд. */
.moon-disc{width:var(--disc-size,84px);height:var(--disc-size,84px);flex:none}
.moon-disc .disc-dark{fill:#0b1512}
.moon-disc .disc-lit{fill:#f0c76b}
.moon-disc .disc-edge{fill:none;stroke:#17302a;stroke-width:1.5}

/* ─── Формы сайта: вход, регистрация, профиль ──────────────────────────
   Обычный посетитель не должен попадать в интерфейс WordPress: ни в его
   форму входа, ни в его же профиль. Поэтому формы живут на страницах
   сайта, а оформление повторяет страницу входа Dex — один и тот же тёмный
   прямоугольник, поле без скруглений, золотая подпись заглавными. */
.ch-form{display:flex;flex-direction:column;gap:18px}
.ch-form label{display:block;font:500 11px/1.4 var(--mono,"JetBrains Mono",monospace);
  letter-spacing:.16em;text-transform:uppercase;color:var(--quiet,#96ada4);margin-bottom:7px}
.ch-form input[type=text],.ch-form input[type=email],.ch-form input[type=password]{
  width:100%;box-sizing:border-box;background:var(--ink-4,#081511);color:var(--paper,#eaf3ef);
  border:1px solid var(--rule,#17302a);border-radius:0;font-size:15px;padding:11px 14px;
  font-family:inherit}
.ch-form input:focus{border-color:var(--accent,#c9a227);outline:none;
  box-shadow:0 0 0 3px rgba(201,162,39,.16)}
.ch-form button{height:46px;width:100%;cursor:pointer;
  background:var(--accent,#c9a227);color:var(--accent-ink,#0b1410);
  border:1px solid var(--accent,#c9a227);border-radius:0;
  font:600 13px/1 var(--sans,"Golos Text",sans-serif);letter-spacing:.14em;text-transform:uppercase}
.ch-form button:hover{background:var(--accent-hi,#dab53a);border-color:var(--accent-hi,#dab53a)}
.ch-form .ch-hint{font-size:13px;color:var(--quiet,#96ada4);line-height:1.5}
/* Поле-приманка для ботов: убрано с глаз, но не display:none — часть
   ботов такие поля пропускает именно по этому признаку. */
.ch-form .ch-trap{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.ch-note{padding:12px 15px;font-size:14px;line-height:1.5;border:1px solid var(--rule,#17302a);
  border-left-width:3px;background:var(--ink-4,#081511)}
.ch-note--bad{border-left-color:#c2492f;color:#f0d5cf}
.ch-note--ok{border-left-color:#35d49d;color:#cfe9df}
.ch-switch{display:flex;gap:18px;flex-wrap:wrap;font:500 13px/1 var(--mono,monospace)}
.ch-switch a{color:var(--quiet,#96ada4);text-decoration:none;border-bottom:1px solid transparent}
.ch-switch a:hover{color:var(--paper,#eaf3ef);border-bottom-color:var(--rule,#17302a)}
.ch-switch a[aria-current]{color:#35d49d}

/* ─── Комментарии ──────────────────────────────────────────────────────
   Аватары Gravatar сознательно не выводятся: это запрос на чужой сервер
   с хэшем почты и адресом посетителя на каждой загрузке страницы. Ради
   кружка рядом с именем оно того не стоит. */
.ch-comments .wp-block-comment-author-name{font-weight:600;color:var(--paper,#eaf3ef)}
.ch-comments .wp-block-comment-date a{color:var(--quiet,#96ada4);text-decoration:none}
.ch-comments .wp-block-comment-template li{list-style:none;padding:20px 0;
  border-top:1px solid var(--rule-soft,#101f1b)}
.ch-comments .wp-block-comment-template{margin:0;padding:0}
.ch-comments .wp-block-comment-content{margin:10px 0 0}
.ch-comments .comment-reply-link{font-size:13px;color:#35d49d;text-decoration:none}
.ch-comments .comment-respond{margin-top:34px;background:var(--ink-3,#0d1c18);
  border:1px solid var(--rule,#17302a);padding:26px 24px}
.ch-comments .comment-reply-title{font:700 13px/1 var(--sans,"Golos Text",sans-serif);
  letter-spacing:.16em;text-transform:uppercase;color:var(--quiet,#96ada4);margin:0 0 16px}
.ch-comments .comment-form label{display:block;font:500 11px/1.4 var(--mono,monospace);
  letter-spacing:.16em;text-transform:uppercase;color:var(--quiet,#96ada4);margin-bottom:7px}
.ch-comments .comment-form textarea,.ch-comments .comment-form input[type=text],
.ch-comments .comment-form input[type=email],.ch-comments .comment-form input[type=url]{
  width:100%;box-sizing:border-box;background:var(--ink-4,#081511);color:var(--paper,#eaf3ef);
  border:1px solid var(--rule,#17302a);border-radius:0;font-size:15px;padding:11px 14px;
  font-family:inherit}
.ch-comments .comment-form textarea:focus,.ch-comments .comment-form input:focus{
  border-color:var(--accent,#c9a227);outline:none;box-shadow:0 0 0 3px rgba(201,162,39,.16)}
.ch-comments .comment-form .submit{height:46px;padding:0 30px;cursor:pointer;
  background:var(--accent,#c9a227);color:var(--accent-ink,#0b1410);
  border:1px solid var(--accent,#c9a227);border-radius:0;
  font:600 13px/1 var(--sans,"Golos Text",sans-serif);letter-spacing:.14em;text-transform:uppercase}
.ch-comments .comment-form .submit:hover{background:var(--accent-hi,#dab53a)}
.ch-comments .must-log-in,.ch-comments .logged-in-as{font-size:14px;color:var(--quiet,#96ada4)}
.ch-comments .must-log-in a,.ch-comments .logged-in-as a{color:#35d49d}
