.rich-doc {
  position: relative; isolation: isolate; container-type: inline-size; display: flow-root;
  font-size: var(--fs-s); line-height: 1.6; color: inherit;
}
.rich-doc::before { content: ""; float: left; width: 0; height: calc(var(--room, 0) * 1cqw); }
.rich-doc > * { margin: 0; }
.rich-doc > * + * { margin-top: var(--sheet-3, var(--sp-150)); }
.rich-doc h1 { font-size: 1.6em; line-height: 1.25; font-weight: 700; }
.rich-doc h2 { font-size: 1.3em; line-height: 1.3; font-weight: 700; }
.rich-doc h3 { font-size: 1.1em; line-height: 1.35; font-weight: 700; }
.rich-doc ul, .rich-doc ol { padding-left: 1.4em; }
.rich-doc li + li { margin-top: var(--sheet-1, var(--sp-050)); }
.rich-table { width: 100%; border-collapse: collapse; }
.rich-table td { border: 1px solid var(--sheet-line, #ddd); padding: var(--sheet-2, var(--sp-050)) var(--sheet-3, var(--sp-100)); vertical-align: top; }
.rich-img { margin: 0; display: flex; }
.rich-img.at-center { justify-content: center; }
.rich-img.at-right { justify-content: flex-end; }
.rich-img img { max-width: 100%; max-height: 120mm; border-radius: var(--sheet-block-radius, 0); }
.rich-pic { position: relative; display: inline-block; max-width: 100%; line-height: 0; }
.rich-img.sized img { max-height: none; }
.rich-img.float { position: absolute; margin: 0; display: block; }
.rich-img.float img { display: block; max-width: none; }

.rich-edit { display: flex; flex-direction: column; gap: var(--sp-150); }
.rich-toolbar {
  position: fixed; left: 0; top: 0; z-index: var(--z-drawer);
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-025);
  padding: var(--sp-050);
  background: var(--card); color: var(--ink);
  border: var(--bw) solid var(--line); border-radius: var(--r);
  box-shadow: var(--sh-overlay, none);
  font-family: var(--font); font-size: var(--fs-s);
}
.rich-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-025);
  height: var(--h-btn-sm); padding: 0 var(--sp-075);
  border: 0; border-radius: var(--r-s); background: none; color: inherit;
  white-space: nowrap; cursor: pointer;
}
.rich-btn:hover { background: var(--a-100); }
.rich-btn.icon { width: var(--h-btn-sm); padding: 0; }
.rich-grip { display: grid; place-items: center; width: var(--sp-200); height: var(--h-btn-sm);
             cursor: var(--cur-grab); touch-action: none; }
.rich-btn[aria-pressed="true"] { background: var(--a-200); }
.rich-btn:disabled { opacity: .4; cursor: default; }
.rich-btn[aria-label^="Заголовок"] { font-weight: 600; }
.rich-size { min-width: var(--sp-400); font-variant-numeric: tabular-nums; }
.rich-grid { display: grid; grid-template-columns: repeat(var(--n), var(--sp-250)); gap: var(--sp-025);
             padding: var(--sp-050) var(--sp-100); }
.actx .actx-node .rich-grid .rich-grid-cell {
  display: block; width: var(--sp-250); height: var(--sp-250); padding: 0;
  background: none; border: var(--bw) solid var(--line); border-radius: var(--r-xs); cursor: pointer;
}
.actx .actx-node .rich-grid .rich-grid-cell.on { background: var(--acc-weak); border-color: var(--acc); }
.rich-grid-n { padding: 0 var(--sp-100) var(--sp-050); font-size: var(--fs-s); color: var(--ink2); }
.rich-toolbar.away { visibility: hidden; }
.rich-link-btn { color: var(--acc-ink); background: var(--acc-weak); }
.rich-sep { width: var(--bw); height: var(--sp-200); background: var(--line); margin: 0 var(--sp-050); }
.rich-surface { outline: none; min-height: 40mm; cursor: text; }
.rich-surface:focus-visible { outline: none; }
.rich-ref {
  display: inline; padding: 0 0.2em; border-radius: 0.25em;
  background: color-mix(in srgb, var(--sheet-accent, #2c7a74) 14%, transparent);
  color: var(--sheet-accent, #2c7a74); font-weight: 600;
  border-bottom: 1px dotted currentColor; cursor: default;
}
.rich-surface .rich-img.float img { cursor: var(--cur-grab); }
.rich-img.on img { outline: 2px solid var(--sheet-accent, var(--acc)); outline-offset: 2px; }
.rich-frame { position: absolute; z-index: 60; cursor: var(--cur-grab); }
.rich-img.moving { opacity: .5; }
.rich-handle {
  position: absolute; width: var(--sp-150); height: var(--sp-150);
  background: var(--card); border: 2px solid var(--sheet-accent, var(--acc)); border-radius: var(--r-xs);
}
.rich-handle.corner-nw { left: calc(var(--sp-075) * -1); top: calc(var(--sp-075) * -1); cursor: nwse-resize; }
.rich-handle.corner-ne { right: calc(var(--sp-075) * -1); top: calc(var(--sp-075) * -1); cursor: nesw-resize; }
.rich-handle.corner-sw { left: calc(var(--sp-075) * -1); bottom: calc(var(--sp-075) * -1); cursor: nesw-resize; }
.rich-handle.corner-se { right: calc(var(--sp-075) * -1); bottom: calc(var(--sp-075) * -1); cursor: nwse-resize; }
@media print { .rich-toolbar { display: none; } }
