/* Раздел «Законы» v13 (эскиз A «Как Документы» + ответ блоками из E, docs/v13/sketches): дерево законов — в левой колонке сайта
   вместо меню (#left-sec, как список ведомств в «Документах», «←» — к меню); шапка — «Законы», свежесть базы, поиск по тексту;
   ниже ИИ-юрист почти на весь экран; закон — листом справа (бумага A4, как бланк) по запросу: .lw.reading; телефон — вкладки. Цвета — переменные app.css и shell.css,
   лист — всегда бумага (белый, как документы). */
.lw { position: relative; height: 100%; min-height: 560px; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: var(--gap, 10px);
  color: var(--text); font: 15px/1.45 Inter, system-ui, sans-serif;
  --ok-c: #15803d; --ok-bg: #eaf7ef; --bad-c: #b91c1c; --bad-bg: #fdeeee; --warn-c: #a15c00; --warn-bg: #fff5df; --ooc-c: #6d28d9; --ooc-bg: #f3effe;
  --info-c: var(--sel-text, var(--sel)); --info-bg: var(--sel-weak); --desk: #e9ebef; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .lw { --ok-c: #4ade80; --ok-bg: rgba(74, 222, 128, .12); --bad-c: #f87171; --bad-bg: rgba(248, 113, 113, .13);
  --warn-c: #fbbf24; --warn-bg: rgba(251, 191, 36, .13); --ooc-c: #c4b5fd; --ooc-bg: rgba(167, 139, 250, .15); --desk: #191919; } }
:root[data-theme="dark"] .lw { --ok-c: #4ade80; --ok-bg: rgba(74, 222, 128, .12); --bad-c: #f87171; --bad-bg: rgba(248, 113, 113, .13);
  --warn-c: #fbbf24; --warn-bg: rgba(251, 191, 36, .13); --ooc-c: #c4b5fd; --ooc-bg: rgba(167, 139, 250, .15); --desk: #191919; }
.lw button { font: inherit; color: inherit; }
.lw :focus-visible { outline: 2px solid var(--sel); outline-offset: 2px; }
.lw [hidden] { display: none !important; }
.lw-tree, .lw-view, .lwc { min-width: 0; min-height: 0; background: var(--panel); border-radius: var(--r-panel, 16px);
  box-shadow: var(--shadow, 0 1px 2px rgba(16, 24, 40, .05), 0 8px 24px rgba(16, 24, 40, .07)); }

/* — шапка — */
.lw-top { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 6px 6px 2px; }
.lw-h1 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; }
.lw-tt h1 { margin: 0; font-size: 34px; line-height: 1.1; font-weight: 800; letter-spacing: -.02em; }
.lw-tt p { margin: 4px 0 0; font-size: 16px; color: var(--muted); }
.lw-age { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: 999px; background: var(--sel-weak); color: var(--sel-text, var(--sel));
  font-size: 13.5px; font-weight: 600; white-space: nowrap; }
.lw-age svg { width: 16px; height: 16px; flex: none; }
.lw-age.stale { background: var(--warn-bg); color: var(--warn-c); }
.lw-search { display: flex; align-items: center; gap: 10px; padding: 0 16px; border-radius: 14px; background: var(--panel); box-shadow: inset 0 0 0 1.5px var(--line); transition: box-shadow .15s; }
.lw-q { width: min(520px, 44%); height: 50px; box-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 6px 18px -8px rgba(16, 24, 40, .18), inset 0 0 0 1px var(--line); }
.lw-search svg { width: 20px; height: 20px; color: var(--muted); flex: none; }
.lw-search input { flex: 1; min-width: 0; height: 100%; border: 0; outline: none; background: none; color: var(--text); font: 16px Inter, system-ui, sans-serif; }
.lw-search input::placeholder { color: var(--muted); }
.lw-search:focus-within { box-shadow: 0 0 0 3px var(--sel-weak), inset 0 0 0 1.5px var(--sel); }
.lw .lw-search input:focus-visible { outline: none; }
.lw-tabs { display: none; }

/* — три колонки: дерево, лист, ИИ-юрист; каждая листается сама — */
.lw-main { position: relative; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gap, 10px); }
.lw.reading .lw-main { grid-template-columns: minmax(0, 1fr) minmax(440px, 47%); }
.lwc { order: 1; }
.lw-view { order: 2; }
.lw:not(.reading) .lw-view { display: none; }
.lws-x { margin-left: 4px; }
@media (min-width: 900px) { .lw-tree { display: none !important; } }

/* дерево в левой колонке сайта (#left-sec) — разметкой и видом списка «Документов» (shell.css .dl-group, .layer) */
.lwl-q { position: sticky; z-index: 2; top: 0; margin: 0 0 12px; box-shadow: 0 0 0 6px var(--panel), 0 10px 12px -8px var(--panel); }
#left-sec .lwl-list > .lw-skel { padding: 0 4px; }
#left-sec .layer .lwl-ic, #left-sec .layer .lwl-emb { width: 22px; height: 22px; flex: none; display: grid; place-items: center; }
#left-sec .layer .lwl-ic svg { width: 20px; height: 20px; }
#left-sec .layer .lwl-emb { object-fit: contain; }
#left-sec .layer.on .lwl-ic { filter: drop-shadow(0 0 0 #fff) brightness(1.15); }
#left-sec .layer .tag { flex: none; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
#left-sec .layer.on .tag { color: rgba(255, 255, 255, .85); }
#left-sec .layer .lbl { white-space: nowrap; }
#left-sec .lwl-g .dl-bn { white-space: normal; line-height: 1.25; }
#left-sec .lwl-g.ooc .dl-cnt { background: var(--ooc-bg, #f3effe); color: var(--ooc-c, #6d28d9); }
#left-sec .lwt-more { margin: 4px 0 2px 6px; }
#left-sec .dl-empty { margin: 8px 6px; color: var(--muted); font-size: 14px; }

