.ds-sheet { display: flex; flex-direction: column; flex: 1; min-height: 0; min-width: 0; }
.ds-desk {
  flex: 1; min-height: 0; overflow: auto; outline: none;
  padding: var(--sp-400) var(--sp-300);
  background: color-mix(in srgb, var(--bg) 94%, var(--ink));
}
.ds-paper { position: relative; margin: 0 auto; }

.ds-pages { position: absolute; inset: 0; pointer-events: none; }
.ds-page {
  position: absolute; left: 0; right: 0;
  background: var(--sheet-bg);
  border: var(--bw) solid color-mix(in srgb, var(--sheet-line) 70%, transparent);
}
.ds-corner { position: absolute; width: var(--sp-150); height: var(--sp-150); border: 0 solid var(--sheet-line); }
.ds-corner.tl { transform: translate(-100%, -100%); border-right-width: var(--bw); border-bottom-width: var(--bw); }
.ds-corner.tr { transform: translate(100%, -100%); border-left-width: var(--bw); border-bottom-width: var(--bw); }
.ds-corner.bl { transform: translate(-100%, 100%); border-right-width: var(--bw); border-top-width: var(--bw); }
.ds-corner.br { transform: translate(100%, 100%); border-left-width: var(--bw); border-top-width: var(--bw); }
.ds-pageno {
  position: absolute; right: var(--sp-200); bottom: var(--sp-150);
  font: var(--fs-xs) / 1 var(--font); color: var(--sheet-ink-2); font-variant-numeric: tabular-nums;
}
.ds-overflow {
  position: absolute; left: 0; right: 0;
  border-top: var(--bw) dashed var(--warn);
  background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--warn) 14%, transparent) 0 6px, transparent 6px 12px);
}
.ds-overflow > span {
  position: absolute; right: var(--sp-100); top: var(--sp-050);
  padding: 0 var(--sp-075); border-radius: var(--r-xs);
  font: var(--fs-xs) / 1.6 var(--font); background: var(--warn-weak); color: var(--warn-ink);
}

.ds-text {
  position: relative; z-index: 1;
  color: var(--sheet-ink); font-family: "Inter", Arial, sans-serif; font-size: 11pt; line-height: 1.15;
}
.ds-doc {
  outline: none; position: relative;
  white-space: pre-wrap; white-space: break-spaces;
  overflow-wrap: anywhere;
  font-variant-ligatures: none; font-feature-settings: "liga" 0;
}
.ds-doc :is(p, h1, h2, h3, h4) { margin: 0; }
.ds-doc h1 { font-size: 20pt; line-height: 1.2; font-weight: 700; padding: .8em 0 .3em; }
.ds-doc h2 { font-size: 16pt; line-height: 1.25; font-weight: 700; padding: .7em 0 .25em; }
.ds-doc h3 { font-size: 14pt; line-height: 1.3; font-weight: 600; padding: .6em 0 .2em; }
.ds-doc h4 { font-size: 12pt; line-height: 1.3; font-weight: 600; padding: .6em 0 .2em; }
.ds-doc > :first-child:is(h1, h2, h3, h4) { padding-top: 0; }
.ds-doc :is(ul, ol) { margin: 0; padding-left: 1.6em; }
.ds-doc li { position: relative; }
.ds-doc li > p { margin: 0; }
.ds-link { color: var(--sheet-accent); text-decoration: underline; }
.ds-doc sup, .ds-doc sub { line-height: 0; }

.ds-doc .ds-checks { list-style: none; padding-left: 0; }
.ds-check { display: flex; align-items: flex-start; gap: .5em; }
.ds-check-box {
  flex: none; display: grid; place-items: center;
  width: 1em; height: 1em; margin-top: .1em;
  border: 1.5px solid var(--sheet-ink-2); border-radius: var(--r-xs);  /* вне шкалы: черта отметки в долях кегля */
  color: var(--sheet-bg); cursor: pointer;
}
.ds-check-box > svg { width: .8em; height: .8em; visibility: hidden; }
.ds-check[data-check="1"] > .ds-check-box { background: var(--sheet-accent); border-color: var(--sheet-accent); }
.ds-check[data-check="1"] > .ds-check-box > svg { visibility: visible; }
.ds-check-text { flex: 1; min-width: 0; }
.ds-check[data-check="1"] > .ds-check-text { color: var(--sheet-ink-2); text-decoration: line-through; }

.ds-doc .tableWrapper { overflow-x: auto; }
.ds-doc table:not(.ds-valtable) { width: 100%; border-collapse: collapse; table-layout: fixed; overflow: hidden; margin: .3em 0; }
.ds-doc table:not(.ds-valtable) :is(td, th) {
  position: relative; vertical-align: top; box-sizing: border-box;
  border: var(--bw) solid var(--sheet-line); padding: .25em .4em;
}
.ds-doc table:not(.ds-valtable) th { font-weight: 600; text-align: left; }
.ds-doc .column-resize-handle {
  position: absolute; right: -2px; top: 0; bottom: 0; width: 4px; z-index: 2;   /* вне шкалы: ручка столбца */
  background: var(--sheet-accent); pointer-events: none;
}
.ds-doc.resize-cursor { cursor: ew-resize; }
.ds-doc .selectedCell::after {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: color-mix(in srgb, var(--sheet-accent) 16%, transparent);
}

