/* ILF A&A — Конвейер документов · РЕДАКТОР (Параллель 2/3).
   Стили 4 экранов 1:1 по макетам: doc-editor, doc-track-changes,
   doc-comments, doc-versions (~/Downloads/ilf-a-a 3/project).
   Токены берём из design-system.css; цвета правок/якорей — из брендбука:
   зелёный var(--ok) (вставки), бордо var(--danger) (удаления), золото var(--warn) (якорь).
   Все обработчики монтируются в doc-editor.js по id (getElementById). */

/* ---------- каркас экрана ---------- */
.de{width:100%;max-width:1440px;margin:0 auto;font-family:var(--sans)}
.de-crumbs{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted);margin-bottom:10px;flex-wrap:wrap;min-width:0}
.de-crumbs a,.de-crumbs .cur{color:var(--muted);text-decoration:none;min-width:0;max-width:min(42vw,420px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}
.de-crumbs a:hover{color:var(--text)}
.de-crumbs .cur{color:var(--text);font-weight:600}
.de-crumbs .ti{font-size:11px}

.de-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 8px;padding:6px 0 8px;border-bottom:1px solid var(--border-soft)}
.de-top-l{display:flex;align-items:center;gap:12px;min-width:0}
.de-top-r{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.de-fileicon{font-size:24px;color:var(--info-3);flex:none}
.de-title{font-size:15px;font-weight:600}
.de-title.editable{cursor:text;border-radius:5px;padding:1px 5px;margin:-1px -5px;transition:background .12s}
.de-title.editable:hover{background:rgba(0,0,0,.05);box-shadow:inset 0 0 0 1px var(--border-soft)}
.de-title-input{font-size:15px;font-weight:600;font-family:inherit;color:var(--ink);border:1px solid var(--accent,#2f6bff);border-radius:5px;padding:1px 5px;margin:-1px -5px;min-width:180px;max-width:420px;outline:none;background:var(--surface)}
.de-code{font-family:var(--mono);font-size:11px;color:var(--ink);background:var(--primary-bg);border-radius:6px;padding:2px 7px;text-decoration:none}
.de-statuspill{font-family:var(--mono);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text);background:var(--bg-2);border:1px solid var(--border-soft);border-radius:20px;padding:2px 10px}
.de-statuspill.edit{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-2)}
.de-savebar{margin:2px 0 0;font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:5px}
.de-savebar .ti{font-size:13px}
.de-savebar.ok .ti{color:var(--ok)}
.de-savebar.saving .ti{color:var(--warn)}
.de-savebar.offline{color:var(--danger)}
.de-savebar.offline .ti{color:var(--danger)}

/* таймер трудозатрат */
.de-timer{display:flex;align-items:center;gap:9px;height:36px;padding:0 12px;background:var(--bg);border:1px solid var(--border-soft);border-radius:9px}
.de-timer .ti{font-size:15px}
.de-timer .t{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--ink-2);min-width:52px}
.de-timer button{height:22px;padding:0 9px;border:none;border-radius:6px;font-family:inherit;font-size:10.5px;font-weight:600;cursor:pointer}
.de-vsep{width:1px;height:22px;background:var(--border-2);display:inline-block}

/* аватары присутствия */
.de-presence{display:flex;align-items:center}
.de-av{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;border:2px solid var(--bg);margin-right:-8px;position:relative;flex:none}
.de-av.dark{background:var(--primary);color:var(--surface)}
.de-av.light{background:var(--card-2);color:var(--text)}
.de-av .dot{position:absolute;bottom:-1px;right:-1px;width:8px;height:8px;border:1.5px solid var(--bg);border-radius:50%}
.de-av .dot.on{background:var(--ok)}
.de-av .dot.off{background:var(--muted-3)}
.de-presence .lbl{font-size:10.5px;color:var(--muted);margin-left:12px}

.de-btn{display:flex;align-items:center;gap:7px;height:36px;padding:0 13px;background:var(--surface);border:1px solid var(--border-soft);border-radius:9px;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer}
.de-btn:hover{background:var(--card-3)}
.de-btn .ti{font-size:16px;color:var(--text)}
.de-btn.danger{color:var(--danger)}
.de-btn.danger .ti{color:var(--danger)}
.de-btn-prim{display:flex;align-items:center;gap:7px;height:36px;padding:0 14px;background:var(--primary);border:none;border-radius:9px;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--surface);cursor:pointer}
.de-btn-prim .ti{font-size:16px}
.de-btn-hero{display:flex;align-items:center;gap:7px;height:36px;padding:0 14px;background:var(--highlight);border:none;border-radius:9px;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--highlight-text);cursor:pointer}
.de-btn-hero .ti{font-size:16px}
.de-iconback{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--surface);border:1px solid var(--border-soft);color:var(--text);flex:none;cursor:pointer}
.de-iconback .ti{font-size:17px}

/* субстрока файла */
.de-subline{display:flex;align-items:center;gap:16px;margin:-2px 0 8px;padding-left:36px;flex-wrap:wrap}
.de-subline span{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}
.de-subline .ti{font-size:13px}
.de-subline .sep{color:var(--border-3)}
.de-subline .can .ti{color:var(--ok)}

/* баннер соприсутствия */
.de-copresence{display:flex;align-items:center;gap:9px;background:var(--bg);border:1px solid var(--border);border-radius:11px;padding:8px 14px;margin-bottom:8px}
.de-copresence .ti{font-size:16px;color:var(--muted)}
.de-copresence p{margin:0;font-size:12px;color:var(--text)}

/* плашка присутствия (readers[]) */
.de-copresence.live{cursor:pointer;gap:11px}
.de-copresence.live:hover{border-color:var(--border-2);background:var(--card-3)}
.de-readers{display:flex;flex-direction:column;gap:2px;min-width:0}
.de-reader{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text)}
.de-reader .rdot{width:8px;height:8px;border-radius:50%;background:var(--ok);flex:none}
.de-reader b{color:var(--ink);font-weight:600}
.de-reader.partner{color:var(--warn)}
.de-reader.partner .rdot{background:var(--warn);box-shadow:0 0 0 3px rgba(181,133,31,.16)}
.de-reader.partner b{color:var(--warn)}
.de-reader.more{color:var(--muted);font-size:11px}