/* дерево законов — как список бланков в «Документах» */
.lw-tree { display: flex; flex-direction: column; overflow: hidden; }
.lwt-h { display: grid; gap: 2px; padding: 18px 18px 8px; }
.lwt-h h2 { margin: 0; font-size: 17px; font-weight: 800; letter-spacing: -.01em; white-space: nowrap; }
.lwt-h small { font-size: 12.5px; color: var(--muted); white-space: nowrap; }
.lwt-gs { flex: 1; min-height: 0; overflow-y: auto; padding: 2px 10px 16px; scrollbar-width: thin; }
.lw-tree > .lw-skel, .lw-tree > .lw-msg { padding: 18px; }
.lwt-g + .lwt-g { margin-top: 2px; }
.lwt-g > summary { list-style: none; display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 8px 6px 10px; border-radius: 12px; cursor: pointer;
  transition: background .15s; }
.lwt-g > summary::-webkit-details-marker { display: none; }
.lwt-g > summary:hover { background: var(--hover); }
.lwt-g > summary > svg:first-child { width: 22px; height: 22px; flex: none; }
.lwt-g > summary b { flex: 1; min-width: 0; font-size: 14.5px; font-weight: 700; line-height: 1.25; overflow-wrap: anywhere; hyphens: auto; }
.lwt-g > summary small { min-width: 26px; height: 22px; padding: 0 7px; display: grid; place-items: center; border-radius: 999px; background: var(--input); color: var(--muted);
  font-size: 12px; font-weight: 600; }
.lwt-g > summary > svg:last-child { width: 18px; height: 18px; flex: none; color: var(--muted); transform: rotate(-90deg); transition: transform .15s; }
.lwt-g[open] > summary > svg:last-child { transform: none; }
.lwt-g.ooc > summary small { background: var(--ooc-bg); color: var(--ooc-c); }
.lwt-l { display: grid; gap: 2px; padding: 2px 0 8px 14px; }
.lwt-it { display: flex; align-items: center; gap: 9px; min-height: 38px; padding: 6px 10px; border-radius: 10px; text-align: left; font-size: 14px; line-height: 1.3;
  transition: background .12s, color .12s; }
