/* PersonaLab — ч/б вид (бриф Ильи 22.10, §4; Figma v4 569:3506).

   Единственный вид сайта: цветного нет с 25.10, атрибута data-skin и
   скрипта, который его ставил, — тоже. Токены ч/б — в app.css и owner.css,
   здесь — общие токены страниц и правила поверх app.css, owner.css и
   landing.css.

   Правила: фон белый, поверхность #F2F2F2, линии #D9D9D9, текст #000,
   второстепенный #595959 (#767676 — только на белом). Карточки — 1,5 px
   чёрная рамка, главное и выбранное — 3 px. Пунктир — только «допущение».
   Кнопка: основная — чёрная, вторичная — белая с рамкой. Статусы — точкой и
   словом, не цветом. Без теней и градиентов, скругления до 6 px. Бумага
   портрета — в серой шкале. Цветными остаются Афанасий и его чат (как в
   Figma 692:424); логотип и анимации — те же. */

/* --- 1. Токены ---------------------------------------------------------- */

:root {
  --accent: #000000; --accent-soft: #f2f2f2; --cool: #000000; --danger: #000000;
  --rail: #ffffff; --sunk: #f2f2f2; --head: #ffffff; --head-ink: #000000;
  --shadow: none; --lift: none; --radius: 4px;
}
:root[data-theme="dark"] {
  --accent: #f2f2f2; --accent-soft: #1f1f1f; --cool: #f2f2f2; --danger: #f2f2f2;
  --rail: #0d0d0d; --sunk: #1f1f1f; --head: #0d0d0d; --head-ink: #f2f2f2;
}

/* --- 2. Афанасий и его чат — цветные, как были ----------------------------- */

:root .pl :is(.pl-agent, .pl-fab, .pl-top-ask, .o-agent, .pl-longwait) {
  --bg: #f4f5f7; --panel: #ffffff; --agent-bg: #f5f6f7; --ink: #1f2328; --ink-2: #3d434b;
  --muted: #697079; --faint: #8a9099; --line: #e3e5e9; --border: #dcdfe4; --line-2: #c9cdd2;
  --hover: #eceef1; --nav-on: #e6e8eb; --accent: #1c7d60; --accent-ink: #ffffff; --accent-soft: #edf8f5;
  --accent-tint: #e8f4ef; --doing: #3f7a26; --doing-bg: #f2f8e8; --badge-bg: #f1f2f4; --badge-ink: #6b7280;
  --me: #1c7d60; --green: #1c7d60; --bad-ink: #b42318; --card-shadow: 0 4px 20px rgba(31, 35, 40, .06);
}
:root[data-theme="dark"] .pl :is(.pl-agent, .pl-fab, .pl-top-ask, .o-agent, .pl-longwait) {
  --bg: #111315; --panel: #181b1f; --agent-bg: #15181b; --ink: #e8eaec; --ink-2: #c9cdd2; --muted: #a3a9b0;
  --faint: #868c94; --line: #2a2f35; --border: #3a4048; --line-2: #3a4048; --hover: #1f2328; --nav-on: #23272c;
  --accent: #4cc79c; --accent-ink: #0f1113; --accent-soft: #15302a; --accent-tint: #15302a; --doing: #8fcf6a;
  --doing-bg: #1b2a14; --badge-bg: #23272c; --badge-ink: #a3a9b0; --me: #4cc79c; --green: #4cc79c;
  --bad-ink: #ff8a80; --card-shadow: none;
}

/* --- 3. Основа: заголовки, ссылки, меню ----------------------------------- */

