/* Публичный «демо-кабинет» новостей права (гость, без регистрации).
   Переиспользует токены и каркас chat.css + legal_news.css. Здесь — только
   гостевой хром: демо-баннер, сайдбар-CTA, стена регистрации, демо-диалоги,
   read-only обсуждение, faux-инпут. Боевой шелл/legal_news.* НЕ затрагиваем. */

/* Цвет текста НА сплошной --primary заливке. В тёмной теме --primary светлый
   (бирюза) → текст тёмный; в светлой --primary тёмно-зелёный → текст белый.
   Зеркалит 4 тема-контекста chat.css (иначе «тёмное на тёмном» в светлой теме). */
:root { --on-primary: #062E2B; }
@media (prefers-color-scheme: light) { :root { --on-primary: #ffffff; } }
html[data-theme="dark"] { --on-primary: #062E2B; }
html[data-theme="light"] { --on-primary: #ffffff; }

/* Ссылки витрины — без подчёркиваний (рубрики, сортировка, крошки, пагинация,
   карточки, «похожие» и пр. — это навигация/кнопки, не текстовые ссылки).
   Где подчёркивание уместно (источник, ссылки внутри демо-ответа) — задано точечно. */
body.news-public a { text-decoration: none; }

/* ----- сайдбар гостя ----- */
.guest-side__title {
    font-size: 11px; letter-spacing: .04em; text-transform: uppercase;
    color: var(--text-dim); padding: 4px 8px; margin-top: 8px;
}
.guest-side__list { display: flex; flex-direction: column; gap: 2px; overflow-y: auto; flex: 1 1 auto; }
/* Пункт демо-диалога — как элемент истории чатов */
.guest-dlg {
    display: block; text-decoration: none; color: var(--text);
    padding: 9px 10px; border-radius: 9px; font-size: 13.5px; line-height: 1.35;
    border: .5px solid transparent; transition: background .15s, border-color .15s;
}
.guest-dlg:hover { background: rgba(var(--ui-contrast-rgb), .06); }
.guest-dlg.is-active { background: rgba(var(--primary-rgb), .12); border-color: rgba(var(--primary-rgb), .3); }
.guest-dlg__tag { display: block; font-size: 11px; color: var(--primary); margin-bottom: 2px; }
.guest-dlg__ttl { display: block; color: var(--text); }

/* CTA входа/регистрации внизу сайдбара (вместо user-menu) */
.guest-auth { margin-top: auto; padding-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.guest-auth__btn {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    text-decoration: none; font-size: 13.5px; font-weight: 600; padding: 10px 12px;
    border-radius: 10px; cursor: pointer; transition: filter .15s, background .15s;
}
.guest-auth__btn--primary { color: var(--on-primary); background: var(--primary); }
.guest-auth__btn--primary:hover { filter: brightness(1.07); }
.guest-auth__btn--ghost {
    color: var(--text); background: rgba(var(--ui-contrast-rgb), .06);
    border: .5px solid rgba(var(--ui-contrast-rgb), .14);
}
.guest-auth__btn--ghost:hover { background: rgba(var(--ui-contrast-rgb), .1); }
.guest-auth__note { font-size: 11.5px; color: var(--text-dim); text-align: center; line-height: 1.4; }

/* Карточка ленты теперь <a> (SSR-навигация реальными ссылками) — гасим
   браузерное подчёркивание/цвет ссылки, цвета задаёт legal_news.css. */
a.lnews-card, a.lnews-card * { text-decoration: none; }
a.lnews-card { color: inherit; }
a.lnews-top__item, a.lnews-top__item * { text-decoration: none; }
a.lnews-top__item { color: inherit; }

/* ----- read-only обсуждение под статьёй (SSR) ----- */
.pub-disc { margin-top: 26px; border-top: .5px solid rgba(var(--ui-contrast-rgb), .1); padding-top: 18px; }
.pub-disc__title { font-size: 15px; font-weight: 600; color: var(--text); margin-bottom: 6px; }
.pub-disc__gate {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    background: rgba(var(--primary-rgb), .07); border: .5px solid rgba(var(--primary-rgb), .2);
    border-radius: 12px; padding: 11px 14px; margin-bottom: 16px; font-size: 13px; color: var(--text-dim);
}
.pub-disc__gate b { color: var(--text); }
.pub-disc__gate-btn {
    margin-left: auto; font-size: 12.5px; font-weight: 600; text-decoration: none;
    color: var(--on-primary); background: var(--primary); border: 0; border-radius: 8px;
    padding: 6px 13px; cursor: pointer; white-space: nowrap;
}
.pub-c { display: flex; gap: 11px; padding: 12px 0; border-top: .5px solid rgba(var(--ui-contrast-rgb), .07); }
.pub-c:first-child { border-top: 0; }
.pub-c__avatar {
    flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600;
    color: #fff; background: hsl(var(--av-h, 200), 45%, 45%); overflow: hidden;
}
.pub-c__avatar img { width: 100%; height: 100%; object-fit: cover; }
.pub-c__main { flex: 1 1 auto; min-width: 0; }
.pub-c__head { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; font-size: 13px; }
.pub-c__author { color: var(--text); font-weight: 600; }
.pub-c__rep { font-size: 11.5px; color: var(--primary); }
.pub-c__badge { font-size: 10.5px; color: var(--text-dim); background: rgba(var(--ui-contrast-rgb), .08); border-radius: 5px; padding: 1px 6px; }
.pub-c__time { font-size: 11.5px; color: var(--text-dim); }
.pub-c__quote { font-size: 12.5px; color: var(--text-dim); border-left: 2px solid rgba(var(--primary-rgb), .4); padding-left: 8px; margin: 5px 0; }
.pub-c__body { font-size: 14px; color: var(--text); line-height: 1.5; margin-top: 3px; overflow-wrap: anywhere; }
.pub-c__score { font-size: 12px; color: var(--text-dim); margin-top: 5px; }
.pub-replies { margin-left: 34px; margin-top: 2px; padding-left: 11px; border-left: .5px solid rgba(var(--ui-contrast-rgb), .08); }

/* ----- демо-диалог (центр: вопрос/ответ в скине чата) ----- */
.demo-convo { max-width: 760px; margin: 0 auto; padding: 18px 0 40px; }
.demo-msg { display: flex; margin-bottom: 16px; }
.demo-msg--user { justify-content: flex-end; }
.demo-msg__bubble {
    max-width: 86%; padding: 13px 16px; border-radius: 16px; font-size: 15px; line-height: 1.55; color: var(--text);
}
.demo-msg--user .demo-msg__bubble { background: rgba(var(--primary-rgb), .16); border-bottom-right-radius: 5px; }
.demo-msg--ai .demo-msg__bubble {
    max-width: 100%; background: var(--background-light);
    border: .5px solid rgba(var(--ui-contrast-rgb), .1); border-bottom-left-radius: 5px;
}
.demo-msg__bubble p { margin: 0 0 10px; }
.demo-msg__bubble p:last-child { margin-bottom: 0; }
.demo-msg__bubble ul { margin: 6px 0 10px; padding-left: 20px; }
.demo-msg__bubble li { margin-bottom: 5px; }
.demo-msg__who { font-size: 11.5px; color: var(--text-dim); margin-bottom: 5px; display: flex; align-items: center; gap: 6px; }
.demo-msg__who i { color: var(--primary); }
.demo-table { width: 100%; border-collapse: collapse; margin: 8px 0 12px; font-size: 13.5px; }
.demo-table th, .demo-table td { border: .5px solid rgba(var(--ui-contrast-rgb), .14); padding: 7px 10px; text-align: left; }
.demo-table th { background: rgba(var(--ui-contrast-rgb), .05); color: var(--text); font-weight: 600; }

/* Богатый ответ консультанта (markdown → HTML) */
.demo-msg--ai .demo-msg__bubble h2 { font-size: 16px; font-weight: 600; color: var(--text); margin: 18px 0 8px; }
.demo-msg--ai .demo-msg__bubble h3 { font-size: 14.5px; font-weight: 600; color: var(--text); margin: 14px 0 6px; }
.demo-msg--ai .demo-msg__bubble ol { margin: 6px 0 10px; padding-left: 20px; }
.demo-msg--ai .demo-msg__bubble li { margin-bottom: 6px; }
.demo-msg--ai .demo-msg__bubble hr { border: 0; border-top: .5px solid rgba(var(--ui-contrast-rgb), .12); margin: 16px 0; }
.demo-msg--ai .demo-msg__bubble code {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px;
    background: rgba(var(--ui-contrast-rgb), .07); border-radius: 5px; padding: 1px 5px;
}
.demo-msg--ai .demo-msg__bubble p > code { display: inline-block; padding: 7px 11px; margin: 4px 0; line-height: 1.5; }
.demo-msg--ai .demo-msg__bubble a { color: var(--primary); text-decoration: none; }
.demo-msg--ai .demo-msg__bubble a:hover { text-decoration: underline; }
.demo-cite { font-size: 10px; vertical-align: super; line-height: 0; margin: 0 1px; }
.demo-cite a {
    color: var(--primary); background: rgba(var(--primary-rgb), .14);
    border-radius: 4px; padding: 0 4px; text-decoration: none !important; font-weight: 600;
}

/* Таблицы — как в боевом ответе (.message-bubble table в chat.css) */
.demo-msg--ai .demo-msg__bubble table {
    width: auto; min-width: 100%; border-collapse: separate; border-spacing: 0;
    margin: 16px 0; background: var(--background-light);
    border: 1px solid rgba(var(--ui-contrast-rgb), .10); border-radius: 12px;
    overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,.10); font-size: 14px;
}
.demo-msg--ai .demo-msg__bubble th {
    background: linear-gradient(135deg, rgba(var(--primary-rgb), .18), rgba(var(--primary-dark-rgb), .12));
    padding: 12px 16px; text-align: left; font-weight: 600; color: var(--text);
    border-bottom: 1px solid rgba(var(--ui-contrast-rgb), .12); white-space: nowrap;
}
.demo-msg--ai .demo-msg__bubble td {
    padding: 12px 16px; color: var(--text);
    border-bottom: 1px solid rgba(var(--ui-contrast-rgb), .10); vertical-align: top;
}
.demo-msg--ai .demo-msg__bubble th:not(:last-child),
.demo-msg--ai .demo-msg__bubble td:not(:last-child) { border-right: 1px solid rgba(var(--ui-contrast-rgb), .08); }
.demo-msg--ai .demo-msg__bubble tbody tr:nth-child(even) td { background: rgba(var(--primary-rgb), .04); }
.demo-msg--ai .demo-msg__bubble tr:last-child td { border-bottom: none; }

/* Кнопки-тогглы «Источники» / «Судебная практика» (скрыты по умолчанию) */
.demo-toggles { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.demo-toggle {
    font-size: 12.5px; color: var(--text-dim); cursor: pointer;
    background: rgba(var(--ui-contrast-rgb), .05); border: .5px solid rgba(var(--ui-contrast-rgb), .12);
    border-radius: 9px; padding: 7px 13px; display: inline-flex; align-items: center; gap: 7px; transition: all .12s;
}
.demo-toggle:hover { color: var(--text); border-color: rgba(var(--ui-contrast-rgb), .25); }
.demo-toggle.is-on { color: var(--primary); background: rgba(var(--primary-rgb), .12); border-color: rgba(var(--primary-rgb), .4); }
.demo-toggle i { color: var(--primary); }

/* Судебная практика (из practice_context.cases боевого ответа) */
.demo-practice { margin-top: 10px; }
.demo-practice__title { font-size: 12px; font-weight: 600; color: var(--text-dim); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 10px; }
.demo-practice__case {
    display: block; text-decoration: none; padding: 10px 12px; margin-bottom: 8px;
    border: .5px solid rgba(var(--ui-contrast-rgb), .12); border-radius: 10px; transition: border-color .12s;
}
.demo-practice__case:hover { border-color: rgba(var(--primary-rgb), .4); }
.demo-practice__h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }
.demo-practice__num { font-size: 13px; font-weight: 600; color: var(--primary); }
.demo-practice__date { font-size: 12px; color: var(--text-dim); }
.demo-practice__rel { font-size: 11px; color: var(--text-dim); background: rgba(var(--ui-contrast-rgb), .07); border-radius: 5px; padding: 1px 7px; }
.demo-practice__sum { font-size: 13.5px; color: var(--text); line-height: 1.5; }

/* Источники под ответом (как в боевом ответе ИИ) */
.demo-sources { margin-top: 10px; }
.demo-sources__title { font-size: 12px; font-weight: 600; color: var(--text-dim); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 8px; }
.demo-sources__item {
    display: flex; align-items: center; gap: 9px; text-decoration: none;
    padding: 7px 9px; border-radius: 9px; transition: background .12s; margin: 0 -9px;
}
.demo-sources__item:hover { background: rgba(var(--ui-contrast-rgb), .05); }
.demo-sources__n {
    flex: 0 0 auto; width: 20px; height: 20px; border-radius: 50%; font-size: 11px; font-weight: 600;
    display: flex; align-items: center; justify-content: center;
    color: var(--primary); background: rgba(var(--primary-rgb), .14);
}
.demo-sources__t { flex: 1 1 auto; min-width: 0; font-size: 13.5px; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.demo-sources__host { flex: 0 0 auto; font-size: 11.5px; color: var(--text-dim); }

/* ----- демо-витрина «Мои документы» (типовые документы) ----- */
.demo-docs { max-width: 860px; margin: 0 auto; }
.demo-docs__h { font-size: 20px; font-weight: 600; color: var(--text); margin: 4px 0 4px; }
.demo-docs__sub { font-size: 13.5px; color: var(--text-dim); line-height: 1.5; margin-bottom: 18px; }
.demo-docs__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(248px, 1fr)); gap: 12px; }
.demo-doc {
    display: flex; gap: 12px; text-align: left; align-items: flex-start; cursor: pointer;
    background: var(--background-light); border: .5px solid rgba(var(--ui-contrast-rgb), .1);
    border-radius: 12px; padding: 14px; transition: border-color .12s, background .12s;
}
.demo-doc:hover { border-color: rgba(var(--primary-rgb), .4); }
.demo-doc__ic {
    flex: 0 0 auto; width: 40px; height: 40px; border-radius: 9px; font-size: 17px;
    display: flex; align-items: center; justify-content: center;
    color: var(--primary); background: rgba(var(--primary-rgb), .13);
}
.demo-doc__ic--claim { color: #E0A458; background: rgba(224, 164, 88, .14); }
.demo-doc__ic--power { color: #9B8AFB; background: rgba(155, 138, 251, .14); }
.demo-doc__ic--receipt { color: #58C0A0; background: rgba(88, 192, 160, .14); }
.demo-doc__ic--app { color: #6AA8E0; background: rgba(106, 168, 224, .14); }
.demo-doc__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.demo-doc__tag { font-size: 11px; color: var(--primary); }
.demo-doc__title { font-size: 14.5px; font-weight: 600; color: var(--text); line-height: 1.3; }
.demo-doc__desc { font-size: 12.5px; color: var(--text-dim); line-height: 1.45; }

/* ----- faux-инпут внизу (клик → стена регистрации) ----- */
.faux-input { cursor: pointer; }
.faux-input .chatgpt-textarea { cursor: pointer; pointer-events: none; }
.faux-input__lock { color: var(--text-dim); display: inline-flex; align-items: center; }

/* ----- стена регистрации (модалка) ----- */
.regwall-overlay {
    position: fixed; inset: 0; z-index: 4000; display: none;
    align-items: center; justify-content: center; padding: 18px;
    background: rgba(0, 0, 0, .55); backdrop-filter: blur(3px);
}
.regwall-overlay.is-open { display: flex; }
.regwall {
    width: 100%; max-width: 420px; background: var(--background-light);
    border: .5px solid rgba(var(--ui-contrast-rgb), .14); border-radius: 18px;
    padding: 26px 24px; text-align: center; box-shadow: 0 24px 70px rgba(0, 0, 0, .45);
}
.regwall__icon {
    width: 54px; height: 54px; margin: 0 auto 14px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center; font-size: 22px;
    color: var(--primary); background: rgba(var(--primary-rgb), .14);
}
.regwall__title { font-size: 19px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.regwall__text { font-size: 14px; color: var(--text-dim); line-height: 1.5; margin-bottom: 20px; }
.regwall__actions { display: flex; flex-direction: column; gap: 10px; }
.regwall__btn {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    text-decoration: none; font-size: 14.5px; font-weight: 600; padding: 12px; border-radius: 11px; cursor: pointer;
}
.regwall__btn--primary { color: var(--on-primary); background: var(--primary); }
.regwall__btn--primary:hover { filter: brightness(1.07); }
.regwall__btn--ghost { color: var(--text); background: rgba(var(--ui-contrast-rgb), .06); border: .5px solid rgba(var(--ui-contrast-rgb), .14); }
.regwall__close {
    position: absolute; top: 14px; right: 16px; background: none; border: 0;
    color: var(--text-dim); font-size: 22px; cursor: pointer; line-height: 1;
}

/* ----- плавающая кнопка-меню (только мобильно) ----- */
.pub-mobile-menu {
    display: none; position: absolute; top: 9px; left: 10px; z-index: 30;
    width: 38px; height: 38px; align-items: center; justify-content: center;
    background: var(--background-light); color: var(--text); cursor: pointer;
    border: .5px solid rgba(var(--ui-contrast-rgb), .14); border-radius: 9px;
}
@media (max-width: 768px) {
    #conversations-panel { transform: translateX(-100%); z-index: 50; transition: transform .25s ease; }
    #conversations-panel.is-open { transform: translateX(0); }
    .legal-news-view { margin-left: 0 !important; }
    .pub-mobile-menu { display: inline-flex; }
    .lnews-head { padding-left: 56px; }
}