.lwt-it > svg { width: 18px; height: 18px; flex: none; opacity: .85; }
.lwt-it .lwl-ic, .lwt-it .lwl-emb { width: 22px; height: 22px; flex: none; display: grid; place-items: center; object-fit: contain; }
.lwt-it .lwl-ic svg { width: 20px; height: 20px; }
.lwt-it span { flex: 1; min-width: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lwt-it small { flex: none; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.lwt-it:hover { background: var(--hover); }
.lwt-it.on { background: var(--sel); color: #fff !important; box-shadow: 0 6px 14px -8px color-mix(in srgb, var(--sel) 80%, transparent); }
.lwt-it.on small { color: rgba(255, 255, 255, .85); }
.lwt-more { justify-self: start; min-height: 32px; display: inline-flex; align-items: center; gap: 2px; padding: 0 10px; border-radius: 8px; color: var(--sel) !important;
  font-size: 13.5px !important; font-weight: 600; }
.lwt-more:hover { background: var(--sel-weak); }
.lwt-more svg { width: 15px; height: 15px; }
.lw-empty { color: var(--muted); padding: 8px 10px; font-size: 14px; }

/* лист закона: полоса с путём, стол с бумагой, масштаб снизу */
.lw-view { position: relative; display: flex; flex-direction: column; overflow: hidden; }
.lws-bar { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 8px 12px 8px 18px; border-bottom: 1px solid var(--line); }
.lws-lib { display: none; flex: none; align-items: center; gap: 6px; min-height: 38px; padding: 0 12px 0 10px; border-radius: 10px; background: var(--input);
  font-size: 14px !important; font-weight: 600; }
.lws-lib svg { width: 19px; height: 19px; }
body:not(.lp-docs) .lws-lib { display: inline-flex; }  /* колонка показывает меню (нажали «←») — дерево открывается отсюда */
.lws-cr { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--muted); white-space: nowrap; }
.lws-cr span { flex: none; }
.lws-cr i { font-style: normal; opacity: .6; }
.lws-cr b { min-width: 0; overflow: hidden; text-overflow: ellipsis; color: var(--text); font-weight: 650; }
.lws-acts { display: flex; gap: 4px; }
.lws-ib { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; color: var(--muted) !important; box-shadow: inset 0 0 0 1px var(--line); }
.lws-ib:hover { background: var(--hover); color: var(--text) !important; }
.lws-ib[data-lw="askdoc"] { color: var(--sel) !important; background: var(--sel-weak); box-shadow: none; }
.lws-ib svg { width: 18px; height: 18px; }
.lws-desk { flex: 1; min-height: 0; overflow: auto; padding: 18px 18px 80px; background: var(--desk); scrollbar-width: thin; container-type: inline-size; }
.lws-fit { max-width: 794px; margin: 0 auto; }
/* лист тянется по ширине колонки (до 794 пкс — ширина бланка в «Документах»); --z — размер текста (кнопки A− / A+) */
.lws-page { position: relative; min-height: 600px; padding: clamp(30px, 8cqi, 64px) clamp(20px, 8cqi, 70px) clamp(30px, 7cqi, 60px) clamp(50px, 12cqi, 104px);
  background: #fff; color: #161616; border-radius: 2px; font: calc(16px * var(--z, 1))/1.55 Tinos, "Times New Roman", Times, serif;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .12), 0 18px 40px -18px rgba(0, 0, 0, .35); }
.lws-page.lws-wait { padding: 60px; }
.lws-head { display: grid; justify-items: center; text-align: center; margin-bottom: 26px; }
.lws-emb { width: clamp(64px, 12cqi, 92px); height: clamp(64px, 12cqi, 92px); object-fit: contain; margin-bottom: 14px; }
.lws-emb.ic { display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #fffdf6, #efe3c0); box-shadow: 0 0 0 2px #d6b35e; }
.lws-emb.ic svg { width: 54px; height: 54px; }
.lws-org { margin: 0; font-size: .97em; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.lws-rule { display: block; width: 100%; height: 1px; margin: 12px 0 6px; background: linear-gradient(90deg, transparent, #9aa3b2 15%, #9aa3b2 85%, transparent); }
.lws-ed { margin: 0; justify-self: end; font-size: .84em; font-style: italic; color: #4b5563; }
.lws-title { margin: 0 0 1.3em; text-align: center; font-size: 1.36em; font-weight: 700; line-height: 1.3; letter-spacing: .02em; text-transform: uppercase; text-wrap: balance; }
.lws-ch { margin: 1.6em 0 .7em; text-align: center; font-size: 1.1em; font-weight: 700; line-height: 1.35; text-wrap: balance; }
.lws-a { position: relative; margin: 0 -14px 4px; padding: 8px 14px; border-radius: 6px; scroll-margin: 60px; transition: background .2s; }
.lws-a:hover { background: #f5f7fb; }
.lws-a.flash { animation: lws-flash 2.4s ease-out; }
@keyframes lws-flash { 0%, 35% { background: #fff1b8; box-shadow: inset 3px 0 0 #e0a000; } }
.lws-num { position: absolute; right: calc(100% - 4px); top: .5em; width: 3em; padding-right: .6em; text-align: right; font-weight: 700; font-size: .92em; color: #6b7280;
  font-variant-numeric: tabular-nums; }
.lws-body h3 { margin: 0 0 .35em; font-size: 1.03em; font-weight: 700; line-height: 1.4; }
.lws-a.bare { padding-top: 4px; padding-bottom: 4px; margin-bottom: 0; }
.lws-parts { margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.lws-parts li { display: grid; grid-template-columns: 2.3em minmax(0, 1fr); gap: 2px; }
.lws-parts li.lws-plain, .lws-parts li.lws-note { grid-template-columns: minmax(0, 1fr); }
.lws-parts li.lws-note p { color: #4b5563; font-size: .94em; font-style: italic; }
.lws-n { color: #6b7280; font-variant-numeric: tabular-nums; }
.lws-parts p { margin: 0; text-align: justify; hyphens: auto; overflow-wrap: anywhere; }
.lws-tools { position: absolute; z-index: 1; top: -18px; right: 6px; display: flex; gap: 2px; padding: 3px; border-radius: 12px; background: #fff;
  box-shadow: 0 0 0 1px #e5e7eb, 0 8px 20px -8px rgba(0, 0, 0, .3); font: 13px/1 Inter, system-ui, sans-serif; opacity: 0; transform: translateY(2px);
  transition: opacity .15s, transform .15s; pointer-events: none; }
.lws-a:hover .lws-tools, .lws-tools:focus-within { opacity: 1; transform: none; pointer-events: auto; }
.lws-tools button, .lws-tools a { min-width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 9px;
  color: #4b5563 !important; text-decoration: none; }
.lws-tools button:hover, .lws-tools a:hover { background: #f1f3f6; color: #111 !important; }
.lws-tools svg { width: 17px; height: 17px; }
.lws-tools .lws-ask { padding: 0 10px 0 8px; background: #eaf2ff; color: #1d4ed8 !important; font-weight: 600; }
.lws-tools .lws-ask:hover { background: #dbe8ff; color: #1d4ed8 !important; }
.lws-end { margin-top: 2em; padding-top: 12px; border-top: 1px solid #e5e7eb; text-align: center; font-size: .84em; color: #6b7280; }
.lws-end a { color: #1d4ed8; }
.lws-page.ooc .lws-org { color: #5b21b6; }
.lws-zoom { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); display: flex; align-items: center; gap: 2px; padding: 4px; border-radius: 14px;
  background: var(--panel); box-shadow: 0 0 0 1px var(--line), 0 10px 26px -10px rgba(16, 24, 40, .35); font-size: 14px; white-space: nowrap; }
.lws-zoom button { min-width: 36px; height: 36px; padding: 0 8px; border-radius: 10px; color: var(--muted) !important; font-weight: 600 !important; }
.lws-zoom button:hover { background: var(--hover); color: var(--text) !important; }
.lws-zoom button.on { color: var(--sel) !important; background: var(--sel-weak); }
.lws-zoom .lws-zv { min-width: 58px; color: var(--text) !important; font-variant-numeric: tabular-nums; }

/* поиск по всем законам (в центре вместо листа) */
.lw-view > .lw-sh, .lw-view > .lw-hits, .lw-view > .lw-msg, .lw-view > .lw-skel { margin-left: 22px; margin-right: 22px; }
.lw-view > .lw-sh { margin-top: 18px; }
.lw-sh { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.lw-sh h2 { margin: 0; font-size: 22px; font-weight: 800; line-height: 1.2; }
.lw-sh p { margin: 4px 0 0; color: var(--muted); }
.lw-scope { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.lw-scope button { min-height: 32px; padding: 0 12px; border-radius: 999px; background: var(--input); color: var(--muted) !important; font-size: 13px !important; font-weight: 600; }
.lw-scope button[aria-pressed="true"] { background: var(--sel); color: #fff !important; }
.lw-hits { display: grid; gap: 10px; margin-top: 16px; padding-bottom: 22px; overflow-y: auto; }
.lw-view:has(> .lw-hits) { overflow-y: auto; }
.lw-hit { display: grid; gap: 4px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; text-align: left; transition: border-color .15s, background .15s; }
.lw-hit:hover { border-color: var(--sel); background: var(--sel-weak); }
.lw-hit-h { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; }
.lw-hit-h b { font-size: 16px; font-weight: 700; }
.lw-hit-h em { font-style: normal; font-size: 13px; color: var(--muted); }
.lw-hit-t { font-size: 15px; font-weight: 600; }
.lw-hit-s { font-size: 14px; line-height: 1.5; color: var(--muted); }
.lw-hit mark { background: rgba(255, 205, 41, .42); color: inherit; border-radius: 3px; padding: 0 1px; }

/* кнопки, сообщения, загрузка */
.lw-b { min-height: 44px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 12px; font-size: 15px !important;
  font-weight: 600; transition: background .15s, filter .15s; white-space: nowrap; }
.lw-b svg { width: 18px; height: 18px; flex: none; }
.lw-b.sec { background: var(--ai-bg, var(--sel-weak)); color: var(--ai-text, var(--sel)) !important; }
.lw-b:hover { filter: brightness(.97); }
.lw-msg { display: grid; justify-items: start; gap: 12px; padding: 18px 2px; color: var(--muted); font-size: 15px; }
.lw-msg p { margin: 0; }
.lw-start { justify-items: center; text-align: center; padding-top: 12vh; }
.lw-start svg { width: 48px; height: 48px; }
.lw-skel { display: grid; gap: 10px; }
.lw-skel i { display: block; height: 36px; border-radius: 10px; background: linear-gradient(90deg, var(--input) 30%, var(--hover) 50%, var(--input) 70%) 0 0 / 300% 100%;
  animation: lw-sh 1.3s ease-in-out infinite; }
.lws-page .lw-skel i { background: linear-gradient(90deg, #f1f3f6 30%, #e7eaef 50%, #f1f3f6 70%) 0 0 / 300% 100%; height: 64px; }
@keyframes lw-sh { to { background-position: -150% 0; } }

/* «Вставить ссылку в документ»: подсказка, пока человек выбирает место в тексте бланка */
.lw-pick { position: fixed; z-index: 31; left: 50%; bottom: 24px; transform: translateX(-50%); width: max-content; max-width: calc(100vw - 24px);
  display: flex; align-items: center; gap: 10px; padding: 10px 8px 10px 16px; border-radius: 14px; background: #111827; color: #fff;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .28); font: 14px/1.4 Inter, system-ui, sans-serif; animation: lw-up .2s ease-out; }
.lw-pick > svg { width: 20px; height: 20px; flex: none; color: #8ab4ff; }
.lw-pick b { font-weight: 600; }
.lw-pick button { width: 36px; height: 36px; flex: none; display: grid; place-items: center; border-radius: 10px; color: #fff; }
.lw-pick button:hover { background: rgba(255, 255, 255, .12); }
.lw-pick button svg { width: 18px; height: 18px; }
@keyframes lw-up { from { opacity: 0; transform: translate(-50%, 10px); } }

/* — ИИ-юрист: шапка, переписка, поле вопроса — */
.lwc { display: flex; flex-direction: column; overflow: hidden; color: var(--text); font: 15px/1.45 Inter, system-ui, sans-serif; }
.lwc button { font: inherit; color: inherit; }
.lwc :focus-visible { outline: 2px solid var(--sel); outline-offset: 2px; }
.lwc [hidden] { display: none !important; }
.lwc-h { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 8px 10px 8px 18px; border-bottom: 1px solid var(--line); }
.lwc-t { display: inline-flex; align-items: center; gap: 8px; font-size: 17px; font-weight: 800; white-space: nowrap; }
.lwc-t svg { width: 24px; height: 24px; color: var(--sel); }
.lwc-lib { display: none; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px 0 10px; border-radius: 10px; background: var(--input); font-size: 14px !important; font-weight: 600; flex: none; }
.lwc-lib svg { width: 19px; height: 19px; }
body:not(.lp-docs) .lwc-lib { display: inline-flex; }
.lwc-quota { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; color: var(--muted); }
.lwc-quota.low { color: var(--bad-c); font-weight: 600; }
.lwc-hb { margin-left: auto; display: flex; gap: 4px; }
.lwc-new { height: 36px; min-width: 36px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 8px; border-radius: 10px;
  color: var(--muted) !important; font-size: 13.5px !important; font-weight: 600; }
.lwc-new:hover { background: var(--hover); color: var(--text) !important; }
.lwc-new svg { width: 18px; height: 18px; }
.lwc-feed { flex: 1; min-height: 0; overflow-y: auto; padding: 16px 14px 20px; scrollbar-width: thin; overscroll-behavior: contain; }
.lwc-in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.lwc-it, .lwa, .lwa > * { min-width: 0; }  /* широкая таблица листается внутри себя, а не раздвигает переписку */
.lwc-feed { padding: 22px clamp(14px, 3vw, 32px) 26px; }
.lwc-in, .lwc-foot > * { width: 100%; max-width: 940px; margin-left: auto; margin-right: auto; }
.lwc-foot { padding-left: clamp(12px, 3vw, 32px); padding-right: clamp(12px, 3vw, 32px); }
.lwc-it { display: grid; gap: 8px; }
.lwc-it .aip-me p { font-size: 15px; white-space: pre-wrap; }
/* пусто: что умеет и примеры вопросов */
.lwc-hello { display: grid; justify-items: center; gap: 10px; padding: 8vh 4px 6px; text-align: center; }
.lwc-hello-ic { width: 76px; height: 76px; display: grid; place-items: center; border-radius: 24px; background: linear-gradient(140deg, var(--sel-weak), color-mix(in srgb, var(--ooc-bg) 70%, var(--panel)));
  color: var(--sel); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sel) 20%, transparent), 0 14px 30px -18px color-mix(in srgb, var(--sel) 70%, transparent); }
.lwc-hello-ic svg { width: 42px; height: 42px; }
.lwc-hello h2 { margin: 6px 0 0; font-size: 28px; font-weight: 800; letter-spacing: -.02em; }
.lwc-hello p { margin: 0; max-width: 56ch; font-size: 15.5px; color: var(--muted); line-height: 1.55; }
.lwc-ex { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; width: 100%; max-width: 860px; margin-top: 18px; }

.lwc-ex button { display: flex; align-items: flex-start; gap: 12px; min-height: 76px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--panel);
  font-size: 14.5px !important; line-height: 1.4; text-align: left; transition: border-color .15s, background .15s, transform .15s, box-shadow .15s; }
.lwc-ex button:hover { border-color: color-mix(in srgb, var(--sel) 45%, var(--line)); background: color-mix(in srgb, var(--sel-weak) 55%, var(--panel)); transform: translateY(-1px);
  box-shadow: 0 10px 22px -16px rgba(16, 24, 40, .4); }
.lwc-ex-ic { width: 40px; height: 40px; flex: none; display: grid; place-items: center; border-radius: 12px; background: var(--input); }
.lwc-ex-ic svg { width: 22px; height: 22px; }
.lwc-ex button > span:last-child { display: grid; gap: 2px; }
.lwc-ex small { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.lwc-stop { justify-self: start; min-height: 34px; padding: 0 12px; border-radius: 10px; background: var(--input); font-size: 14px !important; font-weight: 600; }
.lwc-foot { display: grid; gap: 8px; padding: 10px 12px 12px; border-top: 1px solid var(--line); }
.lwc-ctx { margin: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; padding: 8px 8px 8px 12px; border-radius: 12px; background: var(--sel-weak); font-size: 13.5px; }
.lwc-ctx > svg { width: 18px; height: 18px; flex: none; }
.lwc-ctx span { flex: 1 1 180px; min-width: 0; }
.lwc-ctx button[data-c="ctxdoc"] { min-height: 30px; padding: 0 10px; border-radius: 8px; background: var(--panel); color: var(--sel) !important; font-size: 13px !important; font-weight: 600; }
.lwc-ctx-x { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; color: var(--muted) !important; }
.lwc-ctx-x svg { width: 16px; height: 16px; }
.lwc-form { display: flex; align-items: flex-end; gap: 6px; padding: 5px 5px 5px 14px; border: 1.5px solid var(--line); border-radius: 16px; background: var(--input);
  transition: border-color .15s, box-shadow .15s, background .15s; }
.lwc-form:focus-within { border-color: var(--sel); background: var(--panel); box-shadow: 0 0 0 3px var(--sel-weak); }
.lwc-req { flex: 1; min-width: 0; min-height: 42px; max-height: 200px; padding: 10px 0; border: 0; outline: none; resize: none; background: transparent; color: var(--text);
  font: 15.5px/1.4 Inter, system-ui, sans-serif; field-sizing: content; }
.lwc-req::placeholder { color: var(--muted); }
.lwc .lwc-req:focus-visible { outline: none; }
.lwc-len { align-self: center; font-size: 12px; color: var(--muted); }
.lwc-len.low { color: var(--bad-c); }
.lwc-send { width: 42px; height: 42px; flex: none; display: grid; place-items: center; border-radius: 12px; background: var(--sel); color: #fff !important; transition: filter .15s, opacity .15s; }
.lwc-send:hover:not(:disabled) { filter: brightness(1.08); }
.lwc-send:disabled { opacity: .45; }
.lwc-send svg { width: 19px; height: 19px; }
.lwc-meta { margin: 0; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 2px 12px; font-size: 12.5px; color: var(--muted); }
.lwc-kb.stale { padding: 0 6px; border-radius: 999px; background: var(--warn-bg); color: var(--warn-c); font-weight: 600; }
.lwc-gate { display: grid; justify-items: center; gap: 10px; padding: 14px; border-radius: 14px; background: var(--input); text-align: center; }
.lwc-gate b { font-size: 15px; }
.lwc-gate p { margin: 0; color: var(--muted); }
.lwc-codef { display: flex; gap: 8px; }
.lwc-codelink { min-height: 32px; padding: 0 8px; color: var(--muted) !important; font-size: 13px !important; text-decoration: underline; }
.lwc-gate-err { margin: 0; color: var(--bad-c); font-size: 14px; }

/* — ответ: шапка с выводом и блоки, которые ИИ собрал под вопрос — */
.lwa { display: grid; gap: 14px; padding: 16px 16px 14px; border-radius: 16px; }
.lw:not(.reading) .lwa { gap: 16px; padding: 22px 24px 18px; }
.lwa p { margin: 0; }
.lwa b { font-weight: 700; }
.lwa-h { display: flex; align-items: center; gap: 12px; }
.lwa-ic { width: 38px; height: 38px; flex: none; display: grid; place-items: center; }
.lwa-ic svg { width: 38px; height: 38px; }
.lwa.v-ok .lwa-ic { color: var(--ok-c); } .lwa.v-bad .lwa-ic { color: var(--bad-c); } .lwa.v-warn .lwa-ic { color: #e0a000; }
.lwa.v-info .lwa-ic { color: var(--sel); } .lwa.v-none .lwa-ic { color: var(--muted); }
.lwa .lwa-h h3 { margin: 0; font-size: 18px; line-height: 1.28; font-weight: 800; letter-spacing: -.012em; text-wrap: balance; }
.lw:not(.reading) .lwa .lwa-h h3 { font-size: 21px; }
.lwa-h p { margin: 2px 0 0; font-size: 13px; color: var(--muted); }
.lwa.aip-card h4 { margin: 0 0 8px; display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 750; }
.lwa h4 > svg { width: 19px; height: 19px; flex: none; color: var(--sel); }
.lwa-lead { padding: 12px 14px 13px; border-radius: 14px; background: var(--sel-weak); }
.lwa-k { display: block; margin-bottom: 4px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sel-text, var(--sel)); }
.lwa-lead p { font-size: 15.5px; line-height: 1.5; font-weight: 520; }
.lw:not(.reading) .lwa-lead p { font-size: 16.5px; }
.lwa-lead.t-ok { background: var(--ok-bg); } .lwa-lead.t-ok .lwa-k { color: var(--ok-c); }
.lwa-lead.t-bad { background: var(--bad-bg); } .lwa-lead.t-bad .lwa-k { color: var(--bad-c); }
.lwa-lead.t-warn { background: var(--warn-bg); } .lwa-lead.t-warn .lwa-k { color: var(--warn-c); }
.lwa-lead.t-ooc { background: var(--ooc-bg); } .lwa-lead.t-ooc .lwa-k { color: var(--ooc-c); }
.lwa-text { display: grid; gap: 9px; max-width: 78ch; }
.lwa-text p { font-size: 15px; line-height: 1.62; overflow-wrap: anywhere; }
.lwa-text i, .lwa-exi i, .lwa-list i, .lwa-note i { font-style: italic; }
/* примеры: карточки с цветом оценки (законно, нарушение, зависит, нейтрально) */
.lwa-ex { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }

.lwa-exi { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: start; gap: 10px; padding: 11px 13px 12px 11px; border-radius: 12px; background: var(--info-bg); }
.lwa-exi-ic { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; background: var(--panel); color: var(--info-c); }
.lwa-exi-ic svg { width: 18px; height: 18px; }
.lwa-exi b { display: block; margin-bottom: 2px; font-size: 14.5px; line-height: 1.35; }
.lwa-exi p { font-size: 14px; line-height: 1.5; color: color-mix(in srgb, var(--text) 86%, var(--muted)); }
.lwa-exi.t-ok { background: var(--ok-bg); } .lwa-exi.t-ok .lwa-exi-ic { color: var(--ok-c); }
.lwa-exi.t-bad { background: var(--bad-bg); } .lwa-exi.t-bad .lwa-exi-ic { color: var(--bad-c); }
.lwa-exi.t-warn { background: var(--warn-bg); } .lwa-exi.t-warn .lwa-exi-ic { color: var(--warn-c); }
/* шаги: номера на линии */
.lwa-steps { margin: 0; padding: 0; list-style: none; display: grid; }
.lwa-steps li { position: relative; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; padding-bottom: 12px; }
.lwa-steps li:last-child { padding-bottom: 0; }
.lwa-steps li:not(:last-child)::before { content: ''; position: absolute; left: 13px; top: 30px; bottom: 2px; width: 2px; border-radius: 1px; background: color-mix(in srgb, var(--sel) 25%, var(--line)); }
.lwa-steps li > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--sel); color: #fff; font-size: 13.5px; font-weight: 700; }
.lwa-steps li > div { padding-top: 3px; display: grid; gap: 2px; }
.lwa-steps b { font-size: 15px; line-height: 1.4; }
.lwa-steps p { font-size: 14.5px; line-height: 1.5; color: color-mix(in srgb, var(--text) 82%, var(--muted)); }
.lwa-list { margin: 0; padding: 0 0 0 4px; list-style: none; display: grid; gap: 7px; }
.lwa-list li { position: relative; padding-left: 18px; font-size: 15px; line-height: 1.5; }
.lwa-list li::before { content: ''; position: absolute; left: 3px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--sel); }
/* таблица */
.lwa-tbl { overflow-x: auto; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--line); }
.lwa-tbl table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.45; }
.lwa-tbl th { padding: 9px 12px; background: var(--input); text-align: left; font-weight: 700; font-size: 13px; white-space: nowrap; }
.lwa-tbl td { padding: 9px 12px; border-top: 1px solid var(--line); vertical-align: top; }
.lwa-tbl td:first-child { font-weight: 600; }
/* цитата закона (дословно, сервер сверил с базой) */
.lwa-quote { position: relative; margin: 0; padding: 12px 14px 10px 46px; border-radius: 12px; background: color-mix(in srgb, var(--input) 70%, transparent);
  box-shadow: inset 3px 0 0 var(--sel); }
.lwa-qic { position: absolute; left: 14px; top: 13px; width: 22px; height: 22px; color: var(--sel); opacity: .8; }
.lwa-qic svg { width: 22px; height: 22px; }
.lwa-quote blockquote { margin: 0; font: italic 15.5px/1.55 Tinos, "Times New Roman", serif; color: var(--text); }
.lwa-quote figcaption { margin-top: 6px; display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; font-size: 12.5px; color: var(--muted); }
.lwa-quote figcaption button { display: inline-flex; align-items: center; gap: 2px; min-height: 30px; padding: 0 4px 0 8px; border-radius: 8px; color: var(--sel) !important; font-weight: 600; }
.lwa-quote figcaption button:hover { background: var(--sel-weak); }
.lwa-quote figcaption svg { width: 15px; height: 15px; }
/* предупреждение, подсказка, OOC-правило */
.lwa-note { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; padding: 12px 14px 12px 12px; border-radius: 14px; background: var(--info-bg); }
.lwa-note-ic { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 10px; background: var(--panel); }
.lwa-note-ic svg { width: 20px; height: 20px; }
.lwa-note > div { display: grid; gap: 4px; min-width: 0; }
.lwa-note b { display: flex; align-items: center; gap: 8px; font-size: 14.5px; }
.lwa-note b em { padding: 1px 7px; border-radius: 6px; background: var(--ooc-c); color: #fff; font: 700 11px/1.5 Inter, system-ui, sans-serif; font-style: normal; letter-spacing: .06em; }
.lwa-note p { font-size: 14.5px; line-height: 1.55; }
.lwa-note.t-warn { background: var(--warn-bg); } .lwa-note.t-warn b { color: var(--warn-c); }
.lwa-note.t-bad { background: var(--bad-bg); } .lwa-note.t-bad b { color: var(--bad-c); }
.lwa-note.t-ok { background: var(--ok-bg); } .lwa-note.t-ok b { color: var(--ok-c); }
.lwa-note.t-ooc { background: var(--ooc-bg); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ooc-c) 22%, transparent); } .lwa-note.t-ooc b { color: var(--ooc-c); }
.lwa-src { justify-self: start; margin-top: 6px; display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 0 9px 0 7px; border-radius: 8px;
  background: var(--input); color: var(--muted) !important; font-size: 12.5px !important; font-weight: 600; max-width: 100%; }
.lwa-src span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lwa-src svg { width: 15px; height: 15px; flex: none; }
.lwa-src:hover { background: var(--sel-weak); color: var(--sel) !important; }
/* законы чипами, действия, что спросить дальше */
.lwa-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.lwa-chip { display: inline-flex; align-items: stretch; max-width: 100%; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); overflow: hidden; }
.lwa-chip button { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 6px 11px 6px 9px; text-align: left; }
.lwa-chip button:hover { background: var(--hover); }
.lwa-chip button svg { width: 17px; height: 17px; flex: none; }
.lwa-chip button span { min-width: 0; display: grid; }
.lwa-chip b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 30ch; font-size: 13.5px; font-weight: 600; }
.lwa-chip small { font-size: 12px; color: var(--muted); }
.lwa-chip a { display: grid; place-items: center; width: 34px; border-left: 1px solid var(--line); color: var(--sel); }
.lwa-chip a:hover { background: var(--sel-weak); }
.lwa-chip a svg { width: 15px; height: 15px; }
.lwa-foot { display: grid; gap: 10px; padding-top: 2px; }
.lwa-acts { display: flex; flex-wrap: wrap; gap: 6px; }
.lwa-b { min-height: 38px; padding: 0 12px; display: inline-flex; align-items: center; gap: 7px; border-radius: 11px; background: var(--input); font-size: 13.5px !important;
  font-weight: 600; transition: filter .15s; }
.lwa-b:hover { filter: brightness(.96); }
.lwa-b svg { width: 17px; height: 17px; flex: none; }
.lwa-b.pri { background: var(--sel); color: #fff !important; }
.lwa-b.pri:hover { filter: brightness(1.08); }
.lwc-fu { display: flex; flex-wrap: wrap; gap: 6px; }
.lwc-fu button { min-height: 34px; padding: 6px 12px; border-radius: 999px; background: var(--sel-weak); color: var(--sel-text, var(--sel)) !important; font-size: 13.5px !important;
  line-height: 1.3; text-align: left; transition: filter .15s; }
.lwc-fu button::before { content: '→ '; }
.lwc-fu button:hover { filter: brightness(.96); }
/* ждём ответ */
.lwa-wait { gap: 14px; }
.lwa-spin i { width: 30px; height: 30px; border-radius: 50%; border: 3px solid var(--sel); border-right-color: transparent; animation: lwc-spin .8s linear infinite; }
.lwa-skel { display: grid; gap: 8px; }
.lwa-skel i { display: block; height: 14px; border-radius: 7px; background: linear-gradient(90deg, var(--input) 30%, var(--hover) 50%, var(--input) 70%) 0 0 / 300% 100%;
  animation: lw-sh 1.3s ease-in-out infinite; }
.lwa-skel i:nth-child(2) { width: 86%; } .lwa-skel i:nth-child(3) { width: 62%; }
@keyframes lwc-spin { to { transform: rotate(360deg); } }

/* планшет: лист закона — поверх чата справа */
@media (min-width: 900px) and (max-width: 1279px) {
  .lw.reading .lw-main { grid-template-columns: minmax(0, 1fr); }
  .lw-view { position: absolute; z-index: 6; top: 0; right: 0; bottom: 0; width: min(620px, 94%); box-shadow: 0 24px 60px -14px rgba(16, 24, 40, .45), 0 0 0 1px var(--line); }
}
/* телефон: вкладки «Библиотека · Документ · ИИ-юрист»; страница листается целиком, поле вопроса прилипает над нижней панелью */
@media (max-width: 899px) {
  .lw { display: block; height: auto; min-height: 0; }
  .lw-top { flex-direction: column; align-items: stretch; padding: 4px 4px 0; gap: 12px; }
  .lw-tt h1 { font-size: 28px; }
  .lw-tt p { font-size: 14.5px; }
  .lw-q { width: auto; height: 52px; }
  .lw-tabs { position: sticky; z-index: 5; top: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin: 12px 0 10px; padding: 4px; border-radius: 14px;
    background: var(--panel); box-shadow: var(--shadow); }
  .lw-tabs button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 10px; color: var(--muted) !important;
    font-size: 14px !important; font-weight: 650; }
  .lw-tabs button svg { width: 18px; height: 18px; }
  .lw-tabs button[aria-selected="true"] { background: var(--sel); color: #fff !important; }
  .lw-main { display: block; }
  .lw-tree, .lw-view, .lwc { display: none; }
  .lw[data-view="tree"] .lw-tree, .lw[data-view="sheet"] .lw-view, .lw[data-view="ai"] .lwc { display: flex; }
  .lw[data-view="sheet"] .lw-view { display: flex !important; }
  .lwc-lib { display: none !important; }
  .lw-tree { position: static; width: auto; transform: none; overflow: visible; box-shadow: var(--shadow); }
  .lwt-gs { overflow: visible; }
  .lw-view { overflow: visible; }
  .lws-lib { display: none !important; }
  body.sec-left #left { display: none !important; }  /* на телефоне дерево — вкладкой «Библиотека» внутри страницы */
  .lws-bar { padding: 8px 8px 8px 14px; }
  .lws-desk { overflow-x: auto; overflow-y: visible; padding: 10px 10px 76px; border-radius: 0 0 var(--r-panel, 16px) var(--r-panel, 16px); }
  .lws-tools { opacity: 1; transform: none; pointer-events: auto; position: static; margin-top: 6px; width: max-content; }
  .lws-zoom { position: sticky; bottom: 10px; left: auto; transform: none; margin: -64px auto 10px; width: max-content; }
  .lwc { overflow: visible; min-height: 60vh; }
  .lwc-feed { overflow: visible; padding: 12px 10px 14px; }
  .lwc-foot { position: sticky; bottom: 8px; z-index: 4; background: var(--panel); border-radius: 0 0 var(--r-panel, 16px) var(--r-panel, 16px);
    box-shadow: 0 -10px 24px -16px rgba(16, 24, 40, .3); }
  .lwc-foot::after { content: ''; position: absolute; left: -12px; right: -12px; top: 100%; height: 56px; background: var(--canvas); }  /* под полем не просвечивает ответ */
  .lwc-meta { display: none; }
  .lwc-new span { display: none; }   /* на телефоне — только значок «+» */
  .lwc-h { padding-left: 14px; }
  .lw-sh { flex-direction: column; align-items: stretch; }
}
@media (prefers-reduced-motion: reduce) { .lw-skel i, .lwa-skel i, .lw-pick, .lws-a.flash, .lwa-spin i { animation: none; } .lw-tree { transition: none; } }

/* — v14: ответ печатается в карточке ожидания; сохранённый ответ — подпись и «Ответить заново» — */
.lwa-live { display: grid; gap: 14px; }
.lwa-draft { display: grid; gap: 14px; }
.lwa-draft:empty { display: none; }
.lwa-dh { margin: 0; font-size: 18px; font-weight: 700; line-height: 1.3; color: var(--text); }
.lwa-caret { display: inline-block; width: 9px; height: 18px; margin-top: -6px; border-radius: 2px; background: var(--sel); animation: lwa-blink 1s steps(2) infinite; }
@keyframes lwa-blink { 50% { opacity: 0; } }
.lwa-cached { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0; padding: 8px 12px; border-radius: 12px; background: var(--input); font-size: 13px; color: var(--muted); }
.lwa-cached svg { width: 16px; height: 16px; flex: none; }
.lwa-cached button { margin-left: auto; min-height: 30px; padding: 0 10px; border-radius: 8px; font-size: 13px; font-weight: 600; color: var(--sel); }
.lwa-cached button:hover { background: var(--hover); }
@media (prefers-reduced-motion: reduce) { .lwa-caret { animation: none; } }