:root .pl h1 { font-weight: 700; line-height: 1.15; letter-spacing: -.015em; }
:root .pl h2 { font-weight: 700; }
:root .pl a:not(.pl-btn):not(.pl-nav):not(.pl-brand):not(.pl-task):not(.pl-proj):not(.pl-pathcard):not(.pl-choice) {
  text-underline-offset: 3px;
}
:root .pl-side { border-right: 1px solid var(--line); }
:root .pl-nav { border-radius: 4px; }
:root .pl-nav.on, :root .pl-nav.lead { box-shadow: inset 3px 0 0 var(--mono-frame); }
:root .pl-sw > summary { border-radius: 6px; border: 1.5px solid var(--mono-frame); }
:root .pl-sw-list { border-radius: 6px; border: 1.5px solid var(--mono-frame); box-shadow: none; }
:root .pl-sw-list a { border-radius: 4px; }
:root .pl-badge-plan {
  background: transparent; color: var(--ink); border: 1px solid var(--line);
}
:root .pl-me .pl-ava { background: var(--ink); color: var(--panel); }
:root .pl-top { border-bottom: 1px solid var(--line); }
:root .pl-foot-note { border-radius: 6px; }
:root .pl-foot-note svg { color: var(--ink); }

/* --- 4. Кнопки, бейджи, чипы, статусы ------------------------------------- */

:root .pl-btn { border-radius: 6px; border: 1.5px solid var(--ink); background: var(--ink);
  color: var(--panel) !important; }
:root .pl-btn:hover:not(:disabled) { filter: none; box-shadow: none; background: var(--ink-2); }
:root .pl-btn.ghost { background: var(--panel); border-color: var(--ink); color: var(--ink) !important; }
:root .pl-btn.ghost:hover:not(:disabled) { background: var(--mono-sel); }
:root .pl-btn.sm { border-radius: 6px; }
:root .pl-btn:disabled { opacity: 1; background: var(--mono-sel); border-color: var(--line); color: var(--muted) !important; }
:root .pl-link { color: var(--ink); text-decoration: underline; }

:root .pl-badge { background: transparent; border: 1px solid var(--line); color: var(--muted); border-radius: 999px; }
/* Статус — точкой: залитая — готово или новое, пустая — ждёт. */
:root .pl :is(.pl-badge.new, .pl-badge.pro, .pl-badge.plan) {
  background: transparent; color: var(--ink); border-color: var(--line); }
:root .pl :is(.pl-badge.new)::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ink); flex-shrink: 0; }
:root .pl-badge:not(.new):not(.doing):not(.pro):not(.plan)::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%; border: 1.5px solid var(--muted); box-sizing: border-box; flex-shrink: 0; }
:root .pl-badge:has(svg)::before { display: none; }

:root .pl .chip { border-color: var(--line); background: var(--panel); border-radius: 999px; }
:root .pl .chip svg { color: var(--ink); }

/* Ответы-чипы шага 4: серая рамка; выбранный — чёрная 2 px, серый фон и галочка. */
:root .pl-intro-chips span { border-color: var(--line); }
:root .pl-intro-chips label:hover span { border-color: var(--ink); }
:root .pl-intro-chips input:checked + span { background: var(--mono-sel); color: var(--ink);
  border: 2px solid var(--ink); padding: 8px 15px; }
:root .pl-intro-chips input:checked + span::before { content: ""; width: 14px; height: 14px; margin-right: 8px;
  background: currentColor; -webkit-mask: var(--pl-check) center / contain no-repeat; mask: var(--pl-check) center / contain no-repeat; }
:root .pl-intro-chips .own span { color: var(--ink); }

/* Ошибка — жирная чёрная рамка и «!», не цвет. */
:root .pl-error { position: relative; border: 3px solid var(--ink); border-radius: 6px; background: var(--panel);
  color: var(--ink); padding-left: 44px; font-weight: 500; }
:root .pl-error::before { content: "!"; position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--ink); color: var(--panel);
  font: 700 13px/1 var(--font); }

