/* Р7: редактор статьи — вид «как у Word»: панель сверху, лист с полями, врезки цветными рамками */
.zv-editor-wrap { border: 1px solid #d1d5db; border-radius: .5rem; background: #fff; }
.zv-toolbar { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; gap: .25rem; padding: .4rem .5rem; border-bottom: 1px solid #e5e7eb; background: #f9fafb; border-radius: .5rem .5rem 0 0; }
.zv-toolbar button { font: inherit; font-size: .8rem; line-height: 1; padding: .4rem .55rem; border: 1px solid #d1d5db; border-radius: .35rem; background: #fff; color: #111827; cursor: pointer; }
.zv-toolbar button:hover { background: #eef2ff; border-color: #a5b4fc; }
.zv-toolbar button.on { background: #4f46e5; color: #fff; border-color: #4f46e5; }
.zv-toolbar .sep { width: 1px; background: #e5e7eb; margin: 0 .25rem; }
.zv-toolbar .grp { display: flex; gap: .2rem; align-items: center; }
.zv-toolbar .hint { font-size: .75rem; color: #6b7280; margin-left: auto; align-self: center; display: inline-flex; align-items: center; }
.zv-editor { min-height: 240px; max-height: calc(100vh - 20rem); overflow: auto; overscroll-behavior: auto; resize: vertical; padding: 1.25rem 1.75rem; font-size: 1rem; line-height: 1.6; color: #111827; outline: none; }
.zv-editor:focus { outline: none; }
.zv-editor h1 { font-size: 1.6rem; font-weight: 700; margin: 1rem 0 .75rem; }
.zv-editor h2 { font-size: 1.3rem; font-weight: 700; margin: 1.25rem 0 .5rem; }
.zv-editor h3 { font-size: 1.1rem; font-weight: 600; margin: 1rem 0 .4rem; }
.zv-editor h2[data-role]::before, .zv-editor h3[data-role]::before, .zv-editor h1[data-role]::before { content: attr(data-role); font-size: .65rem; font-weight: 500; color: #6b7280; background: #f3f4f6; border-radius: .25rem; padding: .05rem .35rem; margin-right: .5rem; vertical-align: middle; text-transform: uppercase; }
.zv-editor p { margin: .5rem 0; }
.zv-editor p[data-role="end"] { color: #9ca3af; font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; border-top: 1px dashed #d1d5db; padding-top: .2rem; }
.zv-editor ul, .zv-editor ol { padding-left: 1.5rem; margin: .5rem 0; }
.zv-editor ul { list-style: disc; } .zv-editor ol { list-style: decimal; }
.zv-editor a { color: #2563eb; text-decoration: underline; }
.zv-editor table { border-collapse: collapse; margin: .75rem 0; width: 100%; table-layout: fixed; }
.zv-editor th, .zv-editor td { border: 1px solid #d1d5db; padding: .35rem .5rem; vertical-align: top; min-width: 3rem; }
.zv-editor th { background: #f3f4f6; font-weight: 600; }
.zv-editor td p, .zv-editor th p, .zv-editor li p { margin: 0; }
.zv-editor .selectedCell { background: #e0e7ff; }
.zv-editor hr { border: 0; border-top: 2px solid #e5e7eb; margin: 1rem 0; }
/* врезки — цвета как в предпросмотре и на портале */
.zv-callout { position: relative; margin: .75rem 0; padding: 1.6rem .9rem .6rem; border-left: 4px solid #6b7280; border-radius: .35rem; background: #f9fafb; }
.zv-callout::before { content: attr(data-label); position: absolute; top: .35rem; left: .9rem; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #374151; }
.zv-callout[data-closed="0"]::after { content: "без явного «Конец блока»"; position: absolute; top: .35rem; right: .75rem; font-size: .65rem; color: #9ca3af; }
/* 04.10 (Олег: «что за надписи „в одну строку“?»): служебная пометка формы врезки убрана — подпись одна и та же для обеих форм */
.zv-callout[data-inline="1"]::before { content: attr(data-label); }
.zv-important { border-color: #dc2626; background: #fef2f2; } .zv-important::before { color: #b91c1c; }
.zv-attention { border-color: #f59e0b; background: #fffbeb; } .zv-attention::before { color: #b45309; }
.zv-note { border-color: #2563eb; background: #eff6ff; } .zv-note::before { color: #1d4ed8; }
.zv-example { border-color: #16a34a; background: #f0fdf4; } .zv-example::before { color: #15803d; }
.zv-situation { border-color: #ca8a04; background: #fefce8; } .zv-situation::before { color: #a16207; }
.zv-formula { border-color: #7c3aed; background: #f5f3ff; } .zv-formula::before { color: #6d28d9; }
.zv-checklist { border-color: #0891b2; background: #ecfeff; } .zv-checklist::before { color: #0e7490; }
.zv-callout > :first-child { margin-top: 0; } .zv-callout > :last-child { margin-bottom: 0; }
/* защищённые абзацы редактора (подсветка по data-locked, ставится blade после загрузки) */
.zv-editor [data-locked="1"] { box-shadow: inset 3px 0 0 #10b981; padding-left: .5rem; }
.zv-status { font-size: .8rem; color: #6b7280; padding: .35rem .75rem; border-top: 1px solid #e5e7eb; display: flex; gap: 1rem; }
.zv-status .warn, .zv-toolbar .hint .warn { color: #b45309; }
.dark .zv-editor-wrap { background: #111827; border-color: #374151; } .dark .zv-editor { color: #e5e7eb; } .dark .zv-toolbar { background: #1f2937; border-color: #374151; }
.dark .zv-toolbar button { background: #111827; color: #e5e7eb; border-color: #4b5563; }
.dark .zv-callout { background: #1f2937; } .dark .zv-editor th { background: #1f2937; }

/* Р11 (04.10): поиск/замена и подсветка проблем */
.zv-find { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: .4rem .6rem; background: #fffbeb; border: 1px solid #fde68a; border-top: 0; font-size: .8rem; }
.zv-find input[type=text] { flex: 1 1 160px; min-width: 120px; padding: .25rem .5rem; border: 1px solid #d1d5db; border-radius: .3rem; font-size: .8rem; background: #fff; }
.zv-find button { padding: .2rem .55rem; border: 1px solid #d1d5db; border-radius: .3rem; background: #fff; cursor: pointer; font-size: .78rem; }
.zv-find button:disabled { opacity: .45; cursor: default; }
.zv-find button.all { background: #fef3c7; }
.zv-find .cnt { min-width: 5.5rem; color: #92400e; }
.zv-find .cs { display: inline-flex; align-items: center; gap: .25rem; color: #6b7280; }
.zv-problems { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; padding: .35rem .6rem; background: #fef2f2; border: 1px solid #fecaca; border-top: 0; font-size: .78rem; }
.zv-problems .ttl { color: #991b1b; margin-right: .25rem; }
.zv-problems .chip { padding: .15rem .5rem; border-radius: 999px; border: 1px solid #fca5a5; background: #fff; cursor: pointer; }
.zv-problems .chip.on { background: #991b1b; color: #fff; border-color: #991b1b; }
.zv-problems button:not(.chip) { padding: .15rem .5rem; border: 1px solid #d1d5db; border-radius: .3rem; background: #fff; cursor: pointer; }
.zv-problems .cur { color: #7f1d1d; flex-basis: 100%; }
.zv-hit { background: #fde68a; border-radius: 2px; }
.zv-hit-cur { background: #f59e0b; color: #111; outline: 2px solid #b45309; }
.zv-prob { text-decoration: underline wavy #dc2626; text-decoration-skip-ink: none; text-underline-offset: 2px; cursor: help; }
.zv-prob-jur { text-decoration-color: #b45309; }
.zv-prob-comp { text-decoration-color: #7c3aed; }
.zv-prob-firm { text-decoration-color: #0369a1; }
.zv-prob-mark { text-decoration-color: #4b5563; background: #f3f4f6; }
.zv-prob-cur { background: #fecaca; outline: 2px solid #dc2626; border-radius: 2px; }
[x-cloak] { display: none !important; }
/* 04.10: панель «шапка и параметры» над текстом — скрыта по умолчанию, раскрывается кнопкой на панели редактора */
.zv-params { margin-bottom: .75rem; }
.zv-toolbar .zv-params-btn { border-color: #a5b4fc; background: #eef2ff; color: #3730a3; font-weight: 500; }
.zv-toolbar .zv-params-btn.on { background: #4f46e5; border-color: #4f46e5; color: #fff; }
.zv-prob-ai { text-decoration-color: #7c3aed; background: #f5f3ff; }