/* вкладка «Активность» */
.de-act{display:flex;gap:9px;padding:9px 4px;border-bottom:1px solid var(--card-2)}
.de-act:last-child{border-bottom:none}
.de-act.partner{background:#fdf6e3;border-radius:9px;padding:9px 8px;border-bottom:none;margin-bottom:2px}
.de-act-b{flex:1;min-width:0}
.de-act-h{display:flex;align-items:center;gap:7px}
.de-act-h .nm{font-size:12px;font-weight:600;color:var(--ink)}
.de-act-h .tm{margin-left:auto;font-size:10px;color:var(--muted)}
.de-act-m{font-size:11px;color:var(--muted);margin-top:1px}

/* конфликт-плашка (409) */
.de-conflict{display:flex;align-items:center;gap:12px;background:var(--danger-bg);border:1px solid var(--danger-2);border-radius:11px;padding:11px 14px;margin-bottom:14px}
.de-conflict .ti{font-size:18px;color:var(--danger);flex:none}
.de-conflict p{margin:0;font-size:12.5px;color:var(--ink);flex:1}
.de-conflict p b{color:var(--danger)}

/* read-only / лок другого */
.de-lockbar{display:flex;align-items:center;gap:11px;background:var(--warn-bg);border:1px solid #e7d3a4;border-radius:11px;padding:10px 14px;margin-bottom:14px}
.de-lockbar .ti{font-size:17px;color:var(--warn);flex:none}
.de-lockbar p{margin:0;font-size:12.5px;color:var(--ink);flex:1}
.de-access-pending{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;border-radius:7px;padding:6px 9px;background:var(--surface);color:var(--warn);font-size:11.5px;font-weight:600}
/* Б2 r11: плашка «Документ в архиве» */
.de-archivebar{display:flex;align-items:center;gap:11px;background:#f1eee9;border:1px solid var(--border-2);border-left:4px solid var(--muted);border-radius:11px;padding:10px 14px;margin-bottom:14px}
.de-archivebar .ti{font-size:18px;color:var(--muted);flex:none}
.de-archivebar p{margin:0;font-size:12.5px;color:var(--ink);flex:1}
.de-archivebar p b{color:var(--ink)}
.de-lockbar p b{color:var(--warn)}

/* панель доступа */
.de-access{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:14px 16px;margin-bottom:14px}
.de-access-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.de-access-h p{margin:0;font-size:13px;font-weight:600;display:flex;align-items:center;gap:7px}
.de-access-x{width:26px;height:26px;background:var(--bg-2);border:none;border-radius:7px;color:var(--text);cursor:pointer}
.de-access-row{display:flex;align-items:center;gap:10px;padding:7px 4px}
.de-access-row .nm{font-size:12.5px;font-weight:600;flex:1}
.de-access-row .nm .mut{font-weight:400;color:var(--muted)}
.de-access-row.pending{opacity:.85}
.de-access-row.pending .nm.mut{font-weight:400;color:var(--muted);font-size:12px;line-height:1.35}
.de-access-row.pending .de-avsm{display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:13px}
.de-perm{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;border-radius:6px;padding:3px 9px}
.de-perm .ti{font-size:13px}
.de-perm.rw{color:var(--ok);background:var(--ok-bg)}
.de-perm.ro{color:var(--text);background:var(--bg-2)}
.de-perm.toggle{border:none;cursor:pointer;font-family:inherit}
.de-perm.toggle:hover{filter:brightness(.97);outline:1px solid var(--border-2)}
.de-access-rm{width:24px;height:24px;flex:none;border:none;background:transparent;color:var(--muted);border-radius:6px;cursor:pointer;margin-left:4px}
.de-access-rm:hover{background:var(--danger-bg);color:var(--danger)}
.de-add-cand{display:flex;align-items:center;gap:9px;padding:6px 8px;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;text-align:left;width:100%}
.de-add-cand:hover{background:var(--card-3)}
.de-add-cand.on{border-color:var(--ok);background:var(--ok-bg)}
.de-add-cand .nm{font-size:12.5px;font-weight:600;color:var(--ink)}
.de-add-cand .nm .mut{font-weight:400;color:var(--muted)}
.de-avsm{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;flex:none}
.de-note{display:flex;align-items:center;gap:9px;background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:8px 12px}
.de-note .ti{font-size:15px;color:var(--muted);flex:none}
.de-note p{margin:0;font-size:11.5px;color:var(--text-3);line-height:1.4}

/* ---------- тулбар ---------- */
.de-toolbar-toggle{display:flex;align-items:center;justify-content:flex-end;margin-bottom:6px}
.de-tb-tgl{display:flex;align-items:center;gap:6px;height:26px;padding:0 10px;background:var(--surface);border:1px solid var(--border-soft);border-radius:20px;font-family:inherit;font-size:11px;font-weight:600;color:var(--text);cursor:pointer}
.de-tb-tgl .ti{font-size:13px}
.de-toolbar{background:var(--surface);border:1px solid var(--border-soft);border-radius:11px;padding:7px 10px;margin-bottom:10px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.de-ribbon{align-items:stretch;gap:0;padding:5px 7px;background:linear-gradient(180deg,var(--surface),var(--bg));overflow-x:auto;scrollbar-width:thin}
.de-ribbon-quick,.de-ribbon-send,.de-ribbon-tools{display:flex;align-items:center;gap:3px}
.de-ribbon-quick{padding:0 7px 0 1px;border-right:1px solid var(--border)}
.de-ribbon-send{margin-left:auto;padding-left:8px;gap:8px}
.de-ribbon-zoom{display:flex;align-items:center;gap:4px;margin-left:auto;padding:0 8px;border-left:1px solid var(--border);white-space:nowrap}
.de-ribbon-zoom-label{font:600 9px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.de-ribbon-zoom button{width:24px;height:24px;border:1px solid var(--border-soft);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1}
.de-ribbon-zoom button:hover{background:var(--card-3)}
.de-ribbon-zoom select{height:24px;min-width:64px;border:1px solid var(--border-soft);border-radius:6px;background:var(--surface);font:10.5px var(--mono);color:var(--text);padding:0 4px;cursor:pointer}
.de-ribbon-zoom .de-zoom-value{min-width:48px;text-align:center;font:600 10px var(--mono);color:var(--muted);white-space:nowrap}
.de-ribbon-zoom .focusbtn{width:auto;min-width:30px;height:26px;padding:0 8px;background:var(--highlight);border-color:var(--accent);font-weight:600;gap:5px}
.de-ribbon-zoom .focusbtn .ti{font-size:14px}
.de-ribbon-zoom .focusbtn .focus-label{font:600 10px var(--sans);white-space:nowrap}
.de-indent-flash{background:var(--ok-bg) !important;border-color:var(--ok) !important;transform:translateY(-1px);transition:background .12s,border-color .12s,transform .12s}
.de-ribbon-group{position:relative;min-width:max-content;margin:0;padding:0 7px;border-right:1px solid var(--border)}
.de-ribbon-group summary{display:block;position:absolute;bottom:0;left:0;right:0;height:15px;text-align:center;font-size:9px;line-height:15px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);list-style:none;pointer-events:none}
.de-ribbon-group summary::-webkit-details-marker{display:none}
.de-ribbon-tools{min-height:43px;padding:0 0 14px;flex-wrap:wrap;align-content:center}
.de-ribbon-group .de-tb-sel{max-width:138px}
.de-ribbon-group .de-tb-btn.on,.de-ribbon-group .de-find-nav.on{background:var(--accent);color:var(--ink);box-shadow:inset 0 -2px rgba(28,27,25,.14)}
.de-ribbon-group .de-tb-btn:hover{background:var(--bg-5)}
/* Активная команда должна оставаться читаемой на тёмной плашке: Chromium
   применял цвет .de-tb-btn.on к кнопке, а вложенный iconfont наследовал
   почти чёрный --ink и визуально превращал активную кнопку в квадрат. */
/* Активное состояние toggle-кнопок задаётся единообразно ниже: мягкий
   фирменный тинт вместо чёрной «плашки». Иконки явно наследуют тёмный цвет,
   поэтому iconfont не превращается в чёрный квадрат. */
.de-style-gallery{display:flex;gap:3px;min-width:310px}.de-style-gallery button{min-width:56px;height:42px;padding:4px 6px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--ink);font-family:var(--serif);text-align:left;cursor:pointer}.de-style-gallery button:hover{background:var(--bg-5);border-color:var(--border-soft)}.de-style-gallery button.on{background:var(--highlight);border-color:var(--accent)}.de-style-gallery b{display:block;font-size:11px;line-height:1.15}.de-style-gallery span{display:block;font-family:var(--sans);font-size:8px;color:var(--muted);margin-top:2px}.de-style-gallery button[data-style="h1"] b{font-size:13px}.de-style-gallery button[data-style="h2"] b{font-size:12px}.de-style-gallery button[data-style="h3"] b{font-size:11px}.de-style-gallery button[data-style="quote"] b{font-style:italic;font-weight:500}
/* Б1 r13: контраст WCAG AA — затемняем --muted ЛОКАЛЬНО в компонентах редактора
   (#767066 ≈ 4.77:1 на белом ≥ AA 4.5), не трогая общесистемный design-system.css */
.de,.de-popover,.de-modal-bg,.de-findbar,.de-norm,.de-mentionpop,.de-translate-bg,
.de-dictbar,.de-ctxmenu,.de-exportmenu,.de-pagesetup{--muted:#767066}
/* Б1 r13: видимый фокус клавиатуры (WCAG) для всех интерактивных элементов редактора */
.de-toolbar :focus-visible,.de-btn:focus-visible,.de-btn-prim:focus-visible,.de-ph:focus-visible,
.de-seg button:focus-visible,.de-sendmenu button:focus-visible,.de-numlib button:focus-visible,
.de-bullib button:focus-visible,.de-tabtype-menu :focus-visible,.de-mentionpop button:focus-visible,
.de-norm button:focus-visible,.de-modal :focus-visible,.de-findbar :focus-visible,
.de-access-row button:focus-visible,.de-ctxmenu button:focus-visible,.de-exportmenu button:focus-visible,
.de-ph2-btns button:focus-visible,.de-ver-sign:focus-visible,.de-pagesetup :focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:5px}
.de-doc:focus-visible{outline:none}
.de-tb-btn{width:32px;height:32px;background:transparent;border:none;border-radius:7px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-2);font-size:14px}
.de-tb-btn:hover{background:var(--card-3)}
.de-tb-btn.on{background:var(--bg-5);color:var(--ink)}
.de-disabled{pointer-events:none;opacity:1;filter:none}
.de-disabled .de-toolbar,.de-disabled .de-toolbar-collapsed{opacity:.52;filter:grayscale(.3)}
.de-doc .right{text-align:right}
.de-tb-btn .ti{font-size:17px}
.de-tb-btn.b{font-weight:700}
.de-tb-btn.i{font-style:italic}
.de-tb-btn.u{text-decoration:underline}
.de-ribbon .de-ribbon-group .de-tb-btn.on,
.de-ribbon .de-ribbon-group .de-tb-btn.on:hover,
.de-ribbon .de-ribbon-group .de-find-nav.on,
.de-ribbon .de-ribbon-group .de-find-nav.on:hover,
.de-toolbar .de-tb-btn.on,
.de-toolbar .de-tb-btn.on:hover,
.de-ribbon .de-ribbon-group .de-tb-btn.on i,
.de-toolbar .de-tb-btn.on i{background:var(--warn-bg);color:var(--ink-2);box-shadow:inset 0 0 0 1px #e5d6a6}
.de-tb-btn:active{transform:translateY(1px)}
.de-tb-btn:focus:not(:focus-visible){outline:none}
.de-tb-sep{width:1px;height:22px;background:var(--border);margin:0 4px}
.de-tb-sel{height:32px;border:1px solid var(--border-soft);border-radius:7px;background:var(--bg);font-family:inherit;font-size:12px;color:var(--ink-2);padding:0 8px;cursor:pointer}
/* Б6: длинный список размеров/шрифтов прокручивается штатно (нативный select) */
/* Б6: фолбэк-стеки для Word-шрифтов, которых может не быть в браузере — только отображение
   (сериализация читает чистое имя из inline font-family / face → в .docx уходит имя). */
.de-doc font[face="Cambria"],.de-doc [style*="font-family:Cambria"],.de-doc [style*="font-family: Cambria"]{font-family:Cambria,Georgia,"Times New Roman",serif!important}
.de-doc font[face="Garamond"],.de-doc [style*="font-family:Garamond"],.de-doc [style*="font-family: Garamond"]{font-family:Garamond,"EB Garamond",Georgia,serif!important}
.de-doc font[face="Calibri"],.de-doc [style*="font-family:Calibri"],.de-doc [style*="font-family: Calibri"]{font-family:Calibri,"Segoe UI",system-ui,sans-serif!important}
.de-doc font[face="Verdana"],.de-doc [style*="font-family:Verdana"],.de-doc [style*="font-family: Verdana"]{font-family:Verdana,Geneva,sans-serif!important}
.de-doc font[face="Arial"],.de-doc [style*="font-family:Arial"],.de-doc [style*="font-family: Arial"]{font-family:Arial,Helvetica,sans-serif!important}
.de-doc font[face="Courier New"],.de-doc [style*="font-family:Courier New"],.de-doc [style*="font-family: Courier New"]{font-family:"Courier New",Courier,monospace!important}
.de-tb-lbl{font-size:10.5px;color:var(--muted);margin-right:2px}
.de-ph{height:26px;padding:0 9px;background:var(--bg-2);border:1px dashed var(--border-3);border-radius:6px;font-family:var(--mono);font-size:11px;font-weight:500;color:var(--text);cursor:pointer}
.de-track-tgl{margin-left:auto;display:flex;align-items:center;gap:8px;padding-left:8px}
.de-track-tgl .t{font-size:12px;font-weight:600;color:var(--ink-2)}
.de-switch{position:relative;width:38px;height:22px;border-radius:20px;background:var(--border-6);cursor:pointer;flex:none;transition:background .15s}
.de-switch .knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.2);transition:left .15s}
.de-switch.on{background:var(--danger)}
.de-switch.on .knob{left:18px}

/* ---------- сетка редактора ---------- */
.de-grid{display:grid;grid-template-columns:176px minmax(0,1fr) 320px;gap:16px;align-items:start}
.de-grid.changes{grid-template-columns:minmax(0,1fr) 250px}
.de-grid.comments{grid-template-columns:minmax(0,1fr) 380px}

/* структура (outline) */
.de-outline{background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;padding:12px 8px;display:flex;flex-direction:column;gap:1px;position:sticky;top:0}
.de-outline .cap{margin:2px 8px 7px;font-family:var(--mono);font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.09em;color:var(--muted-3)}
.de-navi{display:block;padding:7px 8px;border-radius:7px;font-size:11.5px;color:var(--text-3);cursor:pointer;text-decoration:none}
.de-navi:hover{background:var(--card-3)}
.de-navi.active{font-weight:600;color:var(--ink);background:var(--bg-2)}
.de-navi.mut{color:var(--muted)}
.de-navi.sub{padding-left:18px;font-size:11px;color:var(--muted)}
.de-navi .badge{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--warn);color:var(--surface);font-size:8px;font-weight:700;margin-left:5px}