/* Прочие цветные мелочи: пометка стадии, предупреждение, подложки эмодзи. */
:root .pl-checks { background: var(--panel); border: 1.5px solid var(--ink); color: var(--ink); border-radius: 6px; }
/* Эмодзи — цветные глифы: в ч/б их тоже обесцвечиваем (Афанасий — картинка, его не трогаем). */
:root .pl :is(.pl-proj-ico, .pl-ro-face) { filter: grayscale(1); }
:root .pl-country:has(input:checked) { border-color: var(--ink); background: var(--mono-sel); }
:root .pl-country:has(input:checked)::after { color: var(--ink); }
:root .pl-country { border-radius: 6px; }
:root .lp :is(.lp-yesno img, .lp-plan img) { filter: grayscale(1); }

:root .pl :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select):not(.pl-agent *) { border-radius: 6px; }

/* --- 5. Карточки и экраны: рамка 1,5 px, главное — 3 px, без теней ------- */

/* В :is() — только одиночные классы: вес правила должен быть предсказуем,
   иначе он перебивает пунктир «допущения» и серую плашку действия. */
:root .pl :is(.pl-card, .pl-task, .pl-proj, .pl-pathcard, .pl-ins-card, .pl-ins-fold, .pl-v2-fold, .pl-next, .pl-recent, .pl-unpaid, .pl-ro-person, .pl-paywall) {
  border: 1.5px solid var(--mono-frame); border-radius: 6px; box-shadow: none; }
:root .pl-pick-list a { border: 1.5px solid var(--mono-frame); border-radius: 6px; box-shadow: none; }
:root .pl :is(.pl-task, .pl-proj, .pl-pathcard):hover, :root .pl-pick-list a:hover {
  border-color: var(--mono-frame); box-shadow: none; background: var(--mono-sel); }
:root .pl :is(.pl-proj.on, .pl-person.yes, .pl-ins-hero, .pl-ins-tier.on) {
  border: 3px solid var(--mono-frame); }
:root[data-theme="dark"] .pl :is(.pl-proj.on, .pl-person.yes, .pl-ins-hero, .pl-ins-tier.on) { border-color: var(--mono-frame); }
:root .pl .pl-ins-card.guess, :root .pl .pl-v2-need.guess { border: 1.5px dashed var(--ins-dash); }
/* Иконки задач и карточек на главной — цветные (Илья, 26.10.2026). */
:root .pl :is(.pl-proj-ico img, .pl-ro-face img) { filter: grayscale(1); }
:root .pl :is(.pl-skeleton, .pl-sw-list, dialog, .pl-modal) { box-shadow: none; }
:root .pl dialog { border: 1.5px solid var(--mono-frame); border-radius: 6px; }
:root .pl-skeleton { border-radius: 6px; border: 1.5px solid var(--line); }
:root .pl-skeleton i { border-radius: 4px; }
/* Пока Афанасий думает, рамка плашки ожидания светлая — по ней бежит чёрный луч (app.css, pl-beam). */
:root.agent-thinking .pl :is(.pl-wait.pl-card:not([role="alert"]):not(.pl-v2-asking), .pl-ins-teaser.wait) {
  border-color: var(--line); }
:root .pl-skeleton i:nth-child(1) { border-radius: 6px; }
:root .pl-updated, :root .pl-flow { border-radius: 6px; }
:root .pl-journey li.on { box-shadow: inset 0 0 0 2px var(--ink); color: var(--ink); }
:root .pl-start-top::before { background: var(--ink); }

/* Портреты аудитории: отметка — серым, выбранное — рамкой. */
:root .pl-verdict :is(button, .d) { border-color: var(--line); border-radius: 6px; }
:root .pl-verdict :is(button, .d):hover { border-color: var(--ink); }
:root .pl-verdict .y svg, :root .pl-verdict .n svg { color: var(--ink); }
:root .pl :is(.pl-verdict .y.on, .pl-verdict .n.on) { background: var(--mono-sel); border: 2px solid var(--ink); color: var(--ink); }
:root .pl :is(.pl-verdict .y.on, .pl-verdict .n.on) svg { color: var(--ink); }
:root .pl-trait dt svg, :root .pl-paper .pl-trait dt svg { color: var(--ink); }
:root .pl-quote::before { background: var(--ink); }

