/* Book sheet: SlickGrid's Alpine theme mapped to shell.css tokens. Every value is a var()
   of a token that shell.css already redefines in :root, :root[data-theme="dark"] and the
   prefers-color-scheme rule, so this follows all three with no copy of the palette. */
.book-sheet,
.slick-context-menu, .slick-cell-menu, .slick-header-menu, .slick-large-editor-text {
  --alpine-grid-bgcolor: var(--paper);
  --alpine-bg-color: var(--paper);
  --alpine-font-color: var(--ink);
  --alpine-font-family: var(--sans);
  --alpine-font-size: 14px;
  --alpine-border-color: var(--rule);
  --alpine-cell-border-color: var(--rule-soft);
  --alpine-header-bg-color: var(--paper-2);
  --alpine-header-footer-bg-color: var(--paper-2);
  --alpine-header-color: var(--ink-mid);
  --alpine-header-border-color: var(--rule);
  --alpine-header-font-weight: 600;
  --alpine-odd-row-color: var(--paper-2);
  --alpine-row-mouse-hover-color: var(--paper-3);
  --alpine-cell-selected-bg-color: color-mix(in srgb, var(--plum) 22%, var(--paper));
  --alpine-cell-selected-color: var(--ink);
  --alpine-range-border: 2px solid var(--plum);
  --alpine-cell-active-box-shadow: inset 0 0 0 2px var(--plum);
  --alpine-large-editor-bg-color: var(--paper);
  --alpine-large-editor-color: var(--ink);
  --alpine-menu-bg-color: var(--paper);
  --alpine-menu-color: var(--ink);
  --alpine-menu-border: 1px solid var(--rule);
  --alpine-large-editor-border: 2px solid var(--plum);
  --alpine-large-editor-font-family: var(--sans);
  --alpine-cell-editable-box-shadow: inset 0 0 0 2px var(--plum);
  --alpine-header-resizable-handle-box-shadow: inset 0 0 0 1px var(--rule);
  --alpine-sort-indicator-color: var(--plum);
  --alpine-row-highlight-background-color: color-mix(in srgb, var(--plum) 14%, var(--paper));
}
.book-sheet {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
/* A held cell: a faint red wash (6%; 12% measured 4.22:1 in light), ink text. */
.book-sheet .slick-cell.cell-held {
  background: color-mix(in srgb, var(--red) 6%, var(--paper));
  color: var(--ink);
}
.book-sheet .slick-cell input { color: var(--ink); background: var(--paper); }
/* Editing: the vendor's literal #fff loses to these. */
.book-sheet .slick-cell.selected.editable { background: var(--paper); }
.book-sheet input.editor-text { background: var(--paper); color: var(--ink); }
.book-sheet .slick-cell.cell-held.selected { background: var(--alpine-cell-selected-bg-color); }
.book-sheet .slick-drag-replace-handle { background: var(--ink-mid); }
/* Menus are appended to <body>; slick.contextmenu.css loads later, so each rule is one level more specific. */
body .slick-context-menu { background: var(--paper-2); border: 1px solid var(--rule); box-shadow: none; color: var(--ink); font-family: var(--sans); }
body .slick-context-menu .slick-menu-title { border-bottom-color: var(--rule); }
body .slick-context-menu li a:hover { background: var(--paper-3); }
body .slick-context-menu-item:hover { background: var(--paper-3); border-color: var(--rule); }
body .slick-context-menu-item.slick-context-menu-item-divider,
body .slick-context-menu-item-divider.slick-context-menu-item:hover { background-color: var(--rule); }
body .slick-context-menu-item-disabled { color: var(--ink-mid); }