/* подложка-лист */
.de-paper-wrap{background:#f2f2f1;border:1px solid #e3e3e1;border-radius:12px;padding:18px 24px 54px;display:flex;flex-direction:column;align-items:center;overflow-y:auto;max-height:calc(100vh - 238px);min-height:calc(100vh - 250px)}
.de-paper-wrap.plain{padding:30px;align-items:center}
.de-ruler{width:100%;height:22px;flex:none;position:relative;margin-bottom:8px;overflow:visible;font-family:var(--mono)}
.de-ruler-scale{position:absolute;inset:0;overflow:hidden;border-radius:3px;background:#dcd6cc}
.de-ruler .rz{position:absolute;top:0;bottom:0}
.de-ruler .rz.gray{background:#dcd6cc}
.de-ruler .rz.white{background:#fdfcfa;box-shadow:inset 0 0 0 1px var(--bg-7)}
.de-ruler .rt{position:absolute;top:0;width:1px;background:#c7c1b6}
.de-ruler .rt.maj{height:8px;background:var(--muted-5)}
.de-ruler .rt.half{height:5px;background:var(--muted-3)}
.de-ruler .rt.min{height:3px}
.de-ruler .rn{position:absolute;top:9px;font-size:8.5px;color:var(--muted-5);width:16px;text-align:center;pointer-events:none}

.de-paper{width:100%;max-width:900px;background:var(--surface);box-shadow:0 6px 24px rgba(28,27,25,.14);border-radius:2px;font-family:'Newsreader','Times New Roman',Georgia,serif;font-size:14px;line-height:1.75;color:var(--ink);position:relative}
.de-doc.de-show-marks p::after,.de-doc.de-show-marks li::after{content:" ¶";color:var(--muted-4);font-family:var(--mono);font-size:.78em;font-weight:400;letter-spacing:0}
.de-doc.de-show-marks br::after{content:"↵";color:var(--muted-4);font-family:var(--mono);font-size:.78em}
.de-paper.review{width:100%;max-width:794px;min-height:1123px;box-sizing:border-box;padding:60px 68px;line-height:1.8;box-shadow:0 6px 24px rgba(28,27,25,.14)}
.de-paper.diff{max-width:680px;padding:60px 68px;line-height:1.85}
.de-paper-head,.de-paper-foot{display:flex;align-items:center;justify-content:space-between;padding:20px 76px 12px;font-family:var(--sans);font-size:9.5px;color:var(--muted-4);letter-spacing:.03em;text-transform:uppercase}
.de-paper-head{border-bottom:1px solid var(--bg-7)}
.de-paper-foot{border-top:1px solid var(--bg-7);text-transform:none;padding:12px 76px 20px}
/* Б12.7: колонтитулы — скрытие и подсказка редактирования */
.de-paper-head[hidden],.de-paper-foot[hidden]{display:none}
.de-paper-head,.de-paper-foot{cursor:text}
.de-editor-open .de-paper-head:hover,.de-editor-open .de-paper-foot:hover{background:rgba(58,86,200,.03);outline:1px dashed var(--border-2);outline-offset:-2px}
@media print{.de-paper-head:hover,.de-paper-foot:hover{background:none;outline:none}}
.de-doc{padding:34px 76px 8px;outline:none}
.de-doc:focus{outline:none}
.de-doc[contenteditable="true"]{caret-color:var(--ink)}

/* блоки документа */
.de-doc h2{text-align:center;font-size:16px;font-weight:700;margin:0 0 6px;letter-spacing:.02em}
.de-doc h3{font-size:14px;font-weight:700;margin:0 0 12px}
.de-doc p{margin:0 0 15px}
.de-doc .center{text-align:center}
.de-doc .justify{text-align:justify}
.de-doc .subtitle{text-align:center;font-size:12.5px;color:var(--text);margin:0 0 30px}
.de-doc .mut{color:var(--muted)}
.de-doc ul,.de-doc ol{margin:0 0 15px;padding-left:26px}
.de-doc li{margin:0 0 6px}
.de-doc blockquote{margin:0 0 15px;padding-left:14px;border-left:3px solid var(--border-3);color:var(--text);font-style:italic}
.de-doc table.de-tbl{border-collapse:collapse;width:100%;margin:0 0 15px;font-size:13px;table-layout:fixed}
.de-doc table.de-tbl td,.de-doc table.de-tbl th{border:1px solid #b8b1a6;padding:6px 9px;vertical-align:top;word-wrap:break-word}
.de-doc table.de-tbl th{background:var(--bg-5);font-weight:600;text-align:left}
.de-doc table.de-tbl.hashead tr:first-child td{background:var(--bg-5);font-weight:600}
/* пикер-сетка таблицы */
.de-tablepicker{width:auto;padding:9px}
.de-tablepicker .tp-label{font-size:11px;color:var(--muted);text-align:center;margin-bottom:6px;font-family:var(--mono)}
.de-tablepicker .tp-grid{display:grid;gap:2px}
.de-tablepicker .tp-cell{width:16px;height:16px;border:1px solid var(--border-2);background:var(--surface);border-radius:2px}
.de-tablepicker .tp-cell.on{background:var(--ok-bg);border-color:var(--ok)}
.de-ph-run{background:var(--bg-2);border:1px dashed var(--border-3);border-radius:4px;padding:0 4px;font-family:var(--mono);font-size:12px;color:var(--text)}
/* Б7: заполненный плейсхолдер — значение в тексте (не моно, мягкая заливка); незаполненный — жёлтый */
.de-ph-run.de-ph-filled{background:rgba(58,86,200,.08);border:1px solid rgba(58,86,200,.22);border-radius:4px;font-family:inherit;color:var(--ink)}
.de-ph-run.de-ph-unresolved{background:#fdf3d6;border:1px dashed var(--warn);color:#8a6d1f}
.de-ph-run.de-ph-print-empty{background:#fdf3d6;border:1px dashed var(--warn);color:#8a6d1f;font-family:var(--mono)}
@media print{.de-ph-run.de-ph-filled{background:transparent;border:none;padding:0}}

/* маркировка правок/якорей внутри листа */
.de-ins{text-decoration:underline;text-decoration-color:var(--ok);text-decoration-thickness:2px;color:#1c6b45;background:var(--ok-bg)}
.de-del{text-decoration:line-through;color:var(--danger)}
.de-anchor{padding:0 1px;cursor:pointer;border-bottom:2px solid var(--warn);background:#faf1de}
.de-anchor.gold{border-color:var(--warn);background:#faf1de}
.de-anchor.green{border-color:var(--ok);background:var(--ok-bg)}
.de-anchor.blue{border-color:var(--info);background:var(--ok-bg)}
.de-anchor.client{border-color:var(--info);background:var(--info-bg)}
.de-anchor.flash{animation:de-flash 1.4s ease}
@keyframes de-flash{0%{background:#ffe9a8}100%{}}
.de-sup{color:var(--surface);font-size:9px;font-weight:700;border-radius:50%;width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;margin-left:3px;cursor:pointer;font-style:normal;vertical-align:super}
.de-sup.gold{background:var(--warn)}
.de-sup.green{background:var(--ok)}
.de-sup.blue{background:var(--info)}

.de-paper-status{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:900px;padding:10px 2px 2px;font-size:11px;color:var(--muted)}
.de-paper-status .ok .ti{color:var(--ok)}
.de-zoom{display:flex;align-items:center;gap:8px}
.de-zoom button{width:20px;height:20px;background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:14px}
.de-zoom .z{font-family:var(--mono);font-size:10.5px}

/* ---------- правая панель ---------- */
.de-side{background:var(--surface);border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;min-width:0;min-height:420px;box-shadow:0 1px 2px rgba(28,27,25,.03)}
.de-seg{display:flex;flex-wrap:wrap;padding:7px;gap:3px;border-bottom:1px solid var(--bg-4);background:var(--surface)}
.de-seg button{flex:1 1 auto;min-width:50px;border:none;border-radius:8px;background:transparent;font-family:inherit;font-size:11px;font-weight:500;color:var(--text-3);padding:8px 2px;cursor:pointer;white-space:nowrap}
.de-seg button.on{background:var(--highlight);font-weight:600;color:var(--ink);box-shadow:0 1px 2px rgba(181,133,31,.18)}
.de-side-body{padding:12px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}

/* карточки комментариев */
.de-cmt{border:1px solid var(--border);border-radius:11px;padding:12px}
.de-cmt.open{border-color:#f0dfb4;background:#fefaf1}
.de-cmt.client{border-color:#cdd7f5;background:#f8f9fe}
.de-cmt.resolved{opacity:.72}
.de-cmt-h{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.de-cmt-h .nm{font-size:12px;font-weight:600}
.de-cmt-h .num{font-family:var(--mono);font-size:9px;font-weight:700;color:var(--surface);border-radius:9px;padding:1px 6px}
.de-cmt-h .num.gold{background:var(--warn)}
.de-cmt-h .num.green{background:var(--ok)}
.de-cmt-h .num.blue{background:var(--info)}
.de-cmt-h .time{margin-left:auto;font-size:10px;color:var(--muted)}
.de-cmt-h .done{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;color:var(--ok)}
.de-badge-client{font-family:var(--mono);font-size:9px;font-weight:700;background:var(--warn);color:var(--surface);border-radius:5px;padding:2px 6px}
/* Б17.2: поручения */
.de-badge-task{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;font-weight:700;background:var(--accent);color:var(--surface);border-radius:5px;padding:2px 6px;margin-left:4px}
.de-badge-task .ti{font-size:11px}
.de-cmt-assignee{display:flex;align-items:center;gap:6px;margin:6px 0 0;padding:5px 8px;background:rgba(58,86,200,.06);border-radius:8px;font-size:11.5px;color:var(--text)}
.de-cmt-assignee b{font-weight:600}
.de-mentionpop{position:absolute;z-index:500;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;box-shadow:var(--shadow-lg);padding:5px;max-height:260px;overflow:auto}
.de-mentionpop button{display:flex;align-items:center;gap:8px;width:100%;height:38px;padding:0 9px;background:transparent;border:none;border-radius:7px;cursor:pointer;text-align:left}
.de-mentionpop button:hover,.de-mentionpop button.active{background:var(--card-3)}
.de-mentionpop button.active{outline:1px solid var(--accent);outline-offset:-1px}
.de-mentionpop .nm{font-size:12.5px;color:var(--ink);font-weight:500}
.de-mentionpop em{margin-left:auto;font-size:10.5px;color:var(--muted);font-style:normal}
.de-quote{margin:0 0 8px;font-size:10.5px;color:var(--muted-2);background:var(--surface);border-radius:6px;padding:4px 8px;border-left:2px solid var(--warn)}
.de-quote.green{border-color:var(--ok);background:var(--ok-bg)}
.de-quote.blue{border-color:var(--info);color:#5566b8}
.de-quote.mut{border-color:var(--border-3);background:var(--bg)}
.de-cmt-body{margin:0 0 8px;font-size:12px;color:var(--ink-2);line-height:1.5}
.de-cmt-body a{color:var(--info);font-weight:600;text-decoration:none}
.de-reply{display:flex;gap:8px;padding-left:12px;border-left:2px solid #f0dfb4;margin-bottom:8px}
.de-reply .a{width:20px;height:20px;border-radius:50%;background:var(--primary);color:var(--surface);display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:600;flex:none}
.de-reply p{margin:0;font-size:11.5px;color:var(--ink-2);line-height:1.5}
.de-cmt-actions{display:flex;gap:7px;align-items:center}
.de-mini{display:flex;align-items:center;gap:5px;height:26px;padding:0 9px;background:var(--surface);border:1px solid var(--border-soft);border-radius:7px;font-size:11px;font-weight:600;color:var(--text);cursor:pointer}
.de-mini .ti{font-size:13px;color:var(--ok)}
.de-replybox{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--border-soft);border-radius:10px;padding:6px 6px 6px 12px}
.de-replybox input{flex:1;font-size:12px;color:var(--ink);background:transparent;border:none;outline:none;font-family:inherit}
.de-replybox input::placeholder{color:var(--muted)}
.de-send{width:32px;height:32px;background:var(--primary);border:none;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.de-send .ti{font-size:15px;color:var(--surface)}
.de-morelink{text-align:center;font-size:11.5px;color:var(--info);text-decoration:none;font-weight:600;cursor:pointer}

/* правки-панель (мини) */
.de-revrow{border:1px solid var(--border);border-radius:10px;padding:10px 11px}
.de-revrow p{margin:0 0 4px;font-size:11.5px;color:var(--ink-2)}
.de-revrow p.m{margin:0;font-size:10.5px;color:var(--muted)}
.de-count{font-size:12px;color:var(--text)}
.de-count b{color:var(--ink)}

/* версии-мини */
.de-ver{padding:11px 12px;border-radius:10px;cursor:pointer}
.de-ver.cur{background:var(--bg);border:1px solid var(--border)}
.de-ver:hover{background:var(--card-3)}
.de-ver-h{display:flex;align-items:center;gap:8px;margin-bottom:3px}
.de-ver-h .avs{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600}
.de-ver-h .t{font-size:12.5px;font-weight:600}
.de-ver .m{margin:0 0 0 32px;font-size:11px;color:var(--muted)}
/* Б17: подписанные версии */
.de-verlist{display:flex;flex-direction:column;gap:4px;max-height:340px;overflow:auto}
.de-ver-h .t{flex:1}
.de-ver-sign{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;border-radius:6px;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .12s}
.de-ver:hover .de-ver-sign{opacity:1}
.de-ver-sign:hover{background:var(--card-3);border-color:var(--border);color:var(--ink)}
.de-ver-badge{display:inline-flex;align-items:center;gap:4px;margin:2px 0 0 32px;padding:1px 8px;background:rgba(180,69,59,.1);color:var(--primary,var(--danger));border-radius:20px;font-size:10.5px;font-weight:600}
.de-ver-badge .ti{font-size:11px}
.de-ver.signed{border-left:3px solid var(--primary,var(--danger));padding-left:9px;background:rgba(180,69,59,.03)}
.de-ver.signed .t{font-weight:600}
.de-ver.auto{opacity:.9}
.de-ver.auto .t{font-weight:400;color:var(--text)}
/* Версии: свёрнутая группа автосохранений */
.de-autosaves-h{display:flex;align-items:center;gap:6px;width:100%;margin-top:8px;padding:6px 4px;background:transparent;border:none;border-top:1px dashed var(--border);border-radius:0;font-family:inherit;font-size:11.5px;font-weight:600;color:var(--muted);cursor:pointer;text-align:left}
.de-autosaves-h:hover{color:var(--ink)}
.de-autosaves-h .ti{font-size:14px}
.de-autosaves{margin-top:4px;padding-left:4px;border-left:2px solid var(--border-soft)}
/* сублайн: веха вместо голого счётчика */
.de-milestone{display:inline-flex;align-items:center;gap:4px;cursor:default}
.de-milestone .ti{font-size:12px;color:var(--primary,var(--danger))}

/* свойства */
.de-props{padding:14px 15px}
.de-props .cap{margin:0 0 9px;font-family:var(--mono);font-size:9.5px;font-weight:500;text-transform:uppercase;letter-spacing:.09em;color:var(--muted-3)}
.de-props .kv{display:flex;justify-content:space-between;font-size:12px;margin-bottom:7px}
.de-props .kv .k{color:var(--muted)}
.de-props .kv .v{font-weight:500}
.de-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:3px}
.de-tag{font-size:10px;font-weight:600;color:var(--ink);background:var(--primary-bg);border-radius:5px;padding:2px 7px}
.de-tag.priv{color:var(--danger);background:var(--danger-bg)}

/* ---------- track-changes экран ---------- */
.de-legend{display:flex;align-items:center;gap:18px;background:var(--surface);border:1px solid var(--border-soft);border-radius:11px;padding:9px 16px;margin-bottom:16px;flex-wrap:wrap}
.de-legend span{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-2)}
.de-legend .bar{width:22px;height:2px;display:inline-block}
.de-legend .bar.ins{background:var(--ok)}
.de-legend .bar.del{background:var(--danger)}
.de-legend .who{margin-left:auto;font-size:11.5px;color:var(--muted)}
.de-review-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.de-review-actions button:disabled{opacity:.45;cursor:not-allowed}
.de-review-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}
.de-review-summary button{display:flex;align-items:center;gap:8px;min-width:0;padding:9px 11px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface);font:inherit;color:var(--muted);cursor:pointer;text-align:left}
.de-review-summary button:hover,.de-review-summary button.on{border-color:var(--border-2);background:var(--card-3);color:var(--ink)}
.de-review-summary .n{display:flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:8px;background:var(--bg-2);font:600 12px var(--mono);color:var(--ink)}
.de-review-summary .n.pending{background:var(--warn-bg);color:var(--warn)}
.de-review-summary .n.accepted{background:var(--ok-bg);color:var(--ok)}
.de-review-summary .n.rejected{background:var(--danger-bg);color:var(--danger)}
.de-review-summary button span:last-child{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.de-margin{display:flex;flex-direction:column;gap:10px}
.de-mcard{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--ok);border-radius:11px;padding:12px 13px;box-shadow:0 1px 2px rgba(28,27,25,.04)}
.de-mcard.del{border-left-color:var(--danger)}
.de-mcard.replace{border-left-color:var(--warn)}
.de-mcard.decided{opacity:.5}
.de-mcard-h{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.de-mcard-h .a{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:8.5px;font-weight:600}
.de-mcard-h .nm{font-size:11.5px;font-weight:600}
.de-rev-time{margin-left:auto;font-size:10px;color:var(--muted-3);white-space:nowrap}
.de-client-revision-badge{display:inline-block;margin-left:5px;padding:2px 5px;border-radius:4px;background:#fff3c4;color:#7a5c17;font-size:8px;letter-spacing:.04em;vertical-align:middle}
.de-mcard p{margin:0 0 9px;font-size:11.5px;color:var(--ink-2);line-height:1.5}
.de-change-type{display:inline-flex;align-items:center;gap:5px;margin:2px 0 8px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ok)}
.de-change-type.del{color:var(--danger)}
.de-change-type.replace{color:var(--warn)}
.de-change-type .ti{font-size:13px}
.de-change-value{padding:8px 9px;border-radius:7px;margin:4px 0;font-size:11.5px;line-height:1.45;overflow-wrap:anywhere}
.de-change-value.old{background:var(--danger-bg);color:var(--danger);text-decoration:line-through}
.de-change-value.new,.de-change-value.insert{background:var(--ok-bg);color:var(--ok)}
.de-context-link{display:inline-flex;align-items:center;gap:5px;margin:4px 0 9px;border:0;background:transparent;color:var(--info-3);font:500 10.5px var(--sans);padding:0;cursor:pointer}
.de-context-link:hover{text-decoration:underline}
.de-context-link .ti{font-size:13px}
.de-mcard-actions{display:flex;gap:6px}
.de-mcard-actions button{flex:1;height:28px;border-radius:7px;font-family:inherit;font-size:11px;cursor:pointer}
.de-mcard-actions .acc{background:var(--primary);border:none;font-weight:600;color:var(--surface)}
.de-mcard-actions .rej{background:var(--surface);border:1px solid var(--border-2);font-weight:500;color:var(--text)}
.de-mcard .verdict{font-size:11px;font-weight:600;text-align:center;padding-top:4px}
.de-mcard .verdict.acc{color:var(--ok)}
.de-mcard .verdict.rej{color:var(--danger)}
.de-review-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:180px;padding:22px;text-align:center;color:var(--muted);border:1px dashed var(--border-2);border-radius:12px;background:var(--bg)}
.de-review-empty .ti{font-size:27px;color:var(--ok);margin-bottom:8px}
.de-review-empty b{font-size:13px;color:var(--ink);margin-bottom:5px}
.de-review-empty span{max-width:230px;font-size:11.5px;line-height:1.45}
@media (max-width:700px){.de-review-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.de-review-actions{width:100%}.de-review-actions button{flex:1;justify-content:center}}

/* ---------- versions/diff экран ---------- */
/* киллер-фича: плашка «правки клиента из файла …» над сравнением версий */
.de-import-banner{display:flex;align-items:center;gap:10px;background:linear-gradient(90deg,#fff8e6,#fffdf5);border:1px solid #f0dca0;border-left:4px solid #e0a800;border-radius:11px;padding:11px 14px;margin-bottom:14px;font-size:13.5px;color:#5a4a10;box-shadow:0 1px 2px rgba(120,90,0,.06)}
.de-import-banner .ti{font-size:18px;color:#c99400;flex-shrink:0}
.de-import-banner b{font-weight:700;color:#3a2f05}
.de-import-x{margin-left:auto;flex-shrink:0;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:#a8935a;border-radius:7px;cursor:pointer}
.de-import-x:hover{background:#f0e4c0;color:#5a4a10}
.de-spin{display:inline-block;animation:de-spin 0.8s linear infinite}
@keyframes de-spin{to{transform:rotate(360deg)}}
.de-vselect{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:12px 16px;margin-bottom:16px;flex-wrap:wrap}
.de-vselect select{height:36px;border:1px solid var(--border-2);border-radius:9px;background:var(--bg);font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--ink-2);padding:0 12px;cursor:pointer}
.de-vselect .arr{font-size:18px;color:var(--muted-3)}
.de-vlegend{margin-left:auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.de-vlegend span{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-2)}
.de-vlegend .bar{width:18px;height:2px;display:inline-block}
.de-vlegend .bar.ins{background:var(--ok)}
.de-vlegend .bar.del{background:var(--danger)}
.de-vlegend .cnt{font-family:var(--mono);font-size:11px;color:var(--muted)}
.de-diff-ins{background:var(--ok-bg);color:#1c6b45}
.de-diff-del{text-decoration:line-through;color:var(--danger)}

/* ---------- плавающее меню выделения (комментарий/правка) ---------- */
.de-float{position:absolute;z-index:120;display:flex;gap:2px;background:var(--primary);border-radius:9px;padding:4px;box-shadow:0 6px 20px rgba(28,27,25,.28)}
.de-float button{display:flex;align-items:center;gap:5px;height:28px;padding:0 10px;background:transparent;border:none;border-radius:6px;color:var(--surface);font-family:inherit;font-size:11.5px;font-weight:600;cursor:pointer}
.de-float button:hover{background:rgba(255,255,255,.14)}
.de-float button .ti{font-size:14px}

/* ---------- своя модаль подтверждения (без блокирующих браузерных диалогов) ---------- */
.de-modal-bg{position:fixed;inset:0;background:rgba(28,27,25,.42);z-index:400;display:flex;align-items:center;justify-content:center;padding:20px}
.de-modal{background:var(--surface);border-radius:16px;max-width:420px;width:100%;padding:22px 22px 18px;box-shadow:0 18px 60px rgba(28,27,25,.3)}
.de-modal h3{margin:0 0 8px;font-size:16px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:9px}
.de-modal h3 .ti{font-size:20px;color:var(--danger)}
.de-modal p{margin:0 0 18px;font-size:13px;color:var(--text);line-height:1.5}
.de-modal-actions{display:flex;gap:9px;justify-content:flex-end}

/* #8 колонки */
.de-doc[style*="column-count"]{column-rule:1px solid var(--bg-7)}
/* #9 нумерация строк (v1: по абзацам) */
.de-doc.de-linenums{counter-reset:lnum}
.de-doc.de-linenums>p,.de-doc.de-linenums>h2,.de-doc.de-linenums>h3,.de-doc.de-linenums>blockquote{position:relative;counter-increment:lnum}
.de-doc.de-linenums>p::before,.de-doc.de-linenums>h2::before,.de-doc.de-linenums>h3::before,.de-doc.de-linenums>blockquote::before{content:counter(lnum);position:absolute;left:-46px;width:30px;text-align:right;font-family:var(--mono);font-size:10px;color:var(--muted-3);user-select:none}
/* #10 перекрёстная ссылка */
.de-xref{color:var(--info-3);background:#eef4fb;border-radius:5px;padding:0 5px;font-size:.94em;cursor:pointer;white-space:nowrap}
.de-xref:hover{background:#dceaf6;text-decoration:underline}
.de-doc p.de-toc-row{cursor:default}
/* battle #4 маркеры полей страницы на линейке */
.de-mgnh{position:absolute;top:0;bottom:0;width:9px;margin-left:-4px;cursor:ew-resize;z-index:2}
.de-mgnh::before{content:"";position:absolute;top:3px;left:3px;width:3px;height:9px;background:var(--muted-5);border-radius:1px}
.de-mgnh:hover::before,.de-mgnh.drag::before{background:var(--accent)}

/* 2.4 вертикальная линейка слева (серые верх/низ поля, шкала в см, ручки полей) */
.de-vruler{position:absolute;left:0;top:0;bottom:0;width:15px;min-height:100%;z-index:3;font-family:var(--mono);pointer-events:none;display:block!important;visibility:visible!important}
.de-vruler-scale{position:absolute;inset:0;overflow:hidden;background:#fdfcfa;box-shadow:inset -1px 0 0 var(--bg-7)}
.de-vruler .vz{position:absolute;left:0;right:0}
.de-vruler .vz.gray{background:#dcd6cc}
.de-vruler .vt{position:absolute;right:0;height:1px;background:#c7c1b6}
.de-vruler .vt.maj{width:8px;background:var(--muted-5)}
.de-vruler .vt.half{width:5px;background:var(--muted-3)}
.de-vruler .vt.min{width:3px}
.de-vruler .vn{position:absolute;right:2px;font-size:7.5px;line-height:1;color:var(--muted-5);pointer-events:none}
.de-vmgnh{position:absolute;left:0;right:0;height:9px;margin-top:-4px;cursor:ns-resize;z-index:2;pointer-events:auto}
.de-vmgnh::before{content:"";position:absolute;left:3px;top:3px;height:3px;width:9px;background:var(--muted-5);border-radius:1px}
.de-vmgnh:hover::before,.de-vmgnh.drag::before{background:var(--accent)}

/* 2.5 левые табуляторы: угловой селектор типа, маркеры ⌐, символ табуляции */
.de-tabtype{position:absolute;left:0;top:0;width:15px;height:22px;z-index:3;border:none;border-right:1px solid #d8d2c8;background:var(--bg-5);color:#6b655b;font-size:12px;line-height:20px;text-align:center;cursor:pointer;padding:0;font-family:var(--mono)}
.de-tabtype:hover{background:#e3ddd2;color:var(--accent)}
/* Б3: маркеры табуляторов — глиф типа (⌐ левый / ┴ центр / ¬ правый / ◆ десятичный) */
.de-rtab{position:absolute;bottom:-2px;height:12px;margin-left:-5px;cursor:grab;z-index:2;font-size:11px;line-height:12px;color:#5a5148;text-align:center;min-width:10px;user-select:none}
.de-rtab:hover,.de-rtab.drag{color:var(--accent)}
.de-rtab.willdel{opacity:.4;color:var(--danger)}
.de-tab{display:inline-block;white-space:pre;vertical-align:baseline}
.de-tabtype-menu{padding:6px;min-width:210px;font-size:12.5px}
.de-tabtype-menu .de-tt-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px}
.de-tabtype-menu .de-tt-row .g{display:inline-block;width:16px;text-align:center;font-family:var(--mono);color:var(--muted-5)}
.de-tabtype-menu .de-tt-row.on{background:#eef4ff;color:var(--ink);font-weight:600}
.de-tabtype-menu .de-tt-row.off{color:var(--muted-4)}
.de-tabtype-menu .de-tt-note{margin-top:6px;padding:6px 8px;font-size:11px;line-height:1.45;color:var(--muted);border-top:1px solid var(--border-soft)}

/* 2.6 уголки границ текстовой зоны (как в Word Mac) */
.de-tcorners{position:absolute;inset:0;pointer-events:none;z-index:1}
.de-tcorner{position:absolute;width:14px;height:14px;pointer-events:none}
.de-tcorner.tl{border-left:1.5px solid var(--border-10);border-top:1.5px solid var(--border-10)}
.de-tcorner.tr{border-right:1.5px solid var(--border-10);border-top:1.5px solid var(--border-10)}
.de-tcorner.bl{border-left:1.5px solid var(--border-10);border-bottom:1.5px solid var(--border-10)}
.de-tcorner.br{border-right:1.5px solid var(--border-10);border-bottom:1.5px solid var(--border-10)}

/* сноски (footnotes) */
.de-fnref{color:var(--danger);font-weight:600;font-size:.7em;vertical-align:super;cursor:default;padding:0 1px}
.de-footnotes{margin-top:28px;padding-top:10px;border-top:1px solid var(--border-3);font-size:11.5px;color:var(--text)}
.de-footnotes .de-fn-cap{font-family:var(--sans);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:5px}
.de-footnotes ol{margin:0;padding-left:22px}
.de-footnotes li{margin-bottom:3px;line-height:1.4}

/* контекстное меню (правый клик) */
.de-ctxmenu{position:absolute;z-index:300;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;box-shadow:var(--shadow-lg);padding:5px;min-width:196px;display:flex;flex-direction:column;gap:1px}
.de-ctxmenu button{display:flex;align-items:center;gap:9px;height:32px;padding:0 10px;background:transparent;border:none;border-radius:7px;font-family:inherit;font-size:12.5px;color:var(--ink);cursor:pointer;text-align:left}
.de-ctxmenu button:hover{background:var(--card-3)}
.de-ctxmenu .ti{font-size:15px;color:var(--muted)}
.de-ctxmenu .sep{height:1px;background:var(--border);margin:4px 6px}
/* быстрые символы */
.de-symbols{display:grid;grid-template-columns:repeat(6,30px);gap:3px}
.de-symbols button{width:30px;height:30px;border:1px solid transparent;border-radius:7px;background:var(--surface);cursor:pointer;font-size:15px}
.de-symbols button:hover{background:var(--card-3);border-color:var(--border-2)}

/* разметка страницы (ориентация/размер/поля) */
.de-pagesetup{width:290px;padding:12px}
.de-pagesetup .ps-sec{margin-bottom:12px}
.de-pagesetup .ps-sec:last-child{margin-bottom:0}
.de-pagesetup .ps-sec>p{margin:0 0 6px;font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.de-pagesetup .ps-row{display:flex;gap:6px}
.de-pagesetup .ps-row button{display:inline-flex;align-items:center;justify-content:center;gap:5px}
.de-pagesetup .ps-cust{margin-top:8px}
.de-pagesetup .ps-cust label{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);flex-wrap:wrap}
.de-pagesetup .ps-cust input{width:42px;height:26px;border:1px solid var(--border-soft);border-radius:6px;padding:0 4px;font-family:var(--mono);font-size:11px}

/* многоуровневый нумерованный список 1 / 1.1 / 1.1.1 (CSS-счётчики) */
.de-doc ol.de-mln, .de-doc ol.de-mln ol{counter-reset:mln;list-style:none;padding-left:26px}
.de-doc ol.de-mln li{list-style:none}
.de-doc ol.de-mln > li, .de-doc ol.de-mln ol > li{counter-increment:mln}
.de-doc ol.de-mln li::marker{content:none}
.de-doc ol.de-mln li::before{content:counters(mln, ".") ". ";font-weight:inherit;color:inherit}
.de-doc p[data-btype="paragraph"],.de-doc p:not([data-btype]),.de-doc li[data-bid]{hyphens:auto;overflow-wrap:break-word}
.de-tb-btn.narrow{width:16px}
.de-size-input{width:52px;min-width:52px;padding:0 5px}
.de-size-combo{position:relative;display:inline-flex;align-items:center;gap:0}
.de-size-combo .de-size-input{width:42px;min-width:42px;height:32px;border-radius:7px 0 0 7px;text-align:center}
.de-size-toggle{width:18px;height:32px;border:1px solid var(--border-soft);border-left:0;border-radius:0 7px 7px 0;background:var(--surface);color:var(--muted);cursor:pointer;padding:0;font-size:12px;line-height:1}
.de-size-toggle:hover{background:var(--card-3);color:var(--text)}
.de-size-menu{position:absolute;top:36px;left:0;z-index:620;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;width:116px;padding:5px;background:var(--surface);border:1px solid var(--border-soft);border-radius:8px;box-shadow:var(--shadow-lg)}
.de-size-menu[hidden]{display:none}
.de-size-option{height:25px;border:0;border-radius:5px;background:transparent;color:var(--text);font:11px var(--mono);cursor:pointer}
.de-size-option:hover{background:var(--highlight);color:var(--ink)}
.de-para-spacing{width:190px;padding:10px;display:grid;gap:8px}
.de-para-spacing label{display:grid;gap:4px;font-size:11px;color:var(--muted)}
.de-para-spacing input{height:27px;border:1px solid var(--border-soft);border-radius:6px;padding:0 7px;font:12px var(--mono)}
.de-spell-sel{max-width:132px}
.de-stats{max-width:390px}
.de-stats dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 14px}
.de-stats dl div{padding:10px;border:1px solid var(--border-soft);border-radius:8px;background:var(--card-2)}
.de-stats dt{font-size:11px;color:var(--muted)}
.de-stats dd{margin:4px 0 0;font:600 18px var(--mono)}
::highlight(de-find){background:color-mix(in srgb,var(--warn) 40%,transparent);color:inherit}
.de-clauses{max-width:760px}.de-clauses-grid{display:grid;grid-template-columns:210px 1fr;min-height:330px;border:1px solid var(--border-soft);border-radius:9px;overflow:hidden}.de-clause-cats{padding:7px;border-right:1px solid var(--border-soft);overflow:auto}.de-clause-cats button{display:block;width:100%;padding:8px;text-align:left;border:0;border-radius:6px;background:transparent;font:12px inherit;cursor:pointer}.de-clause-cats button:hover,.de-clause-cats button.on,.de-clause-tones button.on{background:var(--bg-5);color:var(--ink)}.de-clause-view{padding:12px}.de-clause-tones{display:flex;gap:5px}.de-clause-tones button{border:1px solid var(--border-soft);border-radius:6px;background:var(--surface);padding:5px 8px;cursor:pointer}.de-clause-view pre{white-space:pre-wrap;min-height:205px;margin:10px 0;padding:10px;border-radius:7px;background:var(--card-2);font:12px/1.55 var(--font,inherit)}
/* Клаузы — выезжающая рабочая панель, а не центральное модальное окно. */
#deClausesModal{align-items:stretch;justify-content:flex-end;padding:0;background:rgba(28,27,25,.18)}
#deClausesModal .de-clauses{width:min(760px,94vw);max-width:none;border-radius:16px 0 0 16px;padding:18px;overflow:auto;animation:de-panel-in .18s ease-out}
.de-findbar{top:78px;right:18px;border-left:3px solid var(--accent);animation:de-panel-in .16s ease-out}
.de-ai-panel{position:fixed;top:78px;right:18px;z-index:510;width:min(420px,calc(100vw - 36px));background:var(--surface);border:1px solid var(--border-soft);border-left:3px solid var(--accent);border-radius:14px;box-shadow:var(--shadow-lg);padding:14px;animation:de-panel-in .16s ease-out;color:var(--text)}
.de-ai-head{display:flex;align-items:center;justify-content:space-between;font-size:14px;margin-bottom:10px}.de-ai-head b{display:flex;align-items:center;gap:7px}.de-ai-head .ti{color:var(--accent);font-size:17px}.de-ai-head button{border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer}
.de-ai-safe{margin:0 0 12px;padding:8px 9px;border-radius:8px;background:var(--ok-bg);color:var(--ok-text);font-size:11px;line-height:1.4}.de-ai-safe .ti{margin-right:4px}.de-ai-panel label{display:block;margin:9px 0 5px;font:600 10px var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.de-ai-quote{max-height:74px;overflow:auto;padding:8px;border:1px solid var(--border-soft);border-radius:7px;background:var(--card-2);font-size:12px;line-height:1.45}.de-ai-panel textarea{width:100%;min-height:72px;resize:vertical;box-sizing:border-box;border:1px solid var(--border-soft);border-radius:7px;padding:8px;font:12px/1.45 var(--sans);color:var(--text);background:var(--surface)}.de-ai-actions{display:flex;gap:7px;justify-content:flex-end;margin-top:10px}.de-ai-note{margin:10px 0 0;color:var(--muted);font-size:10.5px;line-height:1.4}
@keyframes de-panel-in{from{transform:translateX(18px);opacity:.4}to{transform:translateX(0);opacity:1}}
@media (max-width:1180px){.de-ribbon{display:block;padding:4px}.de-ribbon-quick,.de-ribbon-send{display:flex;min-height:37px;border:0;padding:3px 4px}.de-ribbon-zoom{margin:0;justify-content:flex-end;border:0;border-top:1px solid var(--border);padding:5px 4px}.de-ribbon-send{justify-content:space-between;margin:0;border-top:1px solid var(--border)}.de-ribbon-group{border:0;border-top:1px solid var(--border);padding:0}.de-ribbon-group summary{position:static;pointer-events:auto;height:31px;line-height:31px;text-align:left;padding:0 8px;cursor:pointer;font-size:10px}.de-ribbon-group summary::after{content:"⌄";float:right;color:var(--muted)}.de-ribbon-group .de-ribbon-tools{display:none;padding:5px 8px 8px;min-height:0}.de-ribbon-group[open] .de-ribbon-tools{display:flex}.de-ribbon-group[open] summary::after{content:"⌃"}}
@media (max-width:1280px){
  .de-grid{grid-template-columns:148px minmax(0,1fr) 288px;gap:10px}
  .de-grid.nooutline{grid-template-columns:32px minmax(0,1fr) 288px}
  .de-paper-wrap{padding-left:16px;padding-right:16px}
}
@media (max-width:1024px){
  .de-grid,.de-grid.nooutline,.de-grid.changes,.de-grid.comments{grid-template-columns:minmax(0,1fr)}
  .de-outline,.de-outline-rail{display:none}
  .de-side{order:3}
  .de-paper-wrap{max-height:none;min-height:calc(100vh - 220px);padding-left:12px;padding-right:12px}
  .de-paper{max-width:900px}
}
@media (max-width:620px){.de-ribbon-quick .de-tb-btn:nth-child(2),.de-ribbon-quick .de-tb-btn:nth-child(4){display:none}.de-track-tgl .t{display:none}.de-tb-send{font-size:11px;padding:0 9px}.de-style-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;width:100%}.de-style-gallery button{min-width:0}.de-clauses-grid{grid-template-columns:1fr;min-height:auto}.de-clause-cats{max-height:130px;border-right:0;border-bottom:1px solid var(--border-soft)}#deClausesModal .de-clauses{width:100%;border-radius:0}.de-findbar{top:auto;bottom:0;left:0;right:0;width:auto;border-radius:14px 14px 0 0}}
/* Б11-расш: сплит-кнопка списка (основная + ▾ библиотека) — визуально одна */
.de-split{display:inline-flex;align-items:center;border-radius:7px}
.de-split:hover{background:var(--card-3)}
.de-split .de-tb-btn{border-radius:7px 0 0 7px}
.de-split .de-tb-btn.narrow{border-radius:0 7px 7px 0;border-left:1px solid var(--border);color:var(--muted)}
.de-split .de-tb-btn.narrow .ti{font-size:13px}
.de-split .de-tb-btn:hover{background:var(--card-2)}
.de-bullib{display:flex;gap:3px}
.de-bullib button{width:30px;height:30px;border:1px solid transparent;border-radius:7px;background:var(--surface);cursor:pointer;display:flex;align-items:center;justify-content:center}
.de-bullib button:hover{background:var(--card-3);border-color:var(--border-2)}
.de-bullib .mk{font-size:16px;line-height:1}
/* Б11: библиотека нумерации */
.de-numlib{display:flex;flex-direction:column;gap:1px;min-width:210px}
.de-numlib button{display:flex;align-items:center;height:32px;padding:0 11px;background:transparent;border:none;border-radius:7px;cursor:pointer;text-align:left}
.de-numlib button:hover{background:var(--card-3)}
.de-numlib .nf-sample{font-family:var(--mono);font-size:12px;color:var(--ink)}
/* Б4 r12: кастомные форматы нумерации (скобка + кириллица) — через @counter-style,
   применяются как list-style-type (round-trip через st.listStyle, как обычный стиль). */
@counter-style de-dec-paren{system:extends decimal;suffix:") "}
@counter-style de-lroman-paren{system:extends lower-roman;suffix:") "}
@counter-style de-lcyr{system:alphabetic;symbols:"а" "б" "в" "г" "д" "е" "ж" "з" "и" "к" "л" "м" "н" "о" "п" "р" "с" "т" "у" "ф" "х" "ц" "ч" "ш" "щ" "э" "ю" "я";suffix:") "}
@counter-style de-ucyr{system:alphabetic;symbols:"А" "Б" "В" "Г" "Д" "Е" "Ж" "З" "И" "К" "Л" "М" "Н" "О" "П" "Р" "С" "Т" "У" "Ф" "Х" "Ц" "Ч" "Ш" "Щ" "Э" "Ю" "Я";suffix:") "}

/* #1 модалка «Маршрут документа» — степпер */
.de-wf-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.de-wf-steps{margin:14px 0 4px}
.de-wf-step{display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:start}
.de-wf-dot{width:28px;height:28px;border-radius:50%;background:var(--surface);border:1.5px solid var(--border-2);display:flex;align-items:center;justify-content:center;color:var(--muted);grid-row:1}
.de-wf-dot .ti{font-size:15px}
.de-wf-step.done .de-wf-dot{background:var(--ok);border-color:var(--ok);color:var(--surface)}
.de-wf-step.now .de-wf-dot{background:var(--accent);border-color:var(--accent);color:var(--surface)}
.de-wf-line{grid-column:1;grid-row:2;justify-self:center;width:2px;height:16px;background:var(--border-soft);margin:2px 0}
.de-wf-step.done .de-wf-line{background:var(--ok)}
.de-wf-lbl{grid-column:2;grid-row:1;padding-top:4px;display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink)}
.de-wf-lbl b{font-weight:500}
.de-wf-step.now .de-wf-lbl b{font-weight:600}
.de-wf-now{font-size:11px;color:var(--accent);font-weight:600}
.de-wf-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}

/* липкий тулбар (Word-like; идея NearBy .ck-editor__top) */
#deToolbarZone{position:sticky;top:0;z-index:15;background:var(--bg);padding-bottom:10px}
#deToolbarZone .de-toolbar{box-shadow:0 1px 0 rgba(28,27,25,.04)}
#deToolbarZone.de-disabled{background:var(--bg)}

/* ================= WORD-БЛОК-2: файлы / undo / цвета / вставка ================= */
.de-tb-btn.dis{opacity:.35;pointer-events:none}
.de-tb-send{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 11px;background:var(--primary);border:none;border-radius:7px;font-family:inherit;font-size:12px;font-weight:600;color:var(--surface);cursor:pointer}
.de-tb-send:hover{background:var(--primary-2)}
.de-tb-send .ti{font-size:14px}

/* поповеры (палитра / меню отправки / меню картинки) */
.de-popover{position:absolute;z-index:200;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;box-shadow:var(--shadow-lg);padding:7px}
.de-palette{display:grid;grid-template-columns:repeat(5,20px);gap:5px}
.de-palette .sw{width:20px;height:20px;border:1px solid rgba(0,0,0,.12);border-radius:5px;cursor:pointer;padding:0}
.de-palette .sw:hover{outline:2px solid var(--accent);outline-offset:1px}
.de-sendmenu,.de-imgmenu{display:flex;flex-direction:column;gap:1px;min-width:210px}
.de-sendmenu button,.de-imgmenu button{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;background:transparent;border:none;border-radius:7px;font-family:inherit;font-size:12.5px;color:var(--ink);cursor:pointer;text-align:left}
.de-sendmenu button:hover,.de-imgmenu button:hover{background:var(--card-3)}
.de-sendmenu .ti{font-size:14px;color:var(--muted)}
/* Б9: пункт «Клиенту…» без дела — заблокирован с подсказкой */
.de-sendmenu button:disabled{opacity:.5;cursor:not-allowed}
.de-sendmenu button:disabled:hover{background:transparent}
.de-sendmenu button:disabled .ti{color:var(--muted)}
.de-sm-hint{margin-left:auto;font-size:9.5px;color:var(--warn);border:1px solid var(--warn);border-radius:10px;padding:0 6px;line-height:15px}
.de-sendmenu .de-tt-note{margin-top:4px;padding:7px 9px;font-size:11px;line-height:1.45;color:var(--muted);border-top:1px solid var(--border-soft)}
.de-imgmenu{min-width:130px}

/* таблица: плавающий тулбар управления */
.de-tabletools{position:absolute;z-index:120;display:flex;align-items:center;gap:2px;background:var(--primary);border-radius:8px;padding:3px;box-shadow:0 6px 18px rgba(28,27,25,.28)}
.de-tabletools button{width:28px;height:28px;background:transparent;border:none;border-radius:6px;color:var(--surface);cursor:pointer;display:flex;align-items:center;justify-content:center}
.de-tabletools button:hover{background:rgba(255,255,255,.16)}
.de-tabletools .ti{font-size:16px}
.de-tabletools .sep{width:1px;height:18px;background:rgba(255,255,255,.25);margin:0 2px}
/* #5 плавающая «+» на границе строки/столбца */
.de-tblinsert{position:absolute;z-index:121;width:18px;height:18px;padding:0;border:none;border-radius:50%;background:var(--accent,#2f6bff);color:var(--surface);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(28,27,25,.3)}
.de-tblinsert:hover{filter:brightness(1.08)}
.de-tblinsert .ti{font-size:13px}
/* Б4 r11: прямоугольное выделение ячеек + плавающая «Объединить» */
.de-doc td.de-cell-sel,.de-doc th.de-cell-sel{background:rgba(58,86,200,.16);outline:1px solid var(--accent);outline-offset:-1px}
.de-cellmerge{position:absolute;z-index:122;display:flex;align-items:center;gap:5px;height:28px;padding:0 11px;border:none;border-radius:8px;background:var(--accent,#2f6bff);color:var(--surface);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;box-shadow:0 3px 10px rgba(28,27,25,.3)}
.de-cellmerge:hover{filter:brightness(1.06)}
.de-cellmerge .ti{font-size:14px}
/* Б6 r11: строки оглавления (снимок) */
.de-doc p.de-toc-row{display:flex;align-items:baseline;gap:6px;margin:0 0 4px}
.de-doc p.de-toc-row > span:first-child{flex:none}
.de-doc p.de-toc-row::after{content:"";flex:1;border-bottom:1px dotted var(--border-2);margin:0 4px;transform:translateY(-3px)}
.de-doc p.de-toc-row .de-toc-pg{flex:none;color:var(--muted);font-size:12px;order:3}

/* вставки в документе */
.de-hr{border:none;border-top:1px solid #c7c1b6;margin:16px 0}
.de-img{max-width:100%;border-radius:2px;cursor:pointer}
.de-img:hover{outline:2px solid var(--ok);outline-offset:2px}
.de-filechip{display:inline-flex;align-items:center;gap:5px;background:var(--bg-2);border:1px solid var(--border-soft);border-radius:7px;padding:2px 9px;font-family:var(--sans);font-size:12px;color:var(--text);vertical-align:middle;cursor:default}
.de-filechip .ti{font-size:14px;color:var(--info-3)}
.de-doc.de-dropping{outline:2px dashed var(--ok);outline-offset:-6px;background:var(--ok-bg)}
.de-doc a{color:var(--info-3);text-decoration:underline}
.de-rmark.drag{filter:brightness(1.5)}

/* ================= WORD-БЛОК: страницы / линейка / зум / структура ================= */
/* зумируемая обёртка (истинный масштаб) */
.de-zoomable{width:min(1020px,100%);max-width:100%;margin:0 auto;transition:zoom .05s}
.de-paper.de-a4{width:100%;max-width:none;aspect-ratio:auto;min-height:0;box-sizing:border-box;background:transparent;box-shadow:none}
.de-ruler{max-width:none}

/* Листы строятся реальными белыми DOM-прямоугольниками под единым потоком
   текста. Серый gap — внешний промежуток, а не накладка поверх текста. */
.de-docwrap{position:relative;isolation:isolate}
.de-page-sheets{position:absolute;left:0;right:0;top:0;z-index:0;pointer-events:none;overflow:visible}
.de-page-sheets.continuous{display:none}
.de-sheet{position:absolute;left:0;box-sizing:border-box;background:var(--surface);border:1px solid var(--border-soft);border-radius:1px;box-shadow:0 5px 16px rgba(28,27,25,.16);pointer-events:none}
.de-paper-head,.de-paper-foot{background:var(--surface)}
.de-doc{position:relative;z-index:1;min-height:0;background:transparent}
/* Сноски остаются в потоке редактора; визуальная карточка не должна
   заслонять соседний лист или строку. */
.de-pgfn{position:absolute;left:76px;right:76px;z-index:1;border-top:1px solid #c7c1b6;padding-top:5px;font-size:11px;line-height:1.5;color:var(--text);background:var(--surface)}
.de-pgfn ol{margin:0;padding-left:20px}
.de-pgfn li{margin:0 0 2px}
/* Б2: переключатель постраничного режима в «Разметке» */
.ps-paged{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink);cursor:pointer}
.ps-paged .ps-exp{margin-left:auto;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--warn);border:1px solid var(--warn);border-radius:6px;padding:1px 6px}
/* r13: шпаргалка горячих клавиш */
.de-sc-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin-top:4px}
.de-sc-row{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--ink)}
.de-sc-row kbd{flex:none;font-family:var(--mono);font-size:10.5px;background:var(--bg-2);border:1px solid var(--border-soft);border-bottom-width:2px;border-radius:5px;padding:2px 6px;color:var(--text);white-space:nowrap}
.de-sc-row span{color:var(--text)}
@media (max-width:560px){.de-sc-grid{grid-template-columns:1fr}}
/* ручной разрыв страницы — реальный зазор, атомарный блок */
.de-pagebreak{margin:22px -76px;padding:11px 76px;background:var(--bg-3);border-top:1px solid #cfc8bc;border-bottom:1px solid #cfc8bc;box-shadow:inset 0 6px 5px -5px rgba(28,27,25,.14),inset 0 -6px 5px -5px rgba(28,27,25,.14);text-align:center;font-family:var(--sans);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);user-select:none;cursor:default}

/* линейка: перетаскиваемые маркеры */
.de-rmark{position:absolute;cursor:ew-resize;z-index:5}
.de-rmark.first{top:-1px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid var(--text);margin-left:-5px}
.de-rmark.hang{bottom:5px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:7px solid var(--text);margin-left:-5px}
.de-rmark.leftsq{bottom:-1px;width:9px;height:5px;background:var(--text);margin-left:-4px;border-radius:1px}
.de-rmark.right{bottom:5px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:7px solid var(--text);margin-left:-5px}
.de-rmark:hover,.de-rmark.drag{filter:brightness(1.8)}
.de-rmark.first:hover,.de-rmark.first.drag{border-top-color:var(--accent)}
.de-rmark.hang:hover,.de-rmark.right:hover,.de-rmark.hang.drag,.de-rmark.right.drag{border-bottom-color:var(--accent)}
.de-rmark.leftsq:hover,.de-rmark.leftsq.drag{background:var(--accent)}
/* направляющая + тултип линейки */
.de-ruler-guide{position:absolute;top:22px;bottom:0;width:0;border-left:1px dashed var(--info);pointer-events:none;z-index:4}
.de-ruler-tip{position:absolute;z-index:400;background:var(--primary);color:var(--surface);font-family:var(--mono);font-size:10px;padding:2px 6px;border-radius:5px;pointer-events:none;white-space:nowrap}
.de-zoomable{position:relative}

/* зум-контролы */
.de-zoom{display:flex;align-items:center;gap:6px}
.de-zoom select{height:22px;border:1px solid var(--border-soft);border-radius:6px;background:var(--surface);font-family:var(--mono);font-size:10.5px;color:var(--text);padding:0 4px;cursor:pointer}
.de-zoom .focusbtn{width:22px;height:22px;border:1px solid var(--border-soft);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center}
.de-zoom .focusbtn .ti{font-size:14px}

/* сворачивание структуры */
.de-outline-h{display:flex;align-items:center;justify-content:space-between;margin:2px 4px 5px}
.de-outline-collapse{width:22px;height:22px;border:none;background:transparent;color:var(--muted);border-radius:6px;cursor:pointer}
.de-outline-collapse:hover{background:var(--card-3);color:var(--text)}
.de-grid.nooutline{grid-template-columns:32px minmax(0,1fr) 320px}
.de-outline-rail{width:32px;height:44px;align-self:start;position:sticky;top:0;border:1px solid var(--border-soft);background:var(--surface);border-radius:10px;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center}
.de-outline-rail:hover{color:var(--accent);border-color:var(--border-2)}
.de-outline-rail .ti{font-size:17px}

/* фокус-режим: прячем всё, кроме листа */
body.de-focus-on .de-crumbs,body.de-focus-on .de-top,body.de-focus-on .de-subline,
body.de-focus-on #deCopresence,body.de-focus-on #deLockZone,body.de-focus-on #deAccessZone,
body.de-focus-on .de-toolbar-toggle{display:none !important}
body.de-focus-on #deToolbarZone{position:sticky;top:0;z-index:20}
.de-grid.focus{grid-template-columns:minmax(0,1fr)}
.de-grid.focus .de-outline,.de-grid.focus .de-outline-rail,.de-grid.focus .de-side{display:none}
.de-grid.focus .de-paper-wrap{max-height:none}
.de-grid.focus .de-vruler{display:block!important}   /* линейка остаётся ориентиром и в компактном режиме */
.de-grid.focus .de-tcorners{display:none} /* 2.6: уголки границ текста скрыты в фокус-режиме */
.de-focus-hint{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:400;background:var(--primary);color:var(--surface);font-size:12px;padding:8px 14px;border-radius:20px;box-shadow:0 6px 20px rgba(28,27,25,.28);display:flex;align-items:center;gap:6px}
/* мини-индикатор сохранения (виден только в фокус-режиме) */
.de-focus-save{display:none;position:absolute;top:10px;right:12px;z-index:6;align-items:center;gap:5px;background:var(--surface);border:1px solid var(--border-soft);border-radius:20px;padding:4px 11px;font-family:var(--sans);font-size:11px;color:var(--text);box-shadow:var(--shadow-md)}
.de-focus-save .ti{font-size:13px}
.de-focus-save.saved .ti,.de-focus-save.idle .ti{color:var(--ok)}
.de-focus-save.saving .ti{color:var(--warn)}
.de-focus-save.offline,.de-focus-save.conflict{color:var(--danger)}
.de-focus-save.offline .ti,.de-focus-save.conflict .ti{color:var(--danger)}
body.de-focus-on .de-focus-save{display:flex}
/* тост поверх фокус-режима */
body.de-focus-on #toast{z-index:600 !important}
.de-focus-hint b{font-family:var(--mono)}

/* ---------- экспорт (дропдаун) ---------- */
.de-exportwrap{position:relative}
.de-exportmenu{position:absolute;top:calc(100% + 6px);right:0;z-index:130;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;box-shadow:var(--shadow-lg);padding:5px;min-width:214px;display:flex;flex-direction:column;gap:2px}
.de-exportmenu[hidden]{display:none}
.de-exportmenu button{display:flex;align-items:center;gap:9px;height:34px;padding:0 11px;background:transparent;border:none;border-radius:7px;font-family:inherit;font-size:12.5px;font-weight:500;color:var(--ink);cursor:pointer;text-align:left}
.de-exportmenu button:hover{background:var(--card-3)}
.de-exportmenu button .ti{font-size:17px;color:var(--info-3)}

/* ---------- панель «Плейсхолдеры» ---------- */
.de-phrow{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;margin-bottom:7px;cursor:pointer;transition:border-color .12s,background .12s}
.de-phrow:hover{border-color:var(--border-2);background:var(--card-3)}
.de-phrow .tok{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:11.5px;color:var(--text);flex:none;min-width:96px}
.de-phrow .tok .ti{font-size:13px;color:var(--muted)}
.de-phrow .val{flex:1;font-size:12.5px;color:var(--ink);font-weight:500;text-align:right;word-break:break-word}
.de-phrow .add{font-size:15px;color:var(--muted);flex:none}
.de-phrow.unresolved{background:#fdf6e3;border-color:#e7d3a4}
.de-phrow.unresolved .val{color:var(--warn);font-weight:600}
/* незаполненный плейсхолдер прямо в тексте листа */
.de-ph-unresolved{background:#faf1de !important;border:1px dashed var(--warn) !important;color:var(--warn) !important}
/* Б7: карточка плейсхолдера с редактируемым значением */
.de-ph2{border:1px solid var(--border);border-radius:9px;padding:8px 10px;margin-bottom:7px;background:var(--surface)}
.de-ph2.empty{background:#fdf9ef;border-color:#eaddbe}
.de-ph2-h{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.de-ph2-h .tok{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text);flex:1;min-width:0;overflow:hidden;white-space:nowrap}
.de-ph2-label{font-weight:600;overflow:hidden;text-overflow:ellipsis}
.de-ph2-tok{font-family:var(--mono);font-size:10px;color:var(--muted);font-style:normal;flex:none}
.de-ph2-h .tok .ti{font-size:13px;color:var(--muted)}
.de-ph2-h .tok .ti-lock{color:var(--warn)}
.de-ph2-btns{display:flex;gap:2px;flex:none}
.de-ph2-btns button{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--muted);cursor:pointer}
.de-ph2-btns button:hover{background:var(--card-3);border-color:var(--border);color:var(--ink)}
.de-ph-val{width:100%;height:30px;border:1px solid var(--border-soft);border-radius:7px;padding:0 8px;font-family:inherit;font-size:12.5px;color:var(--ink);outline:none;background:var(--surface)}
.de-ph-val:focus{border-color:var(--accent)}
.de-ph-val.unresolved{border-color:#e7d3a4;background:#fffdf6}
select.de-ph-val{cursor:pointer}
.de-ph2-note{display:flex;align-items:center;gap:4px;margin-top:5px;font-size:10.5px;color:var(--muted)}
.de-ph2-note .ti{font-size:12px}
.de-ph2-revert{background:transparent;border:none;color:var(--accent);cursor:pointer;font-size:10.5px;padding:0;text-decoration:underline}
/* Б7: инпуты модалей «свой плейсхолдер» / подтверждение */
.de-modal-lbl{display:block;font-size:11.5px;color:var(--muted);margin-bottom:4px}
.de-modal-inp{width:100%;height:34px;border:1px solid var(--border-soft);border-radius:8px;padding:0 10px;font-family:inherit;font-size:13px;outline:none;box-sizing:border-box}
textarea.de-modal-inp{height:auto;padding:8px 10px;line-height:1.4}
.de-modal-inp:focus{border-color:var(--accent)}
/* Б6.3: «Сохранить как» — выбор папки назначения */
.de-sa-tabs{display:flex;gap:4px;margin-bottom:8px}
.de-sa-tabs button{flex:1;height:30px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);font-family:inherit;font-size:11.5px;color:var(--ink);cursor:pointer}
.de-sa-tabs button.on{background:var(--accent);color:var(--surface);border-color:var(--accent)}
.de-sa-browse{border:1px solid var(--border);border-radius:10px;padding:8px;margin-bottom:12px;background:var(--card-2)}
.de-sa-crumbs{font-size:11px;color:var(--muted);margin-bottom:6px;line-height:1.6}
.de-sa-crumbs button{background:transparent;border:none;color:var(--accent);cursor:pointer;font-size:11px;padding:0}
.de-sa-list{max-height:180px;overflow:auto;display:flex;flex-direction:column;gap:3px}
.de-sa-folder{display:flex;align-items:center;gap:8px;width:100%;height:34px;padding:0 9px;background:var(--surface);border:1px solid var(--border-soft);border-radius:8px;cursor:pointer;font-family:inherit;font-size:12.5px;color:var(--ink)}
.de-sa-folder:hover{background:var(--card-3)}
.de-sa-folder span{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.de-sa-folder em{font-style:normal;font-size:10.5px;color:var(--muted)}
.de-sa-folder .go{font-size:14px;color:var(--muted)}
.de-sa-load,.de-sa-empty{font-size:12px;color:var(--muted);padding:10px 4px}
.de-sa-here{margin-top:8px;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text);padding-top:8px;border-top:1px dashed var(--border)}
.de-sa-here .ti{color:var(--ok,#1a7f4b)}
.de-tpl-box{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border)}
.de-tpl-tgl{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink);cursor:pointer}
.de-tpl-tgl span{display:flex;align-items:center;gap:5px}
.de-tpl-tgl .ti{color:var(--accent)}
.de-tpl-hint{margin:8px 2px 0;font-size:11px;color:var(--muted);line-height:1.4}
/* условный блок в листе — рамка + бейдж-подпись из data-cond-label */
.de-doc [data-cond]{position:relative;border-left:3px solid var(--accent);padding-left:12px;margin-left:2px;background:rgba(58,86,200,.035);border-radius:0 4px 4px 0}
.de-doc [data-cond]::before{content:"⤷ " attr(data-cond-label);position:absolute;top:-9px;left:10px;font-size:9.5px;font-weight:600;color:var(--surface);background:var(--accent);padding:1px 7px;border-radius:6px;font-family:var(--font,inherit);white-space:nowrap;letter-spacing:.01em}
.de-doc [data-cond].de-cond-off{opacity:.42;border-left-color:var(--muted);background:repeating-linear-gradient(45deg,rgba(140,140,140,.05),rgba(140,140,140,.05) 6px,transparent 6px,transparent 12px)}
.de-doc [data-cond].de-cond-off::before{background:var(--muted)}
@media print{.de-doc [data-cond]{border-left:none;padding-left:0;background:none;margin-left:0}.de-doc [data-cond]::before{display:none}.de-doc [data-cond].de-cond-off{display:none}}
/* модаль сборки */
.de-asm-list{max-height:46vh;overflow:auto;display:flex;flex-direction:column;gap:9px;margin-bottom:14px}
.de-asm-row{display:flex;flex-direction:column;gap:4px}
.de-asm-row label{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:5px}
.de-asm-row label b{font-family:var(--mono);color:var(--text);font-size:11.5px}
.de-asm-row label span{font-weight:400}
.de-asm-row input,.de-asm-row select{height:32px;border:1px solid var(--border-soft);border-radius:7px;padding:0 9px;font-family:inherit;font-size:12.5px;outline:none}
.de-asm-row input:focus,.de-asm-row select:focus{border-color:var(--accent)}
/* Б15: диктовка */
.de-tb-btn.rec{color:var(--danger);background:rgba(220,53,69,.1)}
.de-tb-btn.rec .ti{animation:deDictPulse 1.1s ease-in-out infinite}
.de-dictating{background:#fdf3d6;border:1px dashed var(--warn);border-radius:4px;padding:0 5px;color:#8a6d1f;font-size:12px;font-style:italic}
/* Б15: ошибка распознавания — временный оверлей (не в документе) */
.de-dicterr{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:410;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--danger);border-left:4px solid var(--danger);border-radius:12px;box-shadow:var(--shadow-lg);padding:10px 12px;font-size:12.5px;color:var(--ink);max-width:560px}
.de-dicterr > .ti{font-size:17px;color:var(--danger);flex:none}
.de-dicterr span{flex:1;line-height:1.35}
.de-dicterr b{font-weight:600}
.de-dicterr-retry{display:flex;align-items:center;gap:5px;background:var(--danger);color:var(--surface);border:none;border-radius:8px;height:30px;padding:0 12px;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;flex:none}
.de-dicterr-retry:hover{filter:brightness(.95)}
.de-dicterr-x{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:7px;color:var(--muted);cursor:pointer;flex:none}
.de-dicterr-x:hover{background:var(--card-3);color:var(--ink)}
.de-dictbar{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:400;display:flex;align-items:center;gap:11px;background:var(--ink);color:var(--surface);padding:10px 14px;border-radius:12px;box-shadow:var(--shadow-lg);font-size:13px}
.de-dict-dot{width:11px;height:11px;border-radius:50%;background:#ff3b30;animation:deDictPulse 1.1s ease-in-out infinite;flex:none}
.de-dict-txt b{font-family:var(--mono);font-weight:600;margin-left:2px}
.de-dict-stop{display:flex;align-items:center;gap:5px;background:#ff3b30;color:var(--surface);border:none;border-radius:8px;height:30px;padding:0 12px;font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.de-dict-stop:hover{background:#e6352b}
.de-dict-hint{font-size:11px;color:var(--muted)}
@keyframes deDictPulse{0%,100%{opacity:1}50%{opacity:.35}}
/* Б16: нормоконтроль */
.de-norm{position:fixed;top:64px;right:16px;width:340px;max-height:calc(100vh - 96px);z-index:350;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}
.de-norm-h{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border)}
.de-norm-h b{display:flex;align-items:center;gap:7px;font-size:14px;flex:1}
.de-norm-h b .ti{color:var(--accent)}
.de-norm-count{font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:20px}
.de-norm-count.has{background:#fdecea;color:var(--danger)}
.de-norm-count.ok{background:#e7f6ec;color:var(--ok,#1a7f4b)}
.de-norm-x{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:7px;color:var(--muted);cursor:pointer}
.de-norm-x:hover{background:var(--card-3);color:var(--ink)}
.de-norm-body{overflow:auto;padding:8px 10px;flex:1}
.de-norm-grp{margin-bottom:12px}
.de-norm-grp-h{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin:4px 2px 7px}
.de-norm-grp-h .ti{font-size:14px}
.de-norm-grp-h span{margin-left:auto;background:var(--bg-2);color:var(--text);border-radius:10px;padding:0 7px;font-size:10.5px}
.de-norm-item{display:flex;flex-direction:column;gap:5px;padding:8px 9px;border:1px solid var(--border);border-radius:9px;margin-bottom:6px;background:var(--card-2)}
.de-norm-t{font-size:12.5px;color:var(--ink);line-height:1.35}
.de-norm-a{display:flex;gap:6px}
.de-norm-go,.de-norm-fix{height:26px;padding:0 11px;border-radius:7px;font-family:inherit;font-size:11.5px;font-weight:500;cursor:pointer;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink)}
.de-norm-go:hover{background:var(--card-3)}
.de-norm-fix{background:var(--accent);color:var(--surface);border-color:var(--accent)}
.de-norm-fix:hover{filter:brightness(.95)}
.de-norm-f{padding:10px 12px;border-top:1px solid var(--border)}
.de-norm-ok{text-align:center;padding:30px 16px;color:var(--ok,#1a7f4b)}
.de-norm-ok .ti{font-size:38px}
.de-norm-ok b{display:block;margin:8px 0 4px;font-size:15px;color:var(--ink)}
.de-norm-ok p{font-size:12px;color:var(--muted);margin:0}
.de-norm-flash{background:#fff3cd !important;outline:2px solid var(--warn);outline-offset:2px;border-radius:3px;transition:background .3s,outline .3s}
@media print{.de-norm{display:none}}
/* Б12: найти и заменить */
.de-findbar{position:fixed;top:64px;right:18px;z-index:360;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:8px;display:flex;flex-direction:column;gap:6px;width:340px}
.de-find-row{display:flex;align-items:center;gap:6px}
.de-find-row > .ti{font-size:15px;color:var(--muted);flex:none}
.de-find-row input{flex:1;min-width:0;height:30px;border:1px solid var(--border-soft);border-radius:7px;padding:0 9px;font-family:inherit;font-size:12.5px;outline:none}
.de-find-row input:focus{border-color:var(--accent)}
.de-find-cnt{font-size:11px;color:var(--muted);font-family:var(--mono);flex:none;min-width:34px;text-align:right}
.de-find-nav,.de-find-x{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;border-radius:7px;color:var(--muted);cursor:pointer;flex:none;font-size:12px}
.de-find-nav:hover,.de-find-x:hover{background:var(--card-3);color:var(--ink)}
.de-find-nav.on{background:var(--accent);color:var(--surface);border-color:var(--accent)}
.de-find-btn{height:28px;padding:0 10px;border:1px solid var(--border-soft);background:var(--surface);border-radius:7px;font-family:inherit;font-size:11.5px;font-weight:500;color:var(--ink);cursor:pointer;flex:none}
.de-find-btn:hover{background:var(--card-3)}
@media print{.de-findbar{display:none}}
/* Б1 redaktor-11: перевод side-by-side */
.de-translate-bg{position:fixed;inset:0;z-index:500;background:rgba(28,27,25,.5);display:flex;align-items:stretch;justify-content:center;padding:24px}
.de-translate{background:var(--bg,var(--bg));border-radius:14px;box-shadow:var(--shadow-lg);width:min(1200px,100%);display:flex;flex-direction:column;overflow:hidden}
.de-tr-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface)}
.de-tr-head b{display:flex;align-items:center;gap:8px;font-size:15px;flex:1}
.de-tr-head b .ti{color:var(--accent)}
.de-tr-actions{display:flex;gap:8px}
.de-tr-body{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);overflow:hidden}
.de-tr-col{background:var(--bg-2,#f4f2ee);overflow:auto;display:flex;flex-direction:column}
.de-tr-lbl{position:sticky;top:0;z-index:1;background:var(--surface);padding:9px 16px;font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border-soft);display:flex;align-items:center;gap:8px}
.de-tr-gloss{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-weight:600;text-transform:none;color:var(--accent);font-size:10.5px}
.de-tr-col .de-paper{margin:16px;background:var(--surface);box-shadow:var(--shadow);border-radius:4px;padding:34px 40px;font-size:13px;line-height:1.7}
@media (max-width:760px){.de-tr-body{grid-template-columns:1fr;grid-template-rows:1fr 1fr}}
@media print{.de-translate-bg{display:none}}

/* Единая визуальная система ленты: одинаковая геометрия, мягкое активное
   состояние и читаемые iconfont-глифы во всех группах. Правило намеренно
   находится после исторических вариантов .on, чтобы не было расхождений
   между Шрифт/Абзац/Вставка/Инструменты. */
.de-ribbon .de-tb-btn,
.de-ribbon .de-tb-sel,
.de-ribbon-zoom button,
.de-ribbon-zoom select{box-sizing:border-box;height:32px}
.de-ribbon .de-tb-btn{width:32px;border:1px solid transparent;color:var(--ink-2);transition:background .12s,border-color .12s,color .12s,transform .08s}
.de-ribbon .de-tb-btn:hover:not(.on){background:var(--card-3);border-color:var(--border-soft);color:var(--ink)}
.de-ribbon .de-tb-btn.on,
.de-ribbon .de-tb-btn.on:hover,
.de-ribbon .de-tb-btn.on i{background:var(--highlight);border-color:var(--accent);color:var(--highlight-text,var(--ink));box-shadow:inset 0 0 0 1px rgba(181,133,31,.24)}
.de-ribbon .de-tb-btn:active{transform:translateY(1px)}
.de-ribbon .de-tb-sel{background:var(--surface);border-color:var(--border-soft);color:var(--ink-2)}
.de-ribbon .de-ribbon-group{padding-inline:8px}
.de-ribbon .de-ribbon-group + .de-ribbon-group{border-left:1px solid var(--border-soft)}
.de-ribbon .de-ribbon-tools{gap:4px}
.de-ribbon .de-ribbon-quick{gap:4px}
.de-ribbon .de-ribbon-send{gap:8px}
.de-ribbon-zoom button{width:32px}
.de-ribbon-zoom select{min-width:72px}
.de-ribbon-zoom .de-zoom-value{min-width:54px}

/* ---------- печать (scoped: только когда открыт редактор) + водяной знак ---------- */
@media print{
  body.de-editor-open #ilf-topbar,body.de-editor-open .ws-side,body.de-editor-open .ws-header,body.de-editor-open #sbStrip,body.de-editor-open #toast{display:none !important}
  body.de-editor-open *{visibility:hidden !important}
  body.de-editor-open #dePaperWrap,body.de-editor-open #dePaperWrap *{visibility:visible !important}
  body.de-editor-open #dePaperWrap{position:absolute;left:0;top:0;width:100%;max-height:none;height:auto;overflow:visible;background:var(--surface);padding:0;border-radius:0}
  body.de-editor-open #dePaperWrap .de-ruler,body.de-editor-open #dePaperWrap .de-vruler,body.de-editor-open #dePaperWrap .de-tcorners,body.de-editor-open #dePaperWrap .de-paper-status{display:none !important}
  body.de-editor-open #dePaperWrap .de-paper{box-shadow:none;max-width:100%;font-size:14px !important}
  body.de-editor-open #dePaperWrap .de-paper.de-wm::after{content:"ЧЕРНОВИК";position:fixed;top:40%;left:0;right:0;text-align:center;font-family:var(--sans);font-size:120px;font-weight:800;color:rgba(180,69,59,.10);transform:rotate(-24deg);letter-spacing:.1em;pointer-events:none;z-index:9999;visibility:visible !important}
  /* W-pdf-export (вторично): экранная paged-симуляция (border-top-разрывы,
     .de-sheet-фон, .de-sheet-hf-колонтитулы) не совпадает с пагинацией
     браузера — печатать её как есть значит наезжать текстом на колонтитулы.
     На печать/Cmd+P пускаем #deDoc обычным потоком под управлением браузера,
     нумерацию "из M" браузер всё равно не умеет — сохранение через серверный
     PDF-экспорт (WeasyPrint) остаётся правильным путём. */
  body.de-editor-open #dePaperWrap .de-page-sheets,
  body.de-editor-open #dePaperWrap .de-sheet,
  body.de-editor-open #dePaperWrap .de-sheet-hf,
  body.de-editor-open #dePaperWrap .de-pgfn{display:none !important}
  body.de-editor-open #dePaperWrap #deDoc{position:static !important;padding:0 !important;width:auto !important;min-height:0 !important}
  body.de-editor-open #dePaperWrap #deDoc [data-pagegap]{border-top:0 !important;margin-top:0 !important}
  @page{margin:20mm 18mm}
}

/* адаптив */
@media(max-width:1100px){
  .de-grid,.de-grid.changes,.de-grid.comments{grid-template-columns:1fr}
  .de-outline{position:static}
  .de-paper-wrap{max-height:none;min-height:0}
}

/* На широком экране действия документа остаются в одной строке с заголовком:
   пустая область справа больше не появляется из-за переноса .de-top-r. */
@media (min-width:1181px){
  .de-top{flex-wrap:nowrap}
  .de-top-l{flex:0 1 390px;min-width:300px}
  .de-top-r{flex:1 1 auto;min-width:0;justify-content:flex-end;flex-wrap:wrap;align-content:center;row-gap:6px;gap:8px}
  .de-top-r > *{flex:0 0 auto}
  .de-top-r .de-btn,.de-top-r .de-btn-hero{white-space:nowrap;padding-inline:10px}
}

/* При ширине ноутбука после сворачивания структуры лист получает больше
   рабочего пространства, а правый контур остаётся компактным. */
@media (min-width:1101px) and (max-width:1360px){
  .de-grid.nooutline{grid-template-columns:32px minmax(0,1fr) 260px;gap:12px}
  .de-grid.nooutline .de-paper-wrap{padding-left:12px;padding-right:12px}
}
.de-sheet-hf{position:absolute;left:0;right:0;box-sizing:border-box;display:flex;justify-content:space-between;padding:0 76px;font-family:var(--sans);font-size:9.5px;line-height:1.4;letter-spacing:.03em;color:var(--muted-4);text-transform:uppercase;pointer-events:auto;cursor:text}
.de-sheet-foot{text-transform:none}
.de-editor-open .de-sheet-hf:hover{background:rgba(58,86,200,.04);outline:1px dashed var(--border-2);outline-offset:-2px}
/* ── Word-style tabbed ribbon ── */
.de-ribbon-tabs{flex-direction:column;gap:0;padding:0;overflow:visible;width:100%;box-sizing:border-box}
.de-rb-tabbar{display:flex;align-items:center;gap:12px;padding:5px 10px 0;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--surface),var(--bg));min-width:0}
.de-rb-tabs{display:flex;gap:2px;flex:none}
.de-rb-tab{appearance:none;background:transparent;border:1px solid transparent;border-bottom:none;border-radius:8px 8px 0 0;padding:7px 15px;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;position:relative;top:1px;white-space:nowrap}
.de-rb-tab:hover{background:var(--bg-2);color:var(--text)}
.de-rb-tab.on{background:var(--surface);color:var(--primary);border-color:var(--border);box-shadow:inset 0 -2px 0 var(--primary)}
.de-rb-actions{margin-left:auto;display:flex;align-items:center;gap:12px;padding-bottom:5px;flex:none}
.de-rb-body{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;min-height:66px;background:var(--surface);width:100%;box-sizing:border-box;min-width:0}
.de-rb-panels{flex:1 1 0;min-width:0;display:flex}
.de-rb-panel{display:none;min-width:0}
.de-rb-panel.on{display:flex;flex:1 1 0;min-width:0;flex-wrap:wrap;align-items:stretch;justify-content:space-between;row-gap:8px}
.de-rb-view{flex:none;display:flex;align-items:center;padding-left:12px;border-left:1px solid var(--border);align-self:stretch}