/* --- 6. Инсайт и экран результата v2 ------------------------------------- */

:root .pl-ins-label,
:root .pl-paper-top {
  font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); }
:root .pl-ins-label .pl-ins-guess { letter-spacing: 0; text-transform: none; }
:root .pl-ins-guess, :root .pl-v2-guess { background: transparent; border: 1px dashed var(--ins-dash); }
:root .pl-ins-new { background: transparent; border: 1px solid var(--line); color: var(--ink); }
:root .pl-ins-hero { background: var(--panel); color: var(--ink); }
:root .pl-ins-hero :is(.pl-ins-label, .pl-ins-check) { color: var(--ink); }
:root .pl-ins-hero .pl-ins-check { color: var(--muted); }
:root .pl-ins-verdict button { border-color: var(--line); border-radius: 6px; }
:root .pl-ins-verdict button:hover { border-color: var(--ink); }
:root .pl-ins-verdict button.on { background: var(--mono-sel); border: 2px solid var(--ink); color: var(--ink); }
:root .pl-ins-verdict.on-green button { background: var(--panel); border-color: var(--line); color: var(--ink); }
:root .pl-ins-verdict.on-green button.on { background: var(--mono-sel); border: 2px solid var(--ink); color: var(--ink); }
:root .pl-ins-cell { border-radius: 6px; }
:root .pl-ins-cell.green { background: var(--panel); border: 1.5px solid var(--mono-frame); }
:root .pl-ins-cell.green small { color: var(--ink); }