.ds-img { margin: 0; }
.ds-img img { display: inline-block; max-width: 100%; height: auto; vertical-align: top; }
.ds-hr { border: 0; border-top: var(--bw) solid var(--sheet-line); margin: .6em 0; }
.ds-break {
  display: flex; align-items: center; gap: var(--sp-100); margin: .3em 0;
  color: var(--sheet-ink-2); font: var(--fs-xs) / 1 var(--font); user-select: none;
}
.ds-break::before, .ds-break::after { content: ""; flex: 1; border-top: var(--bw) dashed var(--sheet-line); }

.ds-ref {
  padding: 0 .2em; border-radius: var(--r-xs); white-space: nowrap;
  background: var(--sheet-accent-weak); color: var(--sheet-accent);
}
.ds-refblock {
  display: flex; align-items: center; justify-content: center; min-height: 3em; margin: .3em 0;
  border: var(--bw) dashed var(--sheet-accent); border-radius: var(--r-s);
}

.ds-doc .doc-selectednode { outline: 2px solid var(--acc); outline-offset: 1px; }  /* вне шкалы: обводка выбранного */
.ds-doc li.doc-selectednode { outline: none; }
.doc-hideselection *::selection { background: transparent; }
.doc-hideselection { caret-color: transparent; }
.ds-doc img.doc-separator { display: inline !important; border: none !important; margin: 0 !important; }
.doc-gapcursor { display: none; pointer-events: none; position: absolute; }
.doc-gapcursor::after {
  content: ""; display: block; position: absolute; top: -2px; width: 20px;   /* вне шкалы: курсор между блоками */
  border-top: var(--bw) solid var(--sheet-ink);
  animation: doc-caret-blink 1.1s steps(2, start) infinite;
}
@keyframes doc-caret-blink { to { visibility: hidden; } }
.doc-focused .doc-gapcursor { display: block; }
.ds-dropcursor { background: var(--acc); }
.ds-gap { display: block; pointer-events: none; }

.ds-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-025);
  padding: var(--sp-050) var(--sp-150);
  background: var(--card); border-bottom: var(--bw) solid var(--line);
}
.ds-toolbar[hidden] { display: none; }
.ds-toolbar .ds-tool[aria-pressed="true"] { background: var(--a-200); color: var(--ink); }
.ds-toolbar .ds-tool:disabled { opacity: .4; }
.ds-tool b, .ds-tool i, .ds-tool u, .ds-tool s { font-size: var(--fs); line-height: 1; }
.ds-glyph { font-weight: 600; line-height: 1; }
.ds-tool { position: relative; }
.ds-swatch {
  position: absolute; left: 22%; right: 22%; bottom: 3px; height: 3px; border-radius: var(--r-xs);  /* вне шкалы: полоса цвета под знаком */
}
.ds-sep { flex: none; width: var(--bw); height: var(--sp-250); margin: 0 var(--sp-050); background: var(--line); }
.ds-toolbar .ds-drop { gap: var(--sp-025); padding: 0 var(--sp-075); }
.ds-drop-label { min-width: 0; }
.ds-toolbar .ds-size { min-width: var(--sp-400); justify-content: center; font-variant-numeric: tabular-nums; }
.ds-toolbar .ds-at { color: var(--acc-ink); }

.ds-gridbox { display: flex; flex-direction: column; gap: var(--sp-100); padding: var(--sp-100); }
.ds-grid { display: grid; grid-template-columns: repeat(var(--n), var(--sp-200)); gap: var(--sp-025); }
.ds-grid-cell {
  width: var(--sp-200); height: var(--sp-200); padding: 0;
  border: var(--bw) solid var(--line); border-radius: var(--r-xs); background: var(--card); cursor: pointer;
}
.ds-grid-cell.on { background: var(--acc-weak); border-color: var(--acc); }
.ds-grid-n { font-size: var(--fs-s); color: var(--ink2); text-align: center; font-variant-numeric: tabular-nums; }

.ds-refvalue-inline img { max-height: 3em; vertical-align: middle; }
.ds-refvalue { margin: .3em 0; }
.ds-refvalue img { max-width: 100%; }
.ds-valtable { width: 100%; border-collapse: collapse; table-layout: auto; font-size: .95em; }
.ds-valtable th {
  text-align: left; font-weight: 600; font-size: .85em; color: var(--sheet-ink-2);
  border-bottom: var(--bw) solid var(--sheet-ink); padding: .3em .4em .3em 0;
}
.ds-valtable td { border-bottom: var(--bw) solid var(--sheet-line); padding: .3em .4em .3em 0; vertical-align: top; }
.ds-valtable td:not(.num) { overflow-wrap: anywhere; }
.ds-valtable .num { text-align: right; white-space: nowrap; }
.ds-val-section td { font-weight: 600; padding-top: .7em; }
.ds-val-total td { font-weight: 600; font-size: .9em; }

.ds-print-book { color: var(--sheet-ink); background: var(--sheet-bg); font-family: "Inter", Arial, sans-serif; }
.ds-print-sheet + .ds-print-sheet { break-before: page; }
.ds-print-doc { font-size: 11pt; line-height: 1.15; }
.ds-print-doc .ds-break { break-after: page; height: 0; margin: 0; overflow: hidden; visibility: hidden; }