:root .pl-ins-tier { border-radius: 6px; border-color: var(--line); }
:root .pl-ins-tier.on { background: var(--panel); }
:root .pl-ins-tier p span { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
:root .pl-ins-letter { border-left-color: var(--ink); }
:root .pl-ins-why, :root .pl-ins-reasons span { border-radius: 6px; }
:root .pl-ins-reasons input:checked + span { background: var(--mono-sel); color: var(--ink); border: 2px solid var(--ink); }
:root .pl-ins-go .pl-btn:not(.ghost), :root .pl-ins-go .pl-btn.idea {
  background: var(--ink); border-color: var(--ink); }
:root .pl-ins-teaser, :root a.pl-ins-teaser {
  background: var(--panel); color: var(--ink); border: 1.5px solid var(--mono-frame); border-radius: 6px; }
:root .pl-ins-teaser small { color: var(--muted); }
:root .pl-ins-teaser.wait { background: var(--panel); }

/* v2: главное — белая карточка с рамкой 3 px, как на Figma v4 (этап 7). */
:root .pl-v2-main .pl-v2-seems { color: var(--muted); opacity: 1; }
:root .pl-v2-need { border-radius: 6px; background: var(--panel); }
:root .pl-v2-ask { border-radius: 6px; background: var(--mono-sel); }
:root .pl-v2-from, :root .pl-v2-fresh { border: 1px solid var(--line); color: var(--ink); }
:root .chip.pl-v2-guesses { border: 1px dashed var(--ins-dash); }

/* --- 7. Артефакты в серой шкале ------------------------------------------ */

/* Портрет — та же бумага с зерном и пачкой листов, без цвета и без мягкой тени. */
:root .pl-person.pl-paper { border-radius: 6px; border: 1px solid var(--paper-border);
  box-shadow: 0 9px 0 -3px var(--paper-sheet-1), 0 18px 0 -6px var(--paper-sheet-2); }
:root .pl-person.pl-paper.yes { border: 3px solid var(--mono-frame); padding: 26px 30px; }
:root .pl-paper-top svg, :root .pl-photo { color: var(--muted); }
:root .pl-photo { background: var(--mono-sel); border-radius: 6px; }
:root .pl-paper .pl-verdict :is(button, .d), :root .pl-paper .pl-btn.ghost {
  background: var(--panel); border-color: var(--line); }
:root .pl-paper .pl-btn.ghost { border-color: var(--ink); }
:root .pl-paper :is(.pl-verdict .y.on, .pl-verdict .n.on) { background: var(--mono-sel); border: 2px solid var(--ink); }
:root .pl-paper .pl-badge, :root .pl-paper .pl-badge.new { background: var(--panel); color: var(--ink); }
:root .pl-paper .pl-badge::before { background: var(--ink); }
:root[data-theme="dark"] .pl-photo { background: #1f1f1f; color: #a6a6a6; }
:root[data-theme="dark"] .pl-paper .pl-verdict :is(button, .d),
:root[data-theme="dark"] .pl-paper .pl-btn.ghost,
:root[data-theme="dark"] .pl-paper .pl-badge { background: var(--panel); color: var(--ink); }

/* --- 8. Страницы задач (owner.css) ---------------------------------------- */

:root .owner :is(.o-seg, .o-tabs) { border-radius: 6px; }
:root .owner :is(.o-seg input:checked + span, .o-tabs button[aria-selected="true"]) {
  box-shadow: inset 0 0 0 2px var(--ink); border-radius: 4px; }
:root .owner :is(.o-field, .t-button) { border-radius: 6px; }
:root .owner .o-field.over { border: 3px solid var(--ink); box-shadow: none; }

/* --- 9. Лендинг (landing.css) — тот же ч/б, черепаха-Афанасий цветная ----- */

:root body.lp {
  --ink: #000000; --muted: #595959; --line: #d9d9d9; --accent: #000000; --mint: #f2f2f2; --gray: #f2f2f2;
  --chip: #ffffff; --chip-ink: #595959; --pro: #000000; --pro-line: #000000; --pro-chip: #f2f2f2; --shadow: none;
}
:root .lp-hero { background: #ffffff; }
:root .lp-hero::before { background: radial-gradient(circle at 35% 35%, #f2f2f2, #d9d9d9 55%, transparent 72%); }
:root .lp-btn { border-radius: 6px; }
:root .lp-btn:hover { filter: none; background: #262626; box-shadow: none; transform: none; }
:root .lp-btn.ghost { border: 1.5px solid #000; }
:root .lp-btn.ghost:hover, :root .lp-btn.white:hover { background: #f2f2f2; }
:root .lp-btn.white { color: #000; }
:root .lp-ask { border: 1.5px solid #000; border-radius: 6px; box-shadow: none; }
:root .lp-ask-field { border: 1.5px solid #000; border-radius: 6px; background: #fff; }
:root .lp-ask-field:focus-within { box-shadow: inset 0 0 0 1.5px #000; }
:root .lp-ask-go { border-radius: 6px; }
:root .lp :is(.lp-card, .lp-shot, .lp-bubble) { border: 1.5px solid #000; border-radius: 6px; box-shadow: none; }
/* «Что вы получите» — как в приложении: главное в рамке 3 px, бумага в серой шкале. */
:root .lp-paper { border: 1px solid #d9d9d9; border-radius: 6px; background: linear-gradient(180deg, #fafafa, #f0f0f0);
  box-shadow: 0 9px 0 -3px #e6e6e6, 0 18px 0 -6px #d9d9d9; }
:root .lp-paper-top { color: #000; }
:root .lp-paper-photo { background: #f2f2f2; color: #595959; border-radius: 6px; }
:root .lp :is(.lp-pain) { border-radius: 6px; }
:root .lp-ava { background: #f2f2f2; border-radius: 6px; }
:root .lp-yesno span { border-radius: 6px; }
:root .lp-shot .lp-yesno span.on { background: #f2f2f2; border: 2px solid #000; color: #000; }
:root .lp-shot-field { border-color: #000; box-shadow: none; border-radius: 6px; }
:root .lp-shot-btn { border-radius: 6px; }

:root .lp-task:hover { border-color: #000; box-shadow: none; transform: none; }
:root .lp-plan.pro { border-width: 3px; }
:root .lp-nav a:hover { color: #000; text-decoration: underline; text-underline-offset: 3px; }
:root .lp-dots i.on { background: #000; }
