@stll/folio-react 0.24.0 → 0.24.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { f as containedHandler, u as useDrawerFocus } from "./renderAsync-
|
|
1
|
+
import { f as containedHandler, u as useDrawerFocus } from "./renderAsync-6eWf0MfZ.js";
|
|
2
2
|
import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
3
3
|
import { CheckIcon, MoreVerticalIcon } from "lucide-react";
|
|
4
4
|
import { useLocale, useTranslations } from "use-intl";
|
|
5
|
+
import { scrollEditorTo } from "@stll/folio-core/paged-layout/editorScrollRoot";
|
|
5
6
|
import { closestHtmlElement, queryHtmlElement } from "@stll/folio-core/utils/domGuards";
|
|
6
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
8
|
import { PANEL_METRICS } from "@stll/folio-core/panel-layout";
|
|
@@ -369,7 +370,10 @@ const CommentsSidebar = ({ comments, onCommentClick, activeCommentId = null, onC
|
|
|
369
370
|
const scrollEl_1 = editorContainerRef?.current;
|
|
370
371
|
const anchorY = lastKnownCardPositionsRef.current.get(cardId_1) ?? anchorPositions?.get(cardId_1);
|
|
371
372
|
if (!scrollEl_1 || anchorY === void 0) return;
|
|
372
|
-
scrollEl_1
|
|
373
|
+
scrollEditorTo(scrollEl_1, {
|
|
374
|
+
top: Math.max(0, anchorY - scrollEl_1.clientHeight / 3),
|
|
375
|
+
behavior: "instant"
|
|
376
|
+
});
|
|
373
377
|
};
|
|
374
378
|
const hasPositions = !isDrawer && cardPositions.size > 0;
|
|
375
379
|
const avatarStyle = (name, size = 28) => ({
|
package/dist/compat/eigenpal.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as DocxEditor$1, t as renderAsync } from "../renderAsync-
|
|
1
|
+
import { n as DocxEditor$1, t as renderAsync } from "../renderAsync-6eWf0MfZ.js";
|
|
2
2
|
import { t as messages_exports } from "../messages.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { forwardRef } from "react";
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as formatZoom, c as FormattingBar, d as AutocompleteCaretOverlay, i as clampZoom, l as ZoomControl, n as DocxEditor, o as parseZoom, r as ZOOM_PRESETS, s as useWheelZoom, t as renderAsync } from "./renderAsync-
|
|
1
|
+
import { a as formatZoom, c as FormattingBar, d as AutocompleteCaretOverlay, i as clampZoom, l as ZoomControl, n as DocxEditor, o as parseZoom, r as ZOOM_PRESETS, s as useWheelZoom, t as renderAsync } from "./renderAsync-6eWf0MfZ.js";
|
|
2
2
|
import { n as FolioUIProvider } from "./folio-ui-DO95voaI.js";
|
|
3
3
|
import { t as FindReplaceDialog } from "./FindReplaceDialog-BUwFQWaq.js";
|
|
4
4
|
import { t as FootnotePropertiesDialog } from "./FootnotePropertiesDialog-6XdO0zBH.js";
|
|
@@ -9,10 +9,12 @@ import { IntlProvider, useFormatter, useTranslations } from "use-intl";
|
|
|
9
9
|
import { FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FolioPendingSuggestionRegistry, applyFolioDocumentOperations, assertSupportedFolioDocumentOperationVersion, createFolioAIEditSnapshot, createPendingSuggestionSourceSnapshot, getCommentAnchorsFromDoc, getFolioDocumentOperationIssues, getTrackedChangesFromDoc } from "@stll/folio-core/ai-edits";
|
|
10
10
|
import { resolveActiveEditorStory } from "@stll/folio-core/controller/activeEditorStory";
|
|
11
11
|
import { FOLIO_DOCX_SERIALIZATION_MODE, createFolioEditor } from "@stll/folio-core/controller/folioEditor";
|
|
12
|
+
import { createNoteReferenceFollower, withoutUnreferencedNotes } from "@stll/folio-core/prosemirror/noteReferenceReview";
|
|
12
13
|
import { cloneDocumentWithParagraphPropertySources } from "@stll/folio-core/docx/document-clone";
|
|
13
14
|
import { normalizeBaseDirection } from "@stll/folio-core/docx/normalizeBaseDirection";
|
|
14
15
|
import { getCachedNumberingMap } from "@stll/folio-core/docx/numberingParser";
|
|
15
16
|
import { classifyEditorKeydown, deleteSelectedTable, historyShortcutOwner, isFocusInInputLike, isKeydownInShortcutScope, isMacPlatform } from "@stll/folio-core/managers/editorShortcuts";
|
|
17
|
+
import { getEditorScrollRoot, scrollEditorBy, scrollEditorElementIntoView, scrollEditorTo } from "@stll/folio-core/paged-layout/editorScrollRoot";
|
|
16
18
|
import { computeScrollPageInfo, updateScrollPageTotal } from "@stll/folio-core/paged-layout/scrollPageInfo";
|
|
17
19
|
import { NO_LIST_STATE, TextSelection, addColumnLeft, addColumnRight, addRowAbove, addRowBelow, applyFormatMarks, applyStyle, applyTableStyle, autoFitContents, captureFormatMarks, clearFormatting, clearTextColor, continueNumbering, createStyleResolver, decreaseIndent, decreaseListLevel, deleteColumn, deleteRow, deleteTable, distributeColumns, extractSelectionState, getDocumentBuiltInStyles, getSelectedText, getTableContext, increaseIndent, increaseListLevel, listStateLevel, mergeCells, removeTabStop, removeTableBorders, restartNumbering, sameListState, schema, selectColumn, selectRow, selectTable, setAlignment, setAllTableBorders, setCellBorder, setCellFillColor, setCellMargins, setCellTextDirection, setCellVerticalAlign, setFontFamily, setFontSize, setHighlight, setIndentFirstLine, setIndentLeft, setIndentRight, setInsideTableBorders, setLineSpacing, setLtr, setNumberingValue, setOutsideTableBorders, setRowHeight, setRtl, setTableBorderColor, setTableBorderPreset, setTableBorderWidth, setTableProperties, setTextColor, splitCell, toggleBidi, toggleBold, toggleBulletList, toggleHeaderRow, toggleItalic, toggleNoWrap, toggleNumberedList, toggleStrike, toggleSubscript, toggleSuperscript, toggleUnderline } from "@stll/folio-core/prosemirror";
|
|
18
20
|
import { acceptAIEditRevision, acceptChange, acceptSuggestion, findAIEditRevisionRange, findChangeAtPosition, findNextChange, findParagraphBoundaryChangeAtPosition, findPreviousChange, findSuggestionRange, getSuggestions, rejectAIEditRevision, rejectChange, rejectSuggestion } from "@stll/folio-core/prosemirror/commands/comments";
|
|
@@ -79,7 +81,7 @@ import { onPaintedLayoutChange, readBlockRects } from "@stll/folio-core/paged-la
|
|
|
79
81
|
import { LayoutSelectionGate } from "@stll/folio-core/paged-layout/LayoutSelectionGate";
|
|
80
82
|
import { collectRunFontsAtPmPositions, measureDirectiveGutter, projectRangesToRects } from "@stll/folio-core/paged-layout/rangeProjection";
|
|
81
83
|
import { isReadOnlyEditKey } from "@stll/folio-core/paged-layout/readOnlyEditAttempt";
|
|
82
|
-
import { getPageScrollTarget
|
|
84
|
+
import { getPageScrollTarget } from "@stll/folio-core/paged-layout/scrollNavigation";
|
|
83
85
|
import { PAGES_CONTAINER_CLASS, scrollPagesToPmPosition } from "@stll/folio-core/paged-layout/scrollToPmPosition";
|
|
84
86
|
import { flashParagraphFragmentsByParaId } from "@stll/folio-core/paged-layout/paragraphFlash";
|
|
85
87
|
import { resizeColumnPair } from "@stll/folio-core/paged-layout/tableColumnResize";
|
|
@@ -95,6 +97,7 @@ import { createVisualLineState, handleVisualLineKeyDown } from "@stll/folio-core
|
|
|
95
97
|
import { clampRangeToDocSize, resolveFolioAIBlockRange, resolveFolioAITextRange, resolvePassageRange } from "@stll/folio-core/ai-edits/blockRange";
|
|
96
98
|
import { getFolioParaIdFromBlockId } from "@stll/folio-core/types/block-id";
|
|
97
99
|
import { getPageTextFromLayout } from "@stll/folio-core/paged-layout/pageText";
|
|
100
|
+
import { allocateCommentId, seedCommentIdAbove } from "@stll/folio-core/prosemirror/commentIdAllocator";
|
|
98
101
|
import { ContentControlWidgetController } from "@stll/folio-core/controller/contentControlWidgetController";
|
|
99
102
|
import { createDefaultFindOptions, findInDocument } from "@stll/folio-core/utils/findReplace";
|
|
100
103
|
import { PANEL_METRICS, computePanelLayout } from "@stll/folio-core/panel-layout";
|
|
@@ -852,10 +855,7 @@ const AnonymizationRectsOverlay = ({ groups, onTermClick, selectedCanonical = nu
|
|
|
852
855
|
index: nextIndex
|
|
853
856
|
};
|
|
854
857
|
const el = spans[nextIndex];
|
|
855
|
-
if (el) el
|
|
856
|
-
block: "center",
|
|
857
|
-
behavior: prefersReducedMotionBehavior()
|
|
858
|
-
});
|
|
858
|
+
if (el) scrollEditorElementIntoView(el);
|
|
859
859
|
}, [selectedCanonical, selectionSeq]);
|
|
860
860
|
const overlayRef = useRef(null);
|
|
861
861
|
useEffect(() => {
|
|
@@ -2169,18 +2169,6 @@ const TemplateDirectivesOverlay = (t0) => {
|
|
|
2169
2169
|
const EDGE_ZONE = 40;
|
|
2170
2170
|
/** Maximum scroll speed in pixels per frame (~60fps). */
|
|
2171
2171
|
const MAX_SPEED = 12;
|
|
2172
|
-
/**
|
|
2173
|
-
* Find the nearest scrollable ancestor.
|
|
2174
|
-
*/
|
|
2175
|
-
function findScrollParent(el) {
|
|
2176
|
-
let parent = el.parentElement;
|
|
2177
|
-
while (parent && parent !== document.documentElement) {
|
|
2178
|
-
const { overflowY } = getComputedStyle(parent);
|
|
2179
|
-
if ((overflowY === "auto" || overflowY === "scroll") && parent.scrollHeight > parent.clientHeight) return parent;
|
|
2180
|
-
parent = parent.parentElement;
|
|
2181
|
-
}
|
|
2182
|
-
return null;
|
|
2183
|
-
}
|
|
2184
2172
|
function useDragAutoScroll({ pagesContainerRef, onScrollExtendSelection }) {
|
|
2185
2173
|
const rafIdRef = useRef(null);
|
|
2186
2174
|
const lastMouseRef = useRef({
|
|
@@ -2188,14 +2176,7 @@ function useDragAutoScroll({ pagesContainerRef, onScrollExtendSelection }) {
|
|
|
2188
2176
|
y: 0
|
|
2189
2177
|
});
|
|
2190
2178
|
const activeRef = useRef(false);
|
|
2191
|
-
const
|
|
2192
|
-
const getScrollParent = useCallback(() => {
|
|
2193
|
-
if (scrollParentRef.current) return scrollParentRef.current;
|
|
2194
|
-
const pages = pagesContainerRef.current;
|
|
2195
|
-
if (!pages) return null;
|
|
2196
|
-
scrollParentRef.current = findScrollParent(pages);
|
|
2197
|
-
return scrollParentRef.current;
|
|
2198
|
-
}, [pagesContainerRef]);
|
|
2179
|
+
const getScrollParent = useCallback(() => getEditorScrollRoot(pagesContainerRef.current), [pagesContainerRef]);
|
|
2199
2180
|
const stopAutoScroll = useCallback(() => {
|
|
2200
2181
|
activeRef.current = false;
|
|
2201
2182
|
if (rafIdRef.current !== null) {
|
|
@@ -2218,7 +2199,7 @@ function useDragAutoScroll({ pagesContainerRef, onScrollExtendSelection }) {
|
|
|
2218
2199
|
scrollDelta = Math.min(MAX_SPEED, proximity_0 / EDGE_ZONE * MAX_SPEED);
|
|
2219
2200
|
}
|
|
2220
2201
|
if (scrollDelta !== 0) {
|
|
2221
|
-
container
|
|
2202
|
+
scrollEditorBy(container, scrollDelta);
|
|
2222
2203
|
onScrollExtendSelection(mx, my);
|
|
2223
2204
|
}
|
|
2224
2205
|
rafIdRef.current = requestAnimationFrame(tick);
|
|
@@ -2840,11 +2821,18 @@ function buildFootnoteRenderItems(pageFootnoteMap, footnoteContentMap, doc) {
|
|
|
2840
2821
|
const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
2841
2822
|
const { document, documentIO, documentIdentity, fonts: hostFonts, styles, theme: _theme, sectionProperties, headerContent, footerContent, firstPageHeaderContent, firstPageFooterContent, headerContentRId, footerContentRId, firstPageHeaderContentRId, firstPageFooterContentRId, readOnly = false, pageGap = 24, zoom = 1, pageRenderer, markupView, showMarginGuides = false, marginGuideColor, onDocumentChange, onReadOnlyEditAttempt, onCopy, onCut, onPaste, onSelectionChange, onSelectionTextChange, onEditorViewReady, externalPlugins = EMPTY_PLUGINS, showTemplateDirectives = true, collaboration, extensionManager, suggestionModeActive = false, suggestionAuthor, onActiveNoteStoryChange, onHeaderFooterDoubleClick, hfEditMode, activeHeaderFooterRId, onBodyClick, className, style, pageEndGutter = 0, sidebarOverlay, scrollContainerRef: scrollContainerRefProp, onHyperlinkClick, onContextMenu, onAnchorPositionsChange, onTotalPagesChange, onError, anchorPositionMode = "comments-and-revisions", onAnonymizationTermClick, selectedAnonymizationCanonical = null, anonymizationSelectionSeq } = props;
|
|
2842
2823
|
const getScrollContainer = useCallback(() => {
|
|
2843
|
-
if (scrollContainerRefProp && typeof scrollContainerRefProp === "object") return scrollContainerRefProp.current;
|
|
2844
|
-
return containerRef.current;
|
|
2824
|
+
if (scrollContainerRefProp && typeof scrollContainerRefProp === "object") return getEditorScrollRoot(scrollContainerRefProp.current);
|
|
2825
|
+
return getEditorScrollRoot(containerRef.current);
|
|
2845
2826
|
}, [scrollContainerRefProp]);
|
|
2846
2827
|
const containerRef = useRef(null);
|
|
2847
2828
|
const pagesContainerRef = useRef(null);
|
|
2829
|
+
useLayoutEffect(() => {
|
|
2830
|
+
if (!scrollContainerRefProp || typeof scrollContainerRefProp !== "object") return;
|
|
2831
|
+
const root = scrollContainerRefProp.current;
|
|
2832
|
+
if (!root || root.hasAttribute("data-folio-scroll")) return;
|
|
2833
|
+
root.setAttribute("data-folio-scroll", "");
|
|
2834
|
+
return () => root.removeAttribute("data-folio-scroll");
|
|
2835
|
+
}, [scrollContainerRefProp]);
|
|
2848
2836
|
const folioEmitterRef = useRef(createFolioEditorEmitter());
|
|
2849
2837
|
const hiddenPMRef = useRef(null);
|
|
2850
2838
|
const hfPMsRef = useRef(null);
|
|
@@ -3121,6 +3109,7 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
3121
3109
|
onError: (error) => onErrorRef.current?.(error)
|
|
3122
3110
|
}));
|
|
3123
3111
|
useEffect(() => hyphenationReadiness.cancel, [hyphenationReadiness]);
|
|
3112
|
+
const laidOutLayoutInputSignatureRef = useRef(null);
|
|
3124
3113
|
const runLayoutPipeline$1 = useCallback((state_0, options = {}) => {
|
|
3125
3114
|
const outcome = runLayoutPipeline({
|
|
3126
3115
|
contentWidth,
|
|
@@ -3168,6 +3157,7 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
3168
3157
|
if (outcome.blockLookup) painterRef.current?.setBlockLookup(outcome.blockLookup);
|
|
3169
3158
|
if (outcome.layout) {
|
|
3170
3159
|
layoutRef.current = outcome.layout;
|
|
3160
|
+
laidOutLayoutInputSignatureRef.current = layoutInputSignature;
|
|
3171
3161
|
folioEmitterRef.current.emit("layoutComplete", outcome.layout);
|
|
3172
3162
|
}
|
|
3173
3163
|
}, [
|
|
@@ -3196,7 +3186,8 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
3196
3186
|
defaultTabStop,
|
|
3197
3187
|
mirrorMargins,
|
|
3198
3188
|
styles,
|
|
3199
|
-
markupView
|
|
3189
|
+
markupView,
|
|
3190
|
+
layoutInputSignature
|
|
3200
3191
|
]);
|
|
3201
3192
|
const runLayoutPipelineRef = useRef(runLayoutPipeline$1);
|
|
3202
3193
|
runLayoutPipelineRef.current = runLayoutPipeline$1;
|
|
@@ -3241,17 +3232,23 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
3241
3232
|
clock: browserClock
|
|
3242
3233
|
});
|
|
3243
3234
|
const documentChangeNotifyTimerRef = useRef(null);
|
|
3235
|
+
const [noteFollower] = useState(createNoteReferenceFollower);
|
|
3236
|
+
useEffect(() => {
|
|
3237
|
+
noteFollower.reset();
|
|
3238
|
+
}, [documentIdentity, noteFollower]);
|
|
3244
3239
|
const flushDocumentChangeNotification = useCallback(() => {
|
|
3245
3240
|
if (documentChangeNotifyTimerRef.current !== null) {
|
|
3246
3241
|
window.clearTimeout(documentChangeNotifyTimerRef.current);
|
|
3247
3242
|
documentChangeNotifyTimerRef.current = null;
|
|
3248
3243
|
}
|
|
3249
|
-
|
|
3244
|
+
let newDoc = hiddenPMRef.current?.getDocument();
|
|
3245
|
+
const body = hiddenPMRef.current?.getState()?.doc;
|
|
3246
|
+
if (newDoc && body) newDoc = noteFollower.reconcile(newDoc, body);
|
|
3250
3247
|
if (newDoc) {
|
|
3251
3248
|
onDocumentChangeRef.current?.(newDoc);
|
|
3252
3249
|
folioEmitterRef.current.emit("docChange", newDoc);
|
|
3253
3250
|
}
|
|
3254
|
-
}, []);
|
|
3251
|
+
}, [noteFollower]);
|
|
3255
3252
|
const scheduleDocumentChangeNotification = useCallback(() => {
|
|
3256
3253
|
if (documentChangeNotifyTimerRef.current !== null) window.clearTimeout(documentChangeNotifyTimerRef.current);
|
|
3257
3254
|
documentChangeNotifyTimerRef.current = window.setTimeout(() => {
|
|
@@ -3769,7 +3766,9 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
3769
3766
|
/**
|
|
3770
3767
|
* Handle PM transaction - re-layout on content/selection change.
|
|
3771
3768
|
*/
|
|
3772
|
-
const handleTransaction = useCallback(({ newState, docChanged }) => {
|
|
3769
|
+
const handleTransaction = useCallback(({ newState, docChanged, transactions }) => {
|
|
3770
|
+
const before = transactions[0]?.before;
|
|
3771
|
+
if (docChanged && before) noteFollower.noteBase(before);
|
|
3773
3772
|
const nextMatches = anonymizationDecorationsKey.getState(newState)?.matches ?? [];
|
|
3774
3773
|
const matchesChanged = nextMatches !== anonymizationMatchesRef.current;
|
|
3775
3774
|
anonymizationMatchesRef.current = nextMatches;
|
|
@@ -3830,7 +3829,8 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
3830
3829
|
updateDirectivesOverlay,
|
|
3831
3830
|
updateAISuggestionsOverlay,
|
|
3832
3831
|
passageHighlightOverlayRequestGate,
|
|
3833
|
-
syncCoordinator
|
|
3832
|
+
syncCoordinator,
|
|
3833
|
+
noteFollower
|
|
3834
3834
|
]);
|
|
3835
3835
|
/**
|
|
3836
3836
|
* Handle a transaction on a persistent hidden HF EditorView.
|
|
@@ -4016,10 +4016,8 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
4016
4016
|
scrollToPositionImpl(target_0.pmPos);
|
|
4017
4017
|
return;
|
|
4018
4018
|
}
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
inline: "nearest"
|
|
4022
|
-
});
|
|
4019
|
+
const shell = pagesContainerRef.current?.querySelector(`[data-page-number="${String(target_0.pageIndex + 1)}"]`);
|
|
4020
|
+
scrollEditorElementIntoView(shell ?? null);
|
|
4023
4021
|
}, [layout, scrollToPositionImpl]);
|
|
4024
4022
|
const scrollToParaIdImpl = useCallback((paraId, options_2) => {
|
|
4025
4023
|
const state_7 = hiddenPMRef.current?.getState();
|
|
@@ -5087,11 +5085,17 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
5087
5085
|
if (["PageUp", "PageDown"].includes(e_7.key) && !e_7.metaKey && !e_7.ctrlKey) {}
|
|
5088
5086
|
if (e_7.key === "Home" && (e_7.metaKey || e_7.ctrlKey)) {
|
|
5089
5087
|
const sc = getScrollContainer();
|
|
5090
|
-
if (sc) sc
|
|
5088
|
+
if (sc) scrollEditorTo(sc, {
|
|
5089
|
+
top: 0,
|
|
5090
|
+
behavior: "instant"
|
|
5091
|
+
});
|
|
5091
5092
|
}
|
|
5092
5093
|
if (e_7.key === "End" && (e_7.metaKey || e_7.ctrlKey)) {
|
|
5093
5094
|
const sc_0 = getScrollContainer();
|
|
5094
|
-
if (sc_0) sc_0
|
|
5095
|
+
if (sc_0) scrollEditorTo(sc_0, {
|
|
5096
|
+
top: sc_0.scrollHeight,
|
|
5097
|
+
behavior: "instant"
|
|
5098
|
+
});
|
|
5095
5099
|
}
|
|
5096
5100
|
}, [
|
|
5097
5101
|
copySelectionText,
|
|
@@ -5347,18 +5351,14 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
5347
5351
|
};
|
|
5348
5352
|
}, [hostFonts]);
|
|
5349
5353
|
const layoutInputEpochRef = useRef(0);
|
|
5350
|
-
const lastLayoutInputSignatureRef = useRef(null);
|
|
5351
5354
|
useEffect(() => {
|
|
5352
5355
|
if (layoutInputEpochRef.current === 0) {
|
|
5353
5356
|
layoutInputEpochRef.current = 1;
|
|
5354
|
-
lastLayoutInputSignatureRef.current = layoutInputSignature;
|
|
5355
5357
|
return;
|
|
5356
5358
|
}
|
|
5357
5359
|
const state_9 = hiddenPMRef.current?.getView()?.state ?? (preHiddenInitialLayoutDoneRef.current && precomputedInitialDocumentRef.current === document ? layoutSessionRef.current.lastEditorState : null);
|
|
5358
5360
|
if (state_9) {
|
|
5359
|
-
|
|
5360
|
-
lastLayoutInputSignatureRef.current = layoutInputSignature;
|
|
5361
|
-
if (!layoutInputsChanged && state_9.doc === layoutSessionRef.current.lastPmDoc) return;
|
|
5361
|
+
if (laidOutLayoutInputSignatureRef.current === layoutInputSignature && state_9.doc === layoutSessionRef.current.lastPmDoc) return;
|
|
5362
5362
|
runLayoutPipelineRef.current(state_9, { reason: "layout-input" });
|
|
5363
5363
|
}
|
|
5364
5364
|
}, [document, layoutInputSignature]);
|
|
@@ -5399,7 +5399,9 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
5399
5399
|
return folioEditor;
|
|
5400
5400
|
},
|
|
5401
5401
|
getDocument() {
|
|
5402
|
-
|
|
5402
|
+
if (documentChangeNotifyTimerRef.current !== null) flushDocumentChangeNotification();
|
|
5403
|
+
const editorDocument = folioEditor.getDocument();
|
|
5404
|
+
const current_0 = editorDocument ? noteFollower.withPending(editorDocument) : null;
|
|
5403
5405
|
return current_0 ? noteEditorRef.current?.snapshotDocument(current_0) ?? current_0 : null;
|
|
5404
5406
|
},
|
|
5405
5407
|
getState() {
|
|
@@ -5440,20 +5442,22 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
5440
5442
|
undo() {
|
|
5441
5443
|
const target_5 = getActiveEditorStory();
|
|
5442
5444
|
if (target_5.type === "none") return false;
|
|
5443
|
-
return undo(target_5.view.state, target_5.view.dispatch);
|
|
5445
|
+
return target_5.type === "body" ? hiddenPMRef.current?.undo() ?? false : undo(target_5.view.state, target_5.view.dispatch);
|
|
5444
5446
|
},
|
|
5445
5447
|
redo() {
|
|
5446
5448
|
const target_6 = getActiveEditorStory();
|
|
5447
5449
|
if (target_6.type === "none") return false;
|
|
5448
|
-
return redo(target_6.view.state, target_6.view.dispatch);
|
|
5450
|
+
return target_6.type === "body" ? hiddenPMRef.current?.redo() ?? false : redo(target_6.view.state, target_6.view.dispatch);
|
|
5449
5451
|
},
|
|
5450
5452
|
canUndo() {
|
|
5451
5453
|
const target_7 = getActiveEditorStory();
|
|
5452
|
-
|
|
5454
|
+
if (target_7.type === "none") return false;
|
|
5455
|
+
return target_7.type === "body" ? hiddenPMRef.current?.canUndo() ?? false : undo(target_7.view.state);
|
|
5453
5456
|
},
|
|
5454
5457
|
canRedo() {
|
|
5455
5458
|
const target_8 = getActiveEditorStory();
|
|
5456
|
-
|
|
5459
|
+
if (target_8.type === "none") return false;
|
|
5460
|
+
return target_8.type === "body" ? hiddenPMRef.current?.canRedo() ?? false : redo(target_8.view.state);
|
|
5457
5461
|
},
|
|
5458
5462
|
setSelection(anchor_3, head_1) {
|
|
5459
5463
|
folioEditor.setSelection(anchor_3, head_1);
|
|
@@ -5534,8 +5538,10 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
5534
5538
|
}
|
|
5535
5539
|
}), [
|
|
5536
5540
|
ensureHiddenEditorView,
|
|
5541
|
+
flushDocumentChangeNotification,
|
|
5537
5542
|
folioEditor,
|
|
5538
5543
|
getActiveEditorStory,
|
|
5544
|
+
noteFollower,
|
|
5539
5545
|
getScrollContainer,
|
|
5540
5546
|
refreshBodyImeCaretAnchor,
|
|
5541
5547
|
scrollToPageImpl,
|
|
@@ -5590,6 +5596,7 @@ const PagedEditor = forwardRef(function PagedEditor(props, ref) {
|
|
|
5590
5596
|
};
|
|
5591
5597
|
return /* @__PURE__ */ jsxs("div", {
|
|
5592
5598
|
ref: containerRef,
|
|
5599
|
+
"data-folio-scroll": scrollContainerRefProp && typeof scrollContainerRefProp === "object" ? void 0 : "",
|
|
5593
5600
|
className: `folio-root paged-editor ${className ?? ""}`,
|
|
5594
5601
|
style: {
|
|
5595
5602
|
...containerStyles,
|
|
@@ -6791,20 +6798,6 @@ const toast = (msg) => {
|
|
|
6791
6798
|
};
|
|
6792
6799
|
/** Stable empty anchor positions Map used as the initial state. */
|
|
6793
6800
|
const EMPTY_ANCHOR_POSITIONS = /* @__PURE__ */ new Map();
|
|
6794
|
-
let nextCommentId = Date.now();
|
|
6795
|
-
function allocateCommentId() {
|
|
6796
|
-
return nextCommentId++;
|
|
6797
|
-
}
|
|
6798
|
-
/**
|
|
6799
|
-
* Bump the in-process comment-id counter above `id` so a later
|
|
6800
|
-
* `allocateCommentId()` can never re-mint an id that was adopted from an
|
|
6801
|
-
* external source-of-truth model. No-op when `id` is already below the
|
|
6802
|
-
* current counter. Mirrors the allocator-seeding behaviour of upstream
|
|
6803
|
-
* docx-editor's `CommentIdAllocator.seedAbove` (05f2ab84).
|
|
6804
|
-
*/
|
|
6805
|
-
function seedCommentIdAbove(id) {
|
|
6806
|
-
if (id >= nextCommentId) nextCommentId = id + 1;
|
|
6807
|
-
}
|
|
6808
6801
|
function getCommentAuthorKey(author) {
|
|
6809
6802
|
const trimmed = author?.trim();
|
|
6810
6803
|
return trimmed && trimmed.length > 0 ? trimmed : "Unknown";
|
|
@@ -7163,10 +7156,7 @@ const readFindSelectionSeed = () => {
|
|
|
7163
7156
|
//#region src/components/dialogs/findReplaceUtils.ts
|
|
7164
7157
|
const scrollToMatch = (containerElement, match) => {
|
|
7165
7158
|
if (!containerElement) return;
|
|
7166
|
-
(containerElement.querySelector(`[data-paragraph-index="${match.paragraphIndex}"]`) ?? containerElement.querySelector(`.layout-paragraph[data-block-id="block-${match.paragraphIndex + 1}"]`) ?? containerElement.querySelectorAll(".layout-paragraph").item(match.paragraphIndex))
|
|
7167
|
-
behavior: prefersReducedMotionBehavior(),
|
|
7168
|
-
block: "center"
|
|
7169
|
-
});
|
|
7159
|
+
scrollEditorElementIntoView(containerElement.querySelector(`[data-paragraph-index="${match.paragraphIndex}"]`) ?? containerElement.querySelector(`.layout-paragraph[data-block-id="block-${match.paragraphIndex + 1}"]`) ?? containerElement.querySelectorAll(".layout-paragraph").item(match.paragraphIndex));
|
|
7170
7160
|
};
|
|
7171
7161
|
//#endregion
|
|
7172
7162
|
//#region src/components/dialogs/useFindReplace.ts
|
|
@@ -10070,9 +10060,10 @@ function useContextMenu(t0) {
|
|
|
10070
10060
|
* callbacks each render.
|
|
10071
10061
|
*/
|
|
10072
10062
|
const useDocumentLoader = (t0) => {
|
|
10073
|
-
const $ = c(
|
|
10063
|
+
const $ = c(22);
|
|
10074
10064
|
const { documentBuffer, initialDocument, password, history, onError, onCompatibilityChange, onReset, setDocumentLoadState } = t0;
|
|
10075
10065
|
const originalBufferRef = useRef(null);
|
|
10066
|
+
const originalBufferIdentityRef = useRef(null);
|
|
10076
10067
|
const [loadedDocumentIdentity, setLoadedDocumentIdentity] = useState("0");
|
|
10077
10068
|
let t1;
|
|
10078
10069
|
if ($[0] !== history || $[1] !== onCompatibilityChange || $[2] !== onError || $[3] !== onReset || $[4] !== setDocumentLoadState) {
|
|
@@ -10145,26 +10136,33 @@ const useDocumentLoader = (t0) => {
|
|
|
10145
10136
|
useEffect(t3, t4);
|
|
10146
10137
|
let t5;
|
|
10147
10138
|
let t6;
|
|
10148
|
-
if ($[12] !== documentBuffer || $[13] !== history.state) {
|
|
10139
|
+
if ($[12] !== documentBuffer || $[13] !== history.state || $[14] !== loadedDocumentIdentity) {
|
|
10149
10140
|
t5 = () => {
|
|
10141
|
+
if (originalBufferIdentityRef.current === loadedDocumentIdentity) return;
|
|
10142
|
+
originalBufferIdentityRef.current = loadedDocumentIdentity;
|
|
10150
10143
|
if (history.state?.originalBuffer) {
|
|
10151
10144
|
originalBufferRef.current = history.state.originalBuffer;
|
|
10152
10145
|
return;
|
|
10153
10146
|
}
|
|
10154
|
-
|
|
10147
|
+
originalBufferRef.current = documentBuffer instanceof ArrayBuffer ? documentBuffer : null;
|
|
10155
10148
|
};
|
|
10156
|
-
t6 = [
|
|
10149
|
+
t6 = [
|
|
10150
|
+
history.state,
|
|
10151
|
+
documentBuffer,
|
|
10152
|
+
loadedDocumentIdentity
|
|
10153
|
+
];
|
|
10157
10154
|
$[12] = documentBuffer;
|
|
10158
10155
|
$[13] = history.state;
|
|
10159
|
-
$[14] =
|
|
10160
|
-
$[15] =
|
|
10156
|
+
$[14] = loadedDocumentIdentity;
|
|
10157
|
+
$[15] = t5;
|
|
10158
|
+
$[16] = t6;
|
|
10161
10159
|
} else {
|
|
10162
|
-
t5 = $[
|
|
10163
|
-
t6 = $[
|
|
10160
|
+
t5 = $[15];
|
|
10161
|
+
t6 = $[16];
|
|
10164
10162
|
}
|
|
10165
10163
|
useEffect(t5, t6);
|
|
10166
10164
|
let t7;
|
|
10167
|
-
if ($[
|
|
10165
|
+
if ($[17] !== api.loadBuffer || $[18] !== api.loadParsedDocument || $[19] !== api.resetForNewDocument || $[20] !== loadedDocumentIdentity) {
|
|
10168
10166
|
t7 = {
|
|
10169
10167
|
loadBuffer: api.loadBuffer,
|
|
10170
10168
|
loadParsedDocument: api.loadParsedDocument,
|
|
@@ -10172,12 +10170,12 @@ const useDocumentLoader = (t0) => {
|
|
|
10172
10170
|
originalBufferRef,
|
|
10173
10171
|
loadedDocumentIdentity
|
|
10174
10172
|
};
|
|
10175
|
-
$[
|
|
10176
|
-
$[
|
|
10177
|
-
$[
|
|
10178
|
-
$[
|
|
10179
|
-
$[
|
|
10180
|
-
} else t7 = $[
|
|
10173
|
+
$[17] = api.loadBuffer;
|
|
10174
|
+
$[18] = api.loadParsedDocument;
|
|
10175
|
+
$[19] = api.resetForNewDocument;
|
|
10176
|
+
$[20] = loadedDocumentIdentity;
|
|
10177
|
+
$[21] = t7;
|
|
10178
|
+
} else t7 = $[21];
|
|
10181
10179
|
return t7;
|
|
10182
10180
|
};
|
|
10183
10181
|
//#endregion
|
|
@@ -11006,7 +11004,10 @@ function useZoomAndPageInfo({ scrollContainerRef, pagedEditorRef, initialZoom })
|
|
|
11006
11004
|
if (anchor.zoom === zoom) return;
|
|
11007
11005
|
const scrollContainer_1 = scrollContainerRef.current;
|
|
11008
11006
|
if (!scrollContainer_1) return;
|
|
11009
|
-
scrollContainer_1
|
|
11007
|
+
scrollEditorTo(scrollContainer_1, {
|
|
11008
|
+
top: getScrollTopForZoomAnchor(anchor, zoom),
|
|
11009
|
+
behavior: "instant"
|
|
11010
|
+
});
|
|
11010
11011
|
updateScrollPageInfo(scrollContainer_1);
|
|
11011
11012
|
scheduleScrollPageInfoFade();
|
|
11012
11013
|
}, [
|
|
@@ -12624,15 +12625,25 @@ function useFolioComments({ doc, autoOpenReviewSidebar, anchorPositions, editorC
|
|
|
12624
12625
|
const sanitizedCommentsProp = useMemo(() => commentsProp !== void 0 ? sanitizeControlledComments(commentsProp) : void 0, [commentsProp]);
|
|
12625
12626
|
const isControlledComments = sanitizedCommentsProp !== void 0;
|
|
12626
12627
|
const comments = isControlledComments ? sanitizedCommentsProp : internalComments;
|
|
12628
|
+
useLayoutEffect(() => {
|
|
12629
|
+
for (const { id } of doc?.package.document.comments ?? []) seedCommentIdAbove(id);
|
|
12630
|
+
for (const { id: id_0 } of comments) seedCommentIdAbove(id_0);
|
|
12631
|
+
}, [comments, doc]);
|
|
12627
12632
|
const commentsDirtyRef = useRef(false);
|
|
12628
12633
|
const commentsRef = useRef(comments);
|
|
12629
12634
|
commentsRef.current = comments;
|
|
12630
12635
|
const readonlyCommentsRef = commentsRef;
|
|
12631
12636
|
const onCommentsChangeRef = useRef(onCommentsChange);
|
|
12632
12637
|
onCommentsChangeRef.current = onCommentsChange;
|
|
12638
|
+
const createComment$1 = useCallback((text, author, parentId) => {
|
|
12639
|
+
for (const { id: id_1 } of doc?.package.document.comments ?? []) seedCommentIdAbove(id_1);
|
|
12640
|
+
for (const { id: id_2 } of commentsRef.current) seedCommentIdAbove(id_2);
|
|
12641
|
+
return createComment(text, author, parentId);
|
|
12642
|
+
}, [doc]);
|
|
12633
12643
|
const setComments = useCallback((next) => {
|
|
12634
12644
|
const resolved = typeof next === "function" ? next(commentsRef.current) : next;
|
|
12635
12645
|
if (resolved === commentsRef.current) return;
|
|
12646
|
+
for (const { id: id_3 } of resolved) seedCommentIdAbove(id_3);
|
|
12636
12647
|
commentsRef.current = resolved;
|
|
12637
12648
|
if (!isControlledComments) setInternalComments(resolved);
|
|
12638
12649
|
onCommentsChangeRef.current?.(resolved);
|
|
@@ -12680,13 +12691,13 @@ function useFolioComments({ doc, autoOpenReviewSidebar, anchorPositions, editorC
|
|
|
12680
12691
|
const visibleComments = useMemo(() => {
|
|
12681
12692
|
const visibleRootIds = /* @__PURE__ */ new Set();
|
|
12682
12693
|
for (const comment_1 of comments) {
|
|
12683
|
-
const
|
|
12684
|
-
if (
|
|
12685
|
-
visibleRootIds.add(
|
|
12694
|
+
const parentId_0 = getCommentParentId(comment_1);
|
|
12695
|
+
if (parentId_0 === null || parentId_0 === void 0 || !visibleCommentIds.has(comment_1.id)) continue;
|
|
12696
|
+
visibleRootIds.add(parentId_0);
|
|
12686
12697
|
}
|
|
12687
12698
|
return comments.filter((comment_2) => {
|
|
12688
|
-
const
|
|
12689
|
-
if (
|
|
12699
|
+
const parentId_1 = getCommentParentId(comment_2);
|
|
12700
|
+
if (parentId_1 !== null && parentId_1 !== void 0) return visibleCommentIds.has(comment_2.id);
|
|
12690
12701
|
return visibleCommentIds.has(comment_2.id) || visibleRootIds.has(comment_2.id);
|
|
12691
12702
|
});
|
|
12692
12703
|
}, [comments, visibleCommentIds]);
|
|
@@ -12699,7 +12710,7 @@ function useFolioComments({ doc, autoOpenReviewSidebar, anchorPositions, editorC
|
|
|
12699
12710
|
if (!root) return;
|
|
12700
12711
|
const nodes = root.querySelectorAll(`.layout-run-text${COMMENT_ANCHOR_SELECTOR}`);
|
|
12701
12712
|
for (const node of nodes) {
|
|
12702
|
-
const commentIds = commentAnchorIds(node).map((
|
|
12713
|
+
const commentIds = commentAnchorIds(node).map((id_4) => Number.parseInt(id_4, 10));
|
|
12703
12714
|
if (!commentIds.some((commentId) => commentId === -1 || visibleCommentIds.has(commentId))) {
|
|
12704
12715
|
node.style.backgroundColor = "transparent";
|
|
12705
12716
|
node.style.borderBottom = "2px solid transparent";
|
|
@@ -12744,6 +12755,7 @@ function useFolioComments({ doc, autoOpenReviewSidebar, anchorPositions, editorC
|
|
|
12744
12755
|
return {
|
|
12745
12756
|
comments,
|
|
12746
12757
|
setComments,
|
|
12758
|
+
createComment: createComment$1,
|
|
12747
12759
|
isControlledComments,
|
|
12748
12760
|
commentsRef: readonlyCommentsRef,
|
|
12749
12761
|
commentsDirtyRef,
|
|
@@ -12781,7 +12793,7 @@ function useFolioComments({ doc, autoOpenReviewSidebar, anchorPositions, editorC
|
|
|
12781
12793
|
*/
|
|
12782
12794
|
/** No headings to track while the outline is not shown. */
|
|
12783
12795
|
const NO_HEADINGS = [];
|
|
12784
|
-
const CommentsSidebar = lazy(() => import("./CommentsSidebar-
|
|
12796
|
+
const CommentsSidebar = lazy(() => import("./CommentsSidebar-Bk5pQ_2C.js").then((m) => ({ default: m.CommentsSidebar })));
|
|
12785
12797
|
const TextContextMenu = lazy(() => import("./TextContextMenu-Bqth8itn.js").then((m) => ({ default: m.TextContextMenu })));
|
|
12786
12798
|
const loadAttemptSelectiveSave = async () => {
|
|
12787
12799
|
const { attemptSelectiveSave } = await import("@stll/folio-core/docx/selectiveSave");
|
|
@@ -13004,8 +13016,30 @@ const DocxEditor = forwardRef(function DocxEditor({ documentBuffer, password, do
|
|
|
13004
13016
|
if (!onEditorViewReady) return;
|
|
13005
13017
|
if (lastReportedViewRef.current === view_0) return;
|
|
13006
13018
|
lastReportedViewRef.current = view_0;
|
|
13019
|
+
if (view_0 && initialScrollTop !== void 0) {
|
|
13020
|
+
const initialScroll = initialScrollRef.current;
|
|
13021
|
+
switch (initialScroll.status) {
|
|
13022
|
+
case "scheduled":
|
|
13023
|
+
cancelAnimationFrame(initialScroll.frame);
|
|
13024
|
+
scrollEditorTo(scrollContainerRef.current, {
|
|
13025
|
+
top: initialScrollTop,
|
|
13026
|
+
behavior: "instant"
|
|
13027
|
+
});
|
|
13028
|
+
initialScrollRef.current = { status: "applied" };
|
|
13029
|
+
break;
|
|
13030
|
+
case "waiting":
|
|
13031
|
+
scrollEditorTo(scrollContainerRef.current, {
|
|
13032
|
+
top: initialScrollTop,
|
|
13033
|
+
behavior: "instant"
|
|
13034
|
+
});
|
|
13035
|
+
initialScrollRef.current = { status: "applied" };
|
|
13036
|
+
break;
|
|
13037
|
+
case "applied": break;
|
|
13038
|
+
default: return initialScroll;
|
|
13039
|
+
}
|
|
13040
|
+
}
|
|
13007
13041
|
onEditorViewReady(view_0);
|
|
13008
|
-
}, [onEditorViewReady]);
|
|
13042
|
+
}, [onEditorViewReady, initialScrollTop]);
|
|
13009
13043
|
useLayoutEffect(() => {
|
|
13010
13044
|
if (!onEditorViewReady) return;
|
|
13011
13045
|
const view_1 = pagedEditorRef.current?.getView() ?? null;
|
|
@@ -13064,7 +13098,7 @@ const DocxEditor = forwardRef(function DocxEditor({ documentBuffer, password, do
|
|
|
13064
13098
|
const imageInputRef = useRef(null);
|
|
13065
13099
|
const editorContentRef = useRef(null);
|
|
13066
13100
|
const scrollContainerRef = useRef(null);
|
|
13067
|
-
const
|
|
13101
|
+
const initialScrollRef = useRef({ status: "waiting" });
|
|
13068
13102
|
const [widestLaidOutPageWidth, setWidestLaidOutPageWidth] = useState(null);
|
|
13069
13103
|
const hasDocument = history.state !== null;
|
|
13070
13104
|
useEffect(() => {
|
|
@@ -13105,7 +13139,7 @@ const DocxEditor = forwardRef(function DocxEditor({ documentBuffer, password, do
|
|
|
13105
13139
|
size: 4,
|
|
13106
13140
|
color: { rgb: "000000" }
|
|
13107
13141
|
});
|
|
13108
|
-
const { comments, setComments, commentsRef, commentsDirtyRef, commentsLoadedRef, showCommentsSidebar, setShowCommentsSidebar, setVisibleCommentAuthors, activeCommentId, setActiveCommentId, isAddingComment, setIsAddingComment, commentSelectionRange, setCommentSelectionRange, addCommentYPosition, setAddCommentYPosition, floatingCommentBtn, setFloatingCommentBtn, commentAuthors, visibleCommentAuthorSet, visibleComments, syncCommentHighlightStyles } = useFolioComments({
|
|
13142
|
+
const { comments, createComment, setComments, commentsRef, commentsDirtyRef, commentsLoadedRef, showCommentsSidebar, setShowCommentsSidebar, setVisibleCommentAuthors, activeCommentId, setActiveCommentId, isAddingComment, setIsAddingComment, commentSelectionRange, setCommentSelectionRange, addCommentYPosition, setAddCommentYPosition, floatingCommentBtn, setFloatingCommentBtn, commentAuthors, visibleCommentAuthorSet, visibleComments, syncCommentHighlightStyles } = useFolioComments({
|
|
13109
13143
|
doc: history.state,
|
|
13110
13144
|
autoOpenReviewSidebar,
|
|
13111
13145
|
anchorPositions,
|
|
@@ -13230,11 +13264,14 @@ const DocxEditor = forwardRef(function DocxEditor({ documentBuffer, password, do
|
|
|
13230
13264
|
onError,
|
|
13231
13265
|
onCompatibilityChange,
|
|
13232
13266
|
onReset: useCallback(() => {
|
|
13233
|
-
|
|
13234
|
-
if (
|
|
13235
|
-
|
|
13236
|
-
|
|
13237
|
-
|
|
13267
|
+
const initialScroll_0 = initialScrollRef.current;
|
|
13268
|
+
if (initialScroll_0.status === "scheduled") cancelAnimationFrame(initialScroll_0.frame);
|
|
13269
|
+
initialScrollRef.current = { status: "waiting" };
|
|
13270
|
+
if (scrollContainerRef.current) scrollEditorTo(scrollContainerRef.current, {
|
|
13271
|
+
top: 0,
|
|
13272
|
+
left: 0,
|
|
13273
|
+
behavior: "instant"
|
|
13274
|
+
});
|
|
13238
13275
|
commentsDirtyRef.current = false;
|
|
13239
13276
|
commentsLoadedRef.current = false;
|
|
13240
13277
|
setComments([]);
|
|
@@ -13290,13 +13327,24 @@ const DocxEditor = forwardRef(function DocxEditor({ documentBuffer, password, do
|
|
|
13290
13327
|
extractTrackedChanges
|
|
13291
13328
|
]);
|
|
13292
13329
|
useEffect(() => {
|
|
13293
|
-
if (initialScrollTop === void 0 || state.documentLoad.status !== "ready" ||
|
|
13294
|
-
initialScrollAppliedRef.current = true;
|
|
13330
|
+
if (initialScrollTop === void 0 || state.documentLoad.status !== "ready" || initialScrollRef.current.status !== "waiting") return;
|
|
13295
13331
|
const frame = requestAnimationFrame(() => {
|
|
13296
|
-
|
|
13332
|
+
initialScrollRef.current = { status: "applied" };
|
|
13333
|
+
scrollEditorTo(scrollContainerRef.current, {
|
|
13334
|
+
top: initialScrollTop,
|
|
13335
|
+
behavior: "instant"
|
|
13336
|
+
});
|
|
13297
13337
|
});
|
|
13338
|
+
initialScrollRef.current = {
|
|
13339
|
+
status: "scheduled",
|
|
13340
|
+
frame
|
|
13341
|
+
};
|
|
13298
13342
|
return () => {
|
|
13299
|
-
|
|
13343
|
+
const initialScroll_1 = initialScrollRef.current;
|
|
13344
|
+
if (initialScroll_1.status === "scheduled" && initialScroll_1.frame === frame) {
|
|
13345
|
+
cancelAnimationFrame(frame);
|
|
13346
|
+
initialScrollRef.current = { status: "waiting" };
|
|
13347
|
+
}
|
|
13300
13348
|
};
|
|
13301
13349
|
}, [
|
|
13302
13350
|
initialScrollTop,
|
|
@@ -14349,24 +14397,23 @@ const DocxEditor = forwardRef(function DocxEditor({ documentBuffer, password, do
|
|
|
14349
14397
|
let tripwireResult = null;
|
|
14350
14398
|
let savedBuffer = null;
|
|
14351
14399
|
try {
|
|
14352
|
-
const
|
|
14400
|
+
const view_18 = pagedEditorRef.current?.getView();
|
|
14401
|
+
const editorState = view_18?.state;
|
|
14402
|
+
const baselineBuffer = originalBufferRef.current;
|
|
14403
|
+
const current = buildCurrentDocument();
|
|
14404
|
+
const doc_1 = current ? withoutUnreferencedNotes(current) : null;
|
|
14353
14405
|
if (!doc_1) return null;
|
|
14354
14406
|
const { resolveSelectiveSaveFlags } = await import("@stll/folio-core/docx/selectiveSaveFlags");
|
|
14355
14407
|
const flags = resolveSelectiveSaveFlags(featureFlags);
|
|
14356
14408
|
const useSelectiveForSave = flags.selectiveSave && options?.mode !== FOLIO_DOCX_SERIALIZATION_MODE.full;
|
|
14357
14409
|
const shouldAttemptSelective = useSelectiveForSave || flags.selectiveSaveTripwire;
|
|
14358
|
-
const view_18 = pagedEditorRef.current?.getView();
|
|
14359
|
-
const baselineBuffer = originalBufferRef.current;
|
|
14360
14410
|
let selectiveBuffer = null;
|
|
14361
|
-
if (shouldAttemptSelective &&
|
|
14362
|
-
|
|
14363
|
-
|
|
14364
|
-
|
|
14365
|
-
|
|
14366
|
-
|
|
14367
|
-
maxBytes: flags.selectiveSaveMaxBytes
|
|
14368
|
-
});
|
|
14369
|
-
}
|
|
14411
|
+
if (shouldAttemptSelective && editorState && baselineBuffer) selectiveBuffer = await (await loadAttemptSelectiveSave())(doc_1, baselineBuffer, {
|
|
14412
|
+
changedParaIds: getChangedParagraphIds(editorState),
|
|
14413
|
+
structuralChange: hasStructuralChanges(editorState),
|
|
14414
|
+
hasUntrackedChanges: hasUntrackedChanges(editorState),
|
|
14415
|
+
maxBytes: flags.selectiveSaveMaxBytes
|
|
14416
|
+
});
|
|
14370
14417
|
let buffer = useSelectiveForSave ? selectiveBuffer : null;
|
|
14371
14418
|
let fullBuffer = null;
|
|
14372
14419
|
const repackSourceDoc = baselineBuffer ? {
|
|
@@ -14376,8 +14423,8 @@ const DocxEditor = forwardRef(function DocxEditor({ documentBuffer, password, do
|
|
|
14376
14423
|
const repackFull = async () => {
|
|
14377
14424
|
const repackDocx = await loadRepackDocx();
|
|
14378
14425
|
const repack = () => repackDocx(repackSourceDoc);
|
|
14379
|
-
return
|
|
14380
|
-
state:
|
|
14426
|
+
return editorState ? repackWithEditorSectionRemovals({
|
|
14427
|
+
state: editorState,
|
|
14381
14428
|
document: repackSourceDoc,
|
|
14382
14429
|
repack
|
|
14383
14430
|
}) : repack();
|
|
@@ -14392,7 +14439,7 @@ const DocxEditor = forwardRef(function DocxEditor({ documentBuffer, password, do
|
|
|
14392
14439
|
const { compareSelectiveVsFull } = await import("@stll/folio-core/docx/selectiveSaveTripwire");
|
|
14393
14440
|
tripwireResult = await compareSelectiveVsFull(selectiveBuffer, fullBuffer);
|
|
14394
14441
|
} catch {}
|
|
14395
|
-
if (view_18) {
|
|
14442
|
+
if (view_18 && pagedEditorRef.current?.getView() === view_18 && view_18.state.doc === editorState?.doc) {
|
|
14396
14443
|
originalBufferRef.current = buffer;
|
|
14397
14444
|
view_18.dispatch(clearTrackedChanges(view_18.state));
|
|
14398
14445
|
}
|
|
@@ -14926,6 +14973,7 @@ const DocxEditor = forwardRef(function DocxEditor({ documentBuffer, password, do
|
|
|
14926
14973
|
loadBuffer,
|
|
14927
14974
|
updateComments,
|
|
14928
14975
|
replaceComments,
|
|
14976
|
+
createComment,
|
|
14929
14977
|
commentsRef,
|
|
14930
14978
|
commentsDirtyRef,
|
|
14931
14979
|
getActiveEditorStory,
|
|
@@ -15218,16 +15266,20 @@ const DocxEditor = forwardRef(function DocxEditor({ documentBuffer, password, do
|
|
|
15218
15266
|
]);
|
|
15219
15267
|
const handleCommentReply = useCallback((id_2, text_6) => {
|
|
15220
15268
|
updateComments((previous_2) => [...previous_2, createComment(text_6, author, id_2)]);
|
|
15221
|
-
}, [
|
|
15269
|
+
}, [
|
|
15270
|
+
author,
|
|
15271
|
+
createComment,
|
|
15272
|
+
updateComments
|
|
15273
|
+
]);
|
|
15222
15274
|
const handleAddComment = useCallback((addText) => {
|
|
15223
15275
|
const comment_4 = createComment(addText, author);
|
|
15224
15276
|
const view_54 = pagedEditorRef.current?.getView();
|
|
15225
15277
|
if (!view_54 || !commentSelectionRange) return false;
|
|
15226
15278
|
if (!applyCommentMarkRange(view_54, commentSelectionRange, comment_4.id, { replacePending: true })) return false;
|
|
15227
15279
|
const commentAuthor_2 = getCommentAuthorKey(comment_4.author);
|
|
15228
|
-
setVisibleCommentAuthors((
|
|
15229
|
-
if (
|
|
15230
|
-
const next_1 = new Set(
|
|
15280
|
+
setVisibleCommentAuthors((current_0) => {
|
|
15281
|
+
if (current_0 === null) return null;
|
|
15282
|
+
const next_1 = new Set(current_0);
|
|
15231
15283
|
next_1.add(commentAuthor_2);
|
|
15232
15284
|
return next_1;
|
|
15233
15285
|
});
|
|
@@ -15245,6 +15297,7 @@ const DocxEditor = forwardRef(function DocxEditor({ documentBuffer, password, do
|
|
|
15245
15297
|
}, [
|
|
15246
15298
|
author,
|
|
15247
15299
|
commentSelectionRange,
|
|
15300
|
+
createComment,
|
|
15248
15301
|
setActiveCommentId,
|
|
15249
15302
|
setAddCommentYPosition,
|
|
15250
15303
|
setCommentSelectionRange,
|
|
@@ -15255,7 +15308,11 @@ const DocxEditor = forwardRef(function DocxEditor({ documentBuffer, password, do
|
|
|
15255
15308
|
]);
|
|
15256
15309
|
const handleTrackedChangeReply = useCallback((revisionId_2, text_7) => {
|
|
15257
15310
|
updateComments((previous_4) => [...previous_4, createComment(text_7, author, revisionId_2)]);
|
|
15258
|
-
}, [
|
|
15311
|
+
}, [
|
|
15312
|
+
author,
|
|
15313
|
+
createComment,
|
|
15314
|
+
updateComments
|
|
15315
|
+
]);
|
|
15259
15316
|
const handleCancelAddComment = useCallback(() => {
|
|
15260
15317
|
const view_55 = pagedEditorRef.current?.getView();
|
|
15261
15318
|
if (view_55 && commentSelectionRange) removePendingCommentMarkRange(view_55, commentSelectionRange);
|
package/dist/standalone.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@import "@fontsource/carlito/400.css";@import "@fontsource/carlito/400-italic.css";@import "@fontsource/carlito/700.css";@import "@fontsource/carlito/700-italic.css";@import "@fontsource/lato/400.css";@import "@fontsource/lato/400-italic.css";@import "@fontsource/lato/700.css";@import "@fontsource/lato/700-italic.css";@import "@fontsource/source-sans-3/400.css";@import "@fontsource/source-sans-3/400-italic.css";@import "@fontsource/source-sans-3/700.css";@import "@fontsource/source-sans-3/700-italic.css";@import "@fontsource/caladea/400.css";@import "@fontsource/caladea/400-italic.css";@import "@fontsource/caladea/700.css";@import "@fontsource/caladea/700-italic.css";@import "@fontsource/arimo/400.css";@import "@fontsource/arimo/400-italic.css";@import "@fontsource/arimo/700.css";@import "@fontsource/arimo/700-italic.css";@import "@fontsource/tinos/400.css";@import "@fontsource/tinos/400-italic.css";@import "@fontsource/tinos/700.css";@import "@fontsource/tinos/700-italic.css";@import "@fontsource/cousine/400.css";@import "@fontsource/cousine/400-italic.css";@import "@fontsource/cousine/700.css";@import "@fontsource/cousine/700-italic.css";@import "@fontsource/noto-sans-arabic/400.css";@import "@fontsource/noto-sans-arabic/700.css";.ProseMirror{word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;font-feature-settings:"liga" 0;position:relative}.ProseMirror pre{white-space:pre-wrap}.ProseMirror li{position:relative}.ProseMirror-hideselection ::selection{background:0 0}.ProseMirror-hideselection{caret-color:#0000}.ProseMirror [draggable][contenteditable=false]{user-select:text}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";pointer-events:none;border:2px solid #8cf;position:absolute;inset:-2px -2px -2px -32px}img.ProseMirror-separator{border:none!important;margin:0!important;display:inline!important}.prosemirror-editor-wrapper{min-height:100%}.prosemirror-editor{width:var(--page-width,8.5in)}.prosemirror-editor .ProseMirror{background:var(--doc-canvas);width:var(--page-width,8.5in);min-height:var(--page-height,11in);padding-top:var(--margin-top,72px);padding-bottom:var(--margin-bottom,72px);padding-left:var(--margin-left,72px);padding-right:var(--margin-right,72px);color:var(--doc-text);white-space:pre-wrap;word-wrap:break-word;-moz-tab-size:48;tab-size:48;box-sizing:border-box;outline:none;font-family:Calibri,Arial,sans-serif;font-size:11pt;position:relative;box-shadow:0 2px 8px #00000026}.prosemirror-editor .ProseMirror .docx-page-break{height:40px;margin:0 calc(-1 * var(--margin-left,72px));margin-right:calc(-1 * var(--margin-right,72px));background:var(--doc-bg);pointer-events:none;border:none;display:block;position:relative}.prosemirror-editor .ProseMirror .docx-page-break:before{content:"";background:linear-gradient(#0000,#00000014);height:8px;position:absolute;bottom:0;left:0;right:0}.prosemirror-editor .ProseMirror .docx-page-break:after{content:"";background:linear-gradient(#00000014,#0000);height:8px;position:absolute;top:0;left:0;right:0}.prosemirror-editor .ProseMirror [data-page-break-before=true]{break-before:page}.prosemirror-editor .ProseMirror .docx-page-break-line{height:1px;margin:20px calc(-1 * var(--margin-left,72px));margin-right:calc(-1 * var(--margin-right,72px));border-top:1px dashed var(--doc-border);display:block;position:relative}.prosemirror-editor .ProseMirror .docx-page-break-line:before{content:"Page Break";background:var(--doc-bg);color:var(--doc-text-muted);white-space:nowrap;padding:0 8px;font-size:10px;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.prosemirror-editor .ProseMirror:focus{outline:none}.prosemirror-editor .ProseMirror p{white-space:pre-wrap;word-wrap:break-word;min-height:1em;margin:0;padding:0;line-height:normal;display:block}.prosemirror-editor .ProseMirror p:empty:before{content:" "}.prosemirror-editor .ProseMirror span{white-space:pre-wrap;display:inline}.prosemirror-editor .ProseMirror .docx-list-bullet,.prosemirror-editor .ProseMirror .docx-list-numbered{padding-left:48px;position:relative}.prosemirror-editor .ProseMirror [data-list-marker]:before{content:attr(data-list-marker);text-align:right;white-space:nowrap;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-bullet:not([data-list-marker]):before{content:"•";text-align:right;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-numbered:not([data-list-marker]){counter-increment:list-counter}.prosemirror-editor .ProseMirror .docx-list-decimal:not([data-list-marker]):before{content:counter(list-counter) ".";text-align:right;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-lower-roman:not([data-list-marker]):before{content:counter(list-counter, lower-roman) ".";text-align:right;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-upper-roman:not([data-list-marker]):before{content:counter(list-counter, upper-roman) ".";text-align:right;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-lower-alpha:not([data-list-marker]):before{content:counter(list-counter, lower-alpha) ".";text-align:right;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-upper-alpha:not([data-list-marker]):before{content:counter(list-counter, upper-alpha) ".";text-align:right;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-level-0:not([data-list-marker]):first-of-type{counter-reset:list-counter}.prosemirror-editor .ProseMirror .docx-list-level-1{margin-left:.5in}.prosemirror-editor .ProseMirror .docx-list-level-2{margin-left:1in}.prosemirror-editor .ProseMirror .docx-list-level-3{margin-left:1.5in}.prosemirror-editor .ProseMirror .docx-list-level-4{margin-left:2in}.prosemirror-editor .ProseMirror .docx-list-level-5{margin-left:2.5in}.prosemirror-editor .ProseMirror .docx-list-level-6{margin-left:3in}.prosemirror-editor .ProseMirror .docx-list-level-7{margin-left:3.5in}.prosemirror-editor .ProseMirror .docx-list-level-8{margin-left:4in}.prosemirror-editor .ProseMirror ::selection{background:#4285f44d}.prosemirror-editor[data-placeholder]:before{content:attr(data-placeholder);color:var(--doc-text-subtle);pointer-events:none;position:absolute}.prosemirror-editor .ProseMirror img.docx-image{object-fit:contain;vertical-align:baseline;outline:none;max-width:100%;display:inline}.prosemirror-editor .ProseMirror img.docx-image-float-left{clear:left}.prosemirror-editor .ProseMirror img.docx-image-float-right{clear:right}.prosemirror-editor .ProseMirror img.docx-image-block{clear:both}.prosemirror-editor .ProseMirror p:has(>img.docx-image-block:only-child){text-align:center;text-indent:0!important}.prosemirror-editor .ProseMirror p:has(img.docx-image-float):after{content:"";clear:both;display:table}.prosemirror-editor .ProseMirror img.docx-image.ProseMirror-selectednode{outline:2px solid var(--doc-primary,#4285f4);outline-offset:2px;cursor:grab}.prosemirror-editor .ProseMirror.pm-image-dragging img.docx-image.ProseMirror-selectednode{opacity:.4;outline:2px dashed var(--doc-primary,#4285f4);cursor:grabbing}.prosemirror-editor .ProseMirror img:not(.docx-image){max-width:100%;height:auto}.prosemirror-editor .ProseMirror .docx-shape{vertical-align:middle;cursor:pointer;line-height:0;display:inline-block}.prosemirror-editor .ProseMirror .docx-shape.ProseMirror-selectednode{outline:2px solid var(--doc-primary,#4285f4);outline-offset:2px}.prosemirror-editor .ProseMirror .docx-textbox{cursor:text;border-radius:2px;margin:4px 0}.prosemirror-editor .ProseMirror .docx-textbox.ProseMirror-selectednode{outline:2px solid var(--doc-primary,#4285f4);outline-offset:2px}.prosemirror-editor .ProseMirror a{color:var(--doc-link);text-decoration:underline}.prosemirror-editor .ProseMirror a:hover{color:var(--doc-primary-hover)}.prosemirror-editor .ProseMirror .docx-insertion a,.prosemirror-editor .ProseMirror .docx-deletion a{color:inherit}.prosemirror-editor .ProseMirror .docx-footnote-ref,.prosemirror-editor .ProseMirror .docx-endnote-ref{color:var(--doc-link,#06c);cursor:pointer}.prosemirror-editor .ProseMirror .docx-note-ref-superscript{vertical-align:super;font-size:smaller}.prosemirror-editor .ProseMirror .docx-footnote-ref:hover,.prosemirror-editor .ProseMirror .docx-endnote-ref:hover{text-decoration:underline}.prosemirror-editor .ProseMirror hr{border:none;border-top:1px solid var(--doc-text);height:0;margin:12pt 0}.prosemirror-editor .ProseMirror table.docx-table{border-collapse:collapse;max-width:100%;margin:12pt 0}.prosemirror-editor .ProseMirror td.docx-table-cell,.prosemirror-editor .ProseMirror th.docx-table-header{vertical-align:top;min-width:30px;padding:4px 8px}.prosemirror-editor .ProseMirror th.docx-table-header{font-weight:inherit;text-align:inherit}.prosemirror-editor .ProseMirror td p,.prosemirror-editor .ProseMirror th p{min-height:auto;margin:0;padding:0}.prosemirror-editor .ProseMirror td p:first-child,.prosemirror-editor .ProseMirror th p:first-child{margin-top:0}.prosemirror-editor .ProseMirror td p:last-child,.prosemirror-editor .ProseMirror th p:last-child{margin-bottom:0}.prosemirror-editor .ProseMirror .activeCell{outline-offset:-2px;outline:2px solid #4285f480}.prosemirror-editor .ProseMirror .selectedCell{background-color:#4285f426}.prosemirror-editor .ProseMirror .selectedCell:after{content:"";pointer-events:none;background:#4285f41a;position:absolute;inset:0}.prosemirror-editor .ProseMirror table table{margin:4px 0}.prosemirror-editor .ProseMirror .column-resize-handle{cursor:col-resize;z-index:20;background-color:#4285f480;width:4px;position:absolute;top:0;bottom:0;right:-2px}.prosemirror-editor .ProseMirror td.docx-table-cell,.prosemirror-editor .ProseMirror th.docx-table-header{position:relative}.prosemirror-editor .ProseMirror.resize-cursor{cursor:col-resize}.prosemirror-editor .ProseMirror table:not(:hover) .column-resize-handle{background-color:#0000}.prosemirror-editor .ProseMirror table:hover .column-resize-handle{background-color:#4285f44d}.prosemirror-editor .ProseMirror .column-resize-handle:hover{background-color:#4285f4b3}.prosemirror-editor .ProseMirror span.docx-tab{white-space:pre;background:0 0;min-width:48px;display:inline-block}.prosemirror-editor .ProseMirror span.docx-tab[data-leader=dot]:before{content:"...........";color:inherit;white-space:nowrap;position:absolute;overflow:hidden}.prosemirror-editor .ProseMirror span.docx-tab[data-leader=hyphen]:before{content:"-----------";color:inherit;white-space:nowrap;position:absolute;overflow:hidden}.prosemirror-editor .ProseMirror span.docx-tab[data-leader=underscore]:before{content:"___________";color:inherit;white-space:nowrap;position:absolute;overflow:hidden}.prosemirror-editor .ProseMirror .docx-run-all-caps{text-transform:uppercase}.prosemirror-editor .ProseMirror .docx-run-small-caps{font-variant:small-caps}.prosemirror-editor .ProseMirror .docx-comment{background-color:var(--doc-comment-bg,#ffd40014);border-bottom:1px solid var(--doc-comment-border,#b482003d)}.docx-section-break{position:relative}.prosemirror-editor .ProseMirror .pm-drop-indicator{background:var(--doc-primary,#4285f4);pointer-events:none;z-index:50;width:2px;position:absolute}.prosemirror-editor .ProseMirror .ProseMirror-dropcursor{z-index:50}.layout-paragraph.folio-paragraph-flash{animation:folio-paragraph-flash-fade var(--folio-paragraph-flash-duration,1.2s) ease-out both}@keyframes folio-paragraph-flash-fade{0%{box-shadow:inset 0 0 0 9999px var(--folio-paragraph-flash-color,#ffeb3b8c)}to{box-shadow:inset 0 0 0 9999px #0000}}.layout-page-header *,.layout-page-footer *{pointer-events:none}.paged-editor--editing-header .layout-page-header *,.paged-editor--editing-footer .layout-page-footer *{pointer-events:auto}.hf-editor-pm.prosemirror-editor{width:100%;max-width:100%}.hf-editor-pm .ProseMirror{outline:none;min-height:40px;padding:0}.hf-editor-pm.prosemirror-editor .ProseMirror{width:100%;max-width:100%;min-height:40px;box-shadow:none;background:0 0;padding:0}.hf-editor-pm .ProseMirror:focus{outline:none}.hf-editor-pm .ProseMirror p{padding-top:var(--docx-space-before,0);padding-right:0;padding-bottom:var(--docx-space-after,0);white-space:pre-wrap;word-wrap:break-word;min-height:1em;padding-left:0;display:block;margin:0!important;line-height:normal!important}.hf-editor-pm .ProseMirror td p,.hf-editor-pm .ProseMirror th p{padding-top:var(--docx-space-before,0);padding-right:0;padding-bottom:var(--docx-space-after,0);min-height:auto;padding-left:0;margin:0!important;line-height:normal!important}.hf-editor-pm .ProseMirror .tableWrapper{overflow:visible}.hf-editor-pm .ProseMirror table{margin:0;border-collapse:collapse!important;border-spacing:0!important;table-layout:fixed!important}.hf-editor-pm .ProseMirror td.docx-table-cell,.hf-editor-pm .ProseMirror th.docx-table-header{box-sizing:border-box!important}.hf-editor-pm .ProseMirror td p:has(>img.docx-image):not(:has(>span)),.hf-editor-pm .ProseMirror th p:has(>img.docx-image):not(:has(>span)){font-size:0!important;line-height:0!important}@font-face{font-family:Calibri;src:local(Carlito),local(Carlito Regular),local(Calibri);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Calibri;src:local(Carlito Italic),local(Calibri Italic);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Calibri;src:local(Carlito Bold),local(Calibri Bold);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Calibri;src:local(Carlito Bold Italic),local(Calibri Bold Italic);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Cambria;src:local(Caladea),local(Caladea Regular),local(Cambria);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cambria;src:local(Caladea Italic),local(Cambria Italic);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Cambria;src:local(Caladea Bold),local(Cambria Bold);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Cambria;src:local(Caladea Bold Italic),local(Cambria Bold Italic);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Arial;src:local(Arimo),local(Arimo Regular),local(Arial);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Arial;src:local(Arimo Italic),local(Arial Italic);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Arial;src:local(Arimo Bold),local(Arial Bold);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Arial;src:local(Arimo Bold Italic),local(Arial Bold Italic);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Times New Roman;src:local(Tinos),local(Tinos Regular),local(Times New Roman);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Times New Roman;src:local(Tinos Italic),local(Times New Roman Italic);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Times New Roman;src:local(Tinos Bold),local(Times New Roman Bold);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Times New Roman;src:local(Tinos Bold Italic),local(Times New Roman Bold Italic);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Courier New;src:local(Cousine),local(Cousine Regular),local(Courier New);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Courier New;src:local(Cousine Italic),local(Courier New Italic);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Courier New;src:local(Cousine Bold),local(Courier New Bold);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Courier New;src:local(Cousine Bold Italic),local(Courier New Bold Italic);font-weight:700;font-style:italic;font-display:swap}.folio-autocomplete-ghost{pointer-events:none;user-select:none;white-space:pre-wrap;overflow-wrap:anywhere;color:color-mix(in oklch, var(--doc-text,currentColor) 38%, transparent);font:inherit;letter-spacing:inherit}.folio-autocomplete-caret{background:color-mix(in oklch, var(--doc-text,currentColor) 8%, transparent);height:1.1em;color:color-mix(in oklch, var(--doc-text,currentColor) 70%, transparent);letter-spacing:.02em;text-transform:lowercase;vertical-align:baseline;pointer-events:none;user-select:none;border-radius:9999px;align-items:center;margin-inline-start:.4em;padding:0 .45em;font-size:.72em;font-weight:500;display:inline-flex}.folio-autocomplete-caret--streaming{animation:1.2s ease-in-out infinite folio-autocomplete-caret-pulse}@keyframes folio-autocomplete-caret-pulse{0%,to{opacity:.65}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.folio-autocomplete-caret--streaming{animation:none}}.folio-root{--doc-page:var(--background);--doc-canvas:var(--background);--doc-canvas-text:var(--foreground);--doc-bg:var(--muted);--doc-canvas-surface:linear-gradient(var(--doc-bg), var(--doc-bg)) var(--doc-page);--doc-bg-subtle:var(--muted);--doc-bg-muted:var(--muted);--doc-bg-hover:var(--accent);--doc-bg-input:var(--input);--doc-text:var(--foreground);--doc-text-muted:var(--muted-foreground);--doc-text-subtle:var(--muted-foreground);--doc-text-placeholder:var(--muted-foreground);--doc-border:var(--border);--doc-border-input:var(--input);--doc-border-dark:var(--border);--doc-primary:var(--primary);--doc-primary-hover:var(--primary);--doc-primary-light:var(--accent);--doc-error:var(--destructive);--doc-success:var(--success);--doc-link:#2563eb;--doc-selection:#2563eb40;--doc-selection-dark-bg:#60a5fa66;--doc-tmpl-loop:#7c3aed;--doc-tmpl-cond:#0d9488;--doc-find-highlight:#facc1580;--doc-find-current:#f9731699;--doc-image-selection:var(--doc-link);--doc-image-selection-muted:color-mix(in srgb, var(--doc-image-selection) 12%, transparent);--doc-handle-border:var(--background);--doc-dimension-bg:color-mix(in srgb, var(--foreground) 75%, transparent);--doc-dimension-text:var(--background);--doc-focus-ring:color-mix(in srgb, var(--doc-link) 18%, transparent);--doc-shadow-sm:color-mix(in srgb, var(--foreground) 15%, transparent);--doc-shadow-md:color-mix(in srgb, var(--foreground) 24%, transparent);--doc-shadow-lg:color-mix(in srgb, var(--foreground) 28%, transparent)}.dark .folio-root,.folio-root.dark{--doc-link:#60a5fa;--doc-selection:#60a5fa4d;--doc-tmpl-loop:#a78bfa;--doc-tmpl-cond:#2dd4bf}.hf-options-button{color:var(--doc-link);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:2px 6px;font-size:11px}.hf-options-button:hover,.hf-options-button:focus-visible{background-color:var(--doc-bg-hover);outline:none}.hf-options-dropdown{z-index:100;border:1px solid var(--doc-border);background:var(--doc-page);min-width:160px;box-shadow:0 2px 6px var(--doc-shadow-sm);border-radius:4px;padding:4px 0;position:absolute;top:100%;right:0}.hf-options-dropdown--up{top:auto;bottom:100%}.hf-options-item{width:100%;color:var(--doc-text);cursor:pointer;text-align:left;background:0 0;border:0;padding:6px 12px;font-size:12px;display:block}.hf-options-item:hover,.hf-options-item:focus-visible{background-color:var(--doc-bg-hover);outline:none}.hf-options-divider{border-top:1px solid var(--doc-border);margin:4px 0}.image-drag-ghost{z-index:10000;border:2px dashed var(--image-drag-ghost-selection);background:var(--image-drag-ghost-selection-muted);opacity:.5;pointer-events:none;border-radius:4px;position:fixed}[contenteditable=true]{caret-color:var(--doc-canvas-text,var(--doc-text));caret-shape:bar;outline:none}.dark [contenteditable=true],.dark .ProseMirror{caret-color:var(--doc-canvas-text)!important}.docx-run-editable[contenteditable=true]{caret-color:var(--doc-canvas-text,var(--doc-text));min-height:1em;display:inline}.docx-paragraph-empty [contenteditable=true]{min-width:1px;min-height:1em;display:inline-block}@keyframes folio-caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.docx-paragraph-editable{cursor:text}.docx-run-editable[contenteditable=true]:focus,.docx-paragraph-editable:focus-within{outline:none}.docx-run-editable::selection,.docx-run-editable ::selection,.docx-run::selection,.docx-run ::selection,[contenteditable=true]::selection,[contenteditable=true] ::selection,.docx-paragraph::selection,.docx-paragraph ::selection,.docx-paragraph-editable::selection,.docx-paragraph-editable ::selection,.docx-hyperlink::selection,.docx-hyperlink ::selection{background-color:var(--doc-selection)!important;color:inherit!important;background-color:var(--doc-selection)!important}.docx-run-highlighted::selection,.docx-run-highlighted ::selection{color:inherit!important;background-color:#2563eb73!important}.docx-run-dark-bg::selection,.docx-run-dark-bg ::selection{background-color:var(--doc-selection-dark-bg)!important;color:inherit!important}.docx-find-highlight{border-radius:2px;background-color:var(--doc-find-highlight)!important}.docx-find-highlight-current{outline:2px solid var(--doc-find-current);border-radius:2px;background-color:var(--doc-find-current)!important}.docx-selection-overlay-container{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.docx-selection-overlay-rect{background-color:var(--doc-selection);pointer-events:none;user-select:none;position:absolute}.docx-run-highlighted[contenteditable=true]{caret-color:var(--doc-text)}.docx-run-dark-bg[contenteditable=true]{caret-color:var(--doc-canvas-text)}.folio-editor{cursor:default}.folio-editor-page{cursor:text}.dark .layout-page,.dark .layout-page-content,.dark .docx-paragraph,.dark .docx-run,.dark .docx-run-editable,.dark .ProseMirror{color:var(--doc-canvas-text)!important}.dark .layout-page [style*=--doc-run-color]:not(.docx-insertion):not(.docx-deletion){color:oklch(from var(--doc-run-color) clamp(0, 1.22 - .95 * l, 1) calc(c * .6) h)!important}.dark .layout-page [style*=--doc-authored-background-color]{background-color:oklch(from var(--doc-authored-background-color) clamp(0, 1.22 - .95 * l, 1) calc(c * .6) h)!important}.dark .layout-page .docx-insertion,.dark .layout-page .docx-deletion{--tc-inverted:oklch(from var(--tc-color,#c00000) clamp(0, 1.22 - .95 * l, 1) calc(c * .6) h);color:var(--tc-inverted)!important;text-decoration-color:var(--tc-inverted)!important}.dark .layout-page .docx-insertion--suggested,.dark .layout-page .docx-deletion--suggested{--suggestion-inverted:oklch(from var(--suggestion-color,#6d3bd6) clamp(0, 1.22 - .95 * l, 1) calc(c * .6) h);color:var(--suggestion-inverted)!important;text-decoration-color:var(--suggestion-inverted)!important}.folio-editor ::-webkit-scrollbar{width:6px;height:6px}.folio-editor ::-webkit-scrollbar-track{background:0 0}.folio-editor ::-webkit-scrollbar-thumb{background:var(--foreground,#262626);opacity:.2;border-radius:9999px}.folio-editor ::-webkit-scrollbar-thumb:hover{opacity:.4}.folio-editor{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--foreground,#262626) 20%, transparent) transparent}.docx-list-marker,.docx-bookmark-start,.docx-bookmark-end,.docx-field,.docx-drawing-placeholder,.docx-shape-placeholder{cursor:default;user-select:none}.layout-table-cell-selected{outline-offset:-2px;outline:2px solid #2563eb99;position:relative}.layout-table-cell-selected:after{content:"";pointer-events:none;background-color:#2563eb1f;position:absolute;inset:0}.layout-table-resize-handle,.layout-table-row-resize-handle,.layout-table-edge-handle-bottom,.layout-table-edge-handle-right{background-color:#0000;transition:background-color .15s}.layout-table-resize-handle:hover,.layout-table-resize-handle.dragging,.layout-table-row-resize-handle:hover,.layout-table-row-resize-handle.dragging,.layout-table-edge-handle-bottom:hover,.layout-table-edge-handle-bottom.dragging,.layout-table-edge-handle-right:hover,.layout-table-edge-handle-right.dragging{background-color:#2563eb80}.paged-editor{direction:ltr}.paged-editor--readonly .layout-table-resize-handle,.paged-editor--readonly .layout-table-row-resize-handle,.paged-editor--readonly .layout-table-edge-handle-bottom,.paged-editor--readonly .layout-table-edge-handle-right{display:none!important}.paged-editor--readonly .layout-page-header,.paged-editor--readonly .layout-page-footer{cursor:default;pointer-events:none}.paged-editor--readonly .layout-page-content{cursor:text}[data-tc-author-idx="0"]{--tc-color:#c00000}[data-tc-author-idx="1"]{--tc-color:#2f5496}[data-tc-author-idx="2"]{--tc-color:#538135}[data-tc-author-idx="3"]{--tc-color:#7030a0}[data-tc-author-idx="4"]{--tc-color:#bf8f00}.docx-hidden{opacity:.4;text-decoration-line:underline;text-decoration-style:dotted}.docx-insertion{color:var(--tc-color,#c00000);text-decoration:underline;text-decoration-color:var(--tc-color,#c00000);position:relative}.docx-deletion{text-decoration:line-through;text-decoration-color:var(--tc-color,#c00000);color:var(--tc-color,#c00000);position:relative}.folio-root .layout-paragraph[data-tracked-changes=true]{--folio-review-bar-offset:24px;--folio-review-bar-color:var(--doc-text,currentcolor)}.folio-root .layout-paragraph[data-tracked-changes=true]:before{content:"";top:0;bottom:0;left:calc(-1 * var(--folio-review-bar-offset));background:var(--folio-review-bar-color);pointer-events:none;width:2px;position:absolute}.folio-root{--suggestion-color:#6d3bd6;--suggestion-bg:oklch(50.751% .220592 291.193/.12)}.docx-insertion--suggested{color:var(--suggestion-color);text-decoration:underline dotted;text-decoration-color:var(--suggestion-color);background-image:linear-gradient(var(--suggestion-bg), var(--suggestion-bg))}.docx-deletion--suggested{color:var(--suggestion-color);text-decoration:line-through dotted;text-decoration-color:var(--suggestion-color);background-image:linear-gradient(var(--suggestion-bg), var(--suggestion-bg))}.docx-insertion[data-change-author]:hover:after,.docx-deletion[data-change-author]:hover:after{content:attr(data-change-author);white-space:nowrap;color:var(--foreground);background:var(--popover,var(--doc-page));pointer-events:none;z-index:100;border-radius:6px;padding:3px 8px;font-size:11px;font-style:normal;font-weight:500;line-height:1.4;text-decoration:none;position:absolute;bottom:calc(100% + 4px);left:0;box-shadow:0 4px 12px #0000001f}.paged-editor__hidden-pm .docx-insertion,.paged-editor__hidden-pm .docx-deletion{opacity:1;color:#0000!important;background:0 0!important;text-decoration-color:#0000!important}.folio-root--no-markup .docx-insertion{color:inherit!important;background:0 0!important;text-decoration:none!important}.folio-root--no-markup .docx-deletion{display:none!important}.folio-root--no-markup .layout-paragraph[data-tracked-changes=true]:before{display:none}.folio-root--original .docx-insertion{display:none!important}.folio-root--original .docx-deletion{color:inherit!important;background:0 0!important;text-decoration:none!important}.folio-root--original .layout-paragraph[data-tracked-changes=true]:before{display:none}.folio-root--simple-markup .docx-insertion{color:inherit!important;background:0 0!important;text-decoration:none!important}.folio-root--simple-markup .docx-deletion{display:none!important}.folio-root--no-markup .docx-insertion a,.folio-root--simple-markup .docx-insertion a,.folio-root--original .docx-deletion a{color:var(--doc-link)!important}.layout-page-content{cursor:text}.layout-page-header,.layout-page-footer{cursor:pointer;transition:background-color .15s}.layout-page-header:hover,.layout-page-footer:hover{background-color:#2563eb0a}.layout-page-header:empty:hover:after{content:"Double-click to add header";text-align:center;color:var(--doc-text-subtle);padding:4px 0;font-size:11px;display:block}.layout-page-footer:empty:hover:after{content:"Double-click to add footer";text-align:center;color:var(--doc-text-subtle);padding:4px 0;font-size:11px;display:block}.folio-no-hf-edit .layout-page-header:hover,.folio-no-hf-edit .layout-page-footer:hover{background-color:#0000}.folio-no-hf-edit .layout-page-header:empty:hover:after,.folio-no-hf-edit .layout-page-footer:empty:hover:after{content:none}.folio-no-hf-edit .paged-editor{background-color:#0000!important}.paged-editor--hf-editing .layout-page-content{opacity:.4;pointer-events:none;transition:opacity .15s}.paged-editor--editing-header .layout-page-header{border-bottom:1px dotted var(--doc-primary)}.paged-editor--editing-footer .layout-page-footer{border-top:1px dotted var(--doc-primary)}.paged-editor--hf-editing .layout-page-header:hover,.paged-editor--hf-editing .layout-page-footer:hover{background-color:#0000}.docx-section-break:after{content:"Section Break (" attr(data-section-break) ")";text-align:center;color:var(--doc-text-muted);border-top:1px dashed var(--doc-border);pointer-events:none;margin-top:4px;padding-top:2px;font-size:9px;display:block}[data-folio-ai-suggestions-overlay] .folio-ai-suggestion{border-bottom:1px dotted var(--folio-ai-underline-color,transparent)}[data-folio-ai-suggestions-overlay] .folio-ai-suggestion--substantive{border-bottom-width:1.5px}[data-folio-ai-suggestions-overlay] .folio-ai-suggestion--focused-original{opacity:1;background:linear-gradient(transparent calc(50% - .5px), var(--folio-ai-strike-color) calc(50% - .5px), var(--folio-ai-strike-color) calc(50% + .5px), transparent calc(50% + .5px)), color-mix(in srgb, var(--doc-canvas,#fff) 45%, transparent)}[data-folio-ai-suggestions-overlay] .folio-ai-suggestion--focused-replacement{background:linear-gradient(var(--folio-ai-replacement-bg), var(--folio-ai-replacement-bg)), var(--doc-canvas,#fff)}.folio-anonymization-term{background-color:#0000;border-radius:2px;transition:background-color .15s,box-shadow .15s;box-shadow:inset 0 -2px #2563ebcc}.folio-anonymization-term:hover{background-color:#2563eb1f}.folio-anonymization-term[data-folio-anonymization-selected=true]{background-color:#2563eb33;box-shadow:inset 0 -2px #2563ebe6,0 0 0 2px #2563eb59}.folio-passage-highlight{--folio-passage-highlight-color:#409eff47;background-color:var(--folio-passage-highlight-color);box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--folio-passage-highlight-color) 55%, transparent);border-radius:2px}.folio-ai-citation{background-color:color-mix(in oklch, var(--doc-find-highlight,#facc1580) 50%, transparent);border-radius:2px;transition:background-color .2s,box-shadow .2s}.folio-ai-citation--active{background-color:color-mix(in oklch, var(--doc-find-current,#f9731699) 70%, transparent);box-shadow:0 0 0 2px color-mix(in oklch, var(--doc-find-current,#f9731699) 30%, transparent)}@keyframes folio-outline-flash{0%{background-color:color-mix(in oklch, var(--color-primary,oklch(60% .2 24)) 18%, transparent)}to{background-color:#0000}}.layout-page-content [data-folio-outline-flash]{border-radius:2px;animation:1.2s ease-out folio-outline-flash}.layout-page-content [data-sdt-boundary=true]{position:relative}.layout-page-content [data-sdt-boundary=true]:before{content:"";pointer-events:none;border:1px dashed #0000;transition:border-color .12s ease-out;position:absolute;inset:-2px -4px}.layout-page-content [data-sdt-boundary=true][data-sdt-position=first]:before{border-bottom-width:0;border-start-start-radius:2px;border-start-end-radius:2px;border-end-end-radius:0;border-end-start-radius:0}.layout-page-content [data-sdt-boundary=true][data-sdt-position=middle]:before{border-top-width:0;border-bottom-width:0;border-radius:0}.layout-page-content [data-sdt-boundary=true][data-sdt-position=last]:before{border-top-width:0;border-start-start-radius:0;border-start-end-radius:0;border-end-end-radius:2px;border-end-start-radius:2px}.layout-page-content [data-sdt-boundary=true][data-sdt-position=only]:before,.layout-page-content [data-sdt-boundary=true]:not([data-sdt-position]):before{border-radius:2px}.layout-page-content [data-sdt-boundary=true]:hover:before,.layout-page-content [data-sdt-boundary=true]:focus-within:before{border-color:color-mix(in oklch, var(--color-border,oklch(85% 0 0)) 60%, transparent)}.ProseMirror-gapcursor{pointer-events:none;display:none;position:absolute}.ProseMirror-gapcursor:after{content:"";border-top:1px solid var(--doc-text,currentcolor);width:20px;animation:1.1s linear infinite folio-gapcursor-blink;display:block;position:absolute;top:-2px}@keyframes folio-gapcursor-blink{to{visibility:hidden}}.ProseMirror-focused .ProseMirror-gapcursor{display:block}.folio-template-directive{background:#0000ff6b;border-radius:3px;position:absolute}.folio-template-directive--clause,.folio-template-directive--num,.folio-template-directive--ref{background:#0000ff3d}.folio-template-directive--if,.folio-template-directive--elif,.folio-template-directive--else,.folio-template-directive--endif{background:color-mix(in srgb, var(--doc-tmpl-cond) 26%, transparent)}.folio-template-directive--loop,.folio-template-directive--for,.folio-template-directive--endfor{background:color-mix(in srgb, var(--doc-tmpl-loop) 26%, transparent)}.folio-template-directive--block{pointer-events:auto;transition:background-color .12s}.folio-template-directive--if.folio-template-directive--active,.folio-template-directive--elif.folio-template-directive--active,.folio-template-directive--else.folio-template-directive--active,.folio-template-directive--endif.folio-template-directive--active{background:color-mix(in srgb, var(--doc-tmpl-cond) 44%, transparent)}.folio-template-directive--for.folio-template-directive--active,.folio-template-directive--endfor.folio-template-directive--active{background:color-mix(in srgb, var(--doc-tmpl-loop) 44%, transparent)}.folio-template-band-rail{pointer-events:auto;border-radius:2px;transition:background-color .12s,box-shadow .12s;position:absolute}.folio-template-band-rail--for{background:color-mix(in srgb, var(--doc-tmpl-loop) 22%, transparent)}.folio-template-band-rail--if{background:color-mix(in srgb, var(--doc-tmpl-cond) 22%, transparent)}.folio-template-band-rail--for.folio-template-band-rail--active{background:color-mix(in srgb, var(--doc-tmpl-loop) 90%, transparent);box-shadow:0 0 0 .75px color-mix(in srgb, var(--doc-tmpl-loop) 45%, transparent)}.folio-template-band-rail--if.folio-template-band-rail--active{background:color-mix(in srgb, var(--doc-tmpl-cond) 90%, transparent);box-shadow:0 0 0 .75px color-mix(in srgb, var(--doc-tmpl-cond) 45%, transparent)}.folio-template-preview-original,.folio-template-preview-hidden{display:none}.folio-template-preview-value{white-space:pre-wrap}.folio-template-preview-value--highlighted{--folio-template-preview-accent-bg:#f9731647;background:var(--folio-template-preview-accent-bg);border-radius:3px;padding:0 2px;box-shadow:inset 0 0 0 1px #f9731673}.folio-template-preview-run--highlighted{background:#f9731647;border-radius:3px;box-shadow:inset 0 0 0 1px #f9731673}:where(.folio-default-button){white-space:nowrap;cursor:pointer;border-style:solid;border-width:1px;border-radius:.5rem;justify-content:center;align-items:center;gap:.375rem;font-weight:500;display:inline-flex}:where(.folio-default-button--default){background:var(--doc-primary,#2563eb);color:var(--doc-primary-foreground,#fff);border-color:var(--doc-primary,#2563eb)}:where(.folio-default-button--ghost){color:var(--doc-text,inherit);background:0 0;border-color:#0000}:where(.folio-default-button--sm){height:2rem;padding:0 .625rem;font-size:.8125rem}:where(.folio-default-button--xs){height:1.75rem;padding:0 .5rem;font-size:.75rem}:where(.folio-default-button--icon-xs){width:1.75rem;height:1.75rem;padding:0}.folio-default-color-picker-trigger{display:inline-flex}.folio-default-color-picker-popup{border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);color:var(--doc-text,inherit);border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.5rem;display:flex;box-shadow:0 4px 12px #0000001f}.folio-default-color-picker-clear{cursor:pointer;height:1.5rem;color:var(--doc-text-muted,inherit);background:0 0;border:none;align-items:center;padding:0 .25rem;font-size:.75rem;display:flex}.folio-default-color-picker-swatches{grid-template-columns:repeat(8,1fr);gap:.25rem;display:grid}.folio-default-color-picker-swatch{border:1px solid var(--doc-border,#e5e7eb);cursor:pointer;border-radius:.25rem;width:1.25rem;height:1.25rem;padding:0}.folio-default-color-picker-swatch--selected{outline:2px solid var(--doc-primary,#2563eb);outline-offset:1px}.folio-default-color-picker-custom{color:var(--doc-text-muted,inherit);align-items:center;gap:.375rem;font-size:.75rem;display:flex}.folio-default-date-input{border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);height:1.75rem;color:var(--doc-text,inherit);border-radius:.375rem;padding:0 .375rem;font-size:.8125rem}.folio-outline{box-sizing:border-box;background:var(--doc-page);min-height:0;color:var(--doc-text);flex-direction:column;font-size:.8125rem;display:flex}.folio-outline--column{border-inline-end:1px solid var(--doc-border);flex:none}.folio-outline--rail{z-index:30;border-inline-end:1px solid var(--doc-border);flex:none;align-items:center;padding-block:4px 8px;position:relative}.folio-outline--drawer{z-index:46;border-inline-end:1px solid var(--doc-border);max-width:calc(100% - 16px);box-shadow:0 8px 28px var(--doc-shadow-md);position:absolute;inset-block:0;inset-inline-start:0}.folio-outline-header{border-bottom:1px solid var(--doc-border);flex:none;justify-content:space-between;align-items:center;gap:.25rem;min-height:2.25rem;padding-block:.25rem;padding-inline:.75rem .375rem;display:flex}.folio-outline-title{color:var(--doc-text-muted);font-size:.75rem;font-weight:600}.folio-outline-icon-button{width:1.5rem;height:1.5rem;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:0;border-radius:.25rem;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.folio-outline-icon-button:hover,.folio-outline-icon-button[aria-expanded=true]{background:var(--doc-bg-hover);color:var(--doc-text)}.folio-outline-icon-button:focus-visible,.folio-outline-item:focus-visible,.folio-outline-tick:focus-visible{outline:2px solid var(--ring,var(--doc-primary));outline-offset:-2px}.folio-outline-list{flex:1;min-height:0;margin:0;padding:.25rem 0;list-style:none;position:relative;overflow-y:auto}.folio-outline-item{width:100%;color:var(--doc-text-muted);font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;padding-block:.3125rem;padding-inline:.75rem;display:block;position:relative}.folio-outline-item[data-depth="1"]{padding-inline-start:1.5rem}.folio-outline-item[data-depth="2"]{padding-inline-start:2.25rem}.folio-outline-item[data-depth="3"]{padding-inline-start:3rem}.folio-outline-item[data-depth="4"]{padding-inline-start:3.75rem}.folio-outline-item-label{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.folio-outline-item:hover{background:var(--doc-bg-hover);color:var(--doc-text)}.folio-outline-item--active{background:var(--doc-bg-hover);color:var(--doc-text);font-weight:600}.folio-outline-item--active:before{background:var(--primary,var(--doc-primary));content:"";border-radius:2px;width:3px;position:absolute;inset-block:.1875rem;inset-inline-start:0}.folio-outline-ticks{flex:1;width:100%;min-height:0;margin:.375rem 0 0;padding:0;list-style:none;position:relative}.folio-outline-tick-slot{height:12px;position:absolute;inset-inline:0}.folio-outline-tick{cursor:pointer;background:0 0;border:0;align-items:center;width:100%;height:100%;padding:0;padding-inline-start:7px;display:flex;position:relative}.folio-outline-tick[data-depth="1"]{padding-inline-start:10px}.folio-outline-tick[data-depth="2"]{padding-inline-start:13px}.folio-outline-tick[data-depth="3"],.folio-outline-tick[data-depth="4"]{padding-inline-start:16px}.folio-outline-tick-mark{background:var(--doc-text-muted);opacity:.55;border-radius:1px;width:14px;height:2px;display:block}.folio-outline-tick[data-depth="1"] .folio-outline-tick-mark{width:11px}.folio-outline-tick[data-depth="2"] .folio-outline-tick-mark,.folio-outline-tick[data-depth="3"] .folio-outline-tick-mark,.folio-outline-tick[data-depth="4"] .folio-outline-tick-mark{width:8px}.folio-outline-tick:hover .folio-outline-tick-mark,.folio-outline-tick:focus-visible .folio-outline-tick-mark{opacity:1}.folio-outline-tick--active .folio-outline-tick-mark{background:var(--primary,var(--doc-primary));opacity:1;height:3px}.folio-outline-tick-label{border:1px solid var(--doc-border);background:var(--popover,var(--doc-page));max-width:15rem;box-shadow:0 4px 12px var(--doc-shadow-sm);color:var(--popover-foreground,var(--doc-text));text-overflow:ellipsis;white-space:nowrap;pointer-events:none;top:50%;border-radius:.375rem;padding:.25rem .5rem;font-size:.75rem;line-height:1.25;display:none;position:absolute;inset-inline-start:calc(100% + 6px);overflow:hidden;transform:translateY(-50%)}.folio-outline-tick:hover .folio-outline-tick-label,.folio-outline-tick:focus-visible .folio-outline-tick-label{display:block}.folio-panel-scrim{z-index:45;background:#0000003d;position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){.folio-outline--drawer,.docx-comments-sidebar[data-folio-comments-surface=drawer],.folio-panel-scrim{animation:.16s ease-out folio-panel-fade-in}}@media (prefers-reduced-motion:reduce){.layout-page-content [data-folio-outline-flash]{animation:none}}@keyframes folio-panel-fade-in{0%{opacity:0}}.folio-default-menu-positioner{z-index:50}.folio-default-menu-popup{border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);min-width:12rem;color:var(--doc-text,inherit);border-radius:.5rem;padding:.25rem;box-shadow:0 4px 12px #0000001f}.folio-default-menu-item,.folio-default-menu-checkbox-item{color:var(--doc-text,inherit);cursor:pointer;user-select:none;border-radius:.375rem;outline:none;align-items:center;gap:.5rem;padding:.375rem .5rem;font-size:.8125rem;display:flex}.folio-default-menu-checkbox-item{padding-inline-start:.375rem}.folio-default-menu-item[data-highlighted],.folio-default-menu-item:hover,.folio-default-menu-checkbox-item[data-highlighted],.folio-default-menu-checkbox-item:hover{background:var(--doc-primary-light,#eff6ff)}.folio-default-menu-checkbox-indicator{flex-shrink:0;justify-content:center;align-items:center;width:1rem;height:1rem;display:inline-flex}.folio-default-menu-group-label{color:var(--doc-text-muted,#6b7280);padding:.375rem .5rem;font-size:.6875rem;font-weight:500}.folio-default-menu-separator{border-top:1px solid var(--doc-border,#e5e7eb);margin:.25rem 0}:where(.folio-default-select-trigger){border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);height:2rem;color:var(--doc-text,inherit);cursor:pointer;border-radius:.375rem;justify-content:space-between;align-items:center;gap:.375rem;padding:0 .625rem;font-size:.8125rem;display:inline-flex}:where(.folio-default-select-trigger[data-size=sm]){height:1.75rem;padding:0 .5rem;font-size:.75rem}:where(.folio-default-select-trigger[data-size=lg]){height:2.5rem;padding:0 .75rem;font-size:.875rem}:where(.folio-default-select-icon){color:var(--doc-text-muted,#6b7280);flex-shrink:0;display:inline-flex}:where(.folio-default-select-value){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:where(.folio-default-select-positioner){z-index:50}:where(.folio-default-select-popup){border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);min-width:8rem;max-height:18rem;color:var(--doc-text,inherit);border-radius:.5rem;padding:.25rem;overflow-y:auto;box-shadow:0 4px 12px #0000001f}:where(.folio-default-select-item){color:var(--doc-text,inherit);cursor:pointer;user-select:none;border-radius:.375rem;outline:none;align-items:center;gap:.5rem;padding:.375rem .5rem;font-size:.8125rem;display:flex}:where(.folio-default-select-item[data-highlighted]){background:var(--doc-primary-light,#eff6ff)}:where(.folio-default-select-item[data-selected]){font-weight:500}.folio-default-popover-positioner{z-index:50}.folio-default-popover-popup{border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);color:var(--doc-text,inherit);border-radius:.5rem;padding:.5rem;box-shadow:0 4px 12px #0000001f}.folio-default-dialog-backdrop{z-index:50;background:#0006;position:fixed;inset:0}.folio-default-dialog-popup{z-index:51;border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);width:100%;max-width:28rem;max-height:85vh;color:var(--doc-text,inherit);border-radius:.5rem;padding:1.25rem;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 12px 32px #0003}.folio-default-dialog-title{margin:0 0 .75rem;font-size:1rem;font-weight:600}:where(.folio-default-dialog-close){cursor:pointer}:where(.folio-default-input){border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);height:2rem;color:var(--doc-text,inherit);border-radius:.375rem;padding:0 .625rem;font-size:.8125rem}:where(.folio-default-input[data-size=sm]){height:1.75rem;font-size:.75rem}:where(.folio-default-input[data-size=lg]){height:2.5rem;font-size:.875rem}:where(.folio-default-input:focus-visible){outline:2px solid var(--doc-primary,#2563eb);outline-offset:-1px}.folio-default-checkbox{border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);width:1rem;height:1rem;color:var(--doc-primary-foreground,#fff);cursor:pointer;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.folio-default-checkbox[data-checked]{background:var(--doc-primary,#2563eb);border-color:var(--doc-primary,#2563eb)}.folio-default-checkbox-indicator{justify-content:center;align-items:center;display:inline-flex}.folio-editor[data-folio-format-painter=armed] [contenteditable=true]{cursor:copy}.folio-ai-host{--folio-ai-mention:#2563eb;--folio-ai-mention-soft:oklch(54.615% .215208 262.881/.12)}.dark .folio-ai-host,.folio-ai-host.dark{--folio-ai-mention:#60a5fa;--folio-ai-mention-soft:oklch(71.374% .143381 254.624/.18)}.folio-ai-suggestion{text-underline-offset:3px;cursor:pointer;background-color:#0000;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:1px;transition:background-color .15s,text-decoration-color .15s}.folio-ai-suggestion--typo{--folio-ai-underline-color:color-mix(in oklch, var(--doc-text-muted) 65%, transparent);text-decoration-color:var(--folio-ai-underline-color)}.folio-ai-suggestion--style{--folio-ai-underline-color:color-mix(in oklch, var(--doc-text) 35%, transparent);text-decoration-color:var(--folio-ai-underline-color)}.folio-ai-suggestion--substantive{--folio-ai-underline-color:color-mix(in oklch, var(--doc-error,currentColor) 60%, transparent);text-decoration-color:var(--folio-ai-underline-color);text-decoration-thickness:1.5px}.folio-ai-suggestion:hover{background-color:color-mix(in oklch, var(--doc-bg-hover) 60%, transparent)}.folio-ai-suggestion--focused{background-color:color-mix(in oklch, var(--doc-bg-hover) 90%, transparent)}.folio-ai-suggestion--focused-original{--folio-ai-strike-color:color-mix(in oklch, var(--doc-text-muted) 75%, transparent);text-decoration-line:line-through;text-decoration-style:solid;text-decoration-thickness:1px;text-decoration-color:var(--folio-ai-strike-color);opacity:.55}.folio-ai-suggestion--focused-replacement{--folio-ai-replacement-bg:color-mix(in oklch, var(--doc-success,var(--doc-text)) 16%, transparent);background-color:var(--folio-ai-replacement-bg);box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--doc-success,var(--doc-text)) 30%, transparent);white-space:pre-wrap;border-radius:4px;margin-inline-start:3px;padding:0 3px}.folio-ai-bar{z-index:40;width:min(560px,100% - 32px);color:var(--doc-text);background-color:color-mix(in oklch, var(--doc-page) 78%, transparent);-webkit-backdrop-filter:blur(20px)saturate(160%);border:1px solid color-mix(in oklch, var(--doc-border) 70%, transparent);user-select:none;border-radius:9999px;align-items:center;gap:4px;padding:4px 4px 4px 6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;transition:box-shadow .2s,border-color .2s;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #00000005,0 1px 2px #0000000f,0 12px 32px #0000001a,0 24px 56px #0000000f,inset 0 1px #fff9}.folio-ai-bar:before{content:"";z-index:-1;background:radial-gradient(ellipse at center, color-mix(in oklch, var(--doc-page) 45%, transparent) 0%, transparent 70%);pointer-events:none;border-radius:inherit;position:absolute;inset:-16px}.dark .folio-ai-bar,.folio-ai-bar.dark{background-color:color-mix(in oklch, var(--doc-page) 70%, transparent);box-shadow:0 0 0 1px #ffffff0a,0 1px 2px #0006,0 12px 32px #00000073,0 24px 56px #0000004d,inset 0 1px #ffffff14}.folio-ai-bar:focus-within{border-color:color-mix(in oklch, var(--doc-text) 35%, var(--doc-border));box-shadow:0 0 0 1px #00000008,0 1px 2px #0000000f,0 16px 40px #0000001f,0 32px 64px #00000014,inset 0 1px #fff9}.folio-ai-bar__form{flex:1;align-items:center;gap:6px;min-width:0;height:32px;padding:0 6px 0 4px;display:flex}.folio-ai-bar__leading{width:18px;height:18px;color:var(--doc-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.folio-ai-bar__input{min-width:0;height:100%;color:var(--doc-text);font:inherit;caret-color:var(--doc-text);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:13px}.folio-ai-bar__input::placeholder{color:var(--doc-text-muted)}.folio-ai-bar__input:disabled{color:var(--doc-text-muted);cursor:progress}.folio-ai-bar__input--slash{color:var(--folio-ai-mention);font-weight:500}.folio-ai-bar__input--slash::placeholder{color:color-mix(in oklch, var(--folio-ai-mention) 60%, transparent)}.folio-editor:has(.folio-ai-bar__input:focus) [contenteditable=true]{caret-color:#0000}.folio-ai-bar__paste-chip{border:1px solid color-mix(in oklch, var(--folio-ai-mention) 35%, transparent);background-color:var(--folio-ai-mention-soft);height:22px;color:var(--folio-ai-mention);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;flex-shrink:0;align-items:center;gap:4px;max-width:220px;padding:2px 6px 2px 8px;font-size:11.5px;font-weight:500;transition:background-color .12s,border-color .12s;display:inline-flex;overflow:hidden}.folio-ai-bar__paste-chip:hover{background-color:color-mix(in oklch, var(--folio-ai-mention) 18%, transparent);border-color:color-mix(in oklch, var(--folio-ai-mention) 50%, transparent)}.folio-ai-bar__paste-chip>svg{opacity:.7}.folio-ai-bar__count{background-color:var(--doc-bg-muted);min-width:18px;height:18px;color:var(--doc-text);font-variant-numeric:tabular-nums;border-radius:9999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.folio-ai-bar__divider{background-color:var(--doc-border);flex-shrink:0;width:1px;height:18px}.folio-ai-bar__action{min-width:28px;height:28px;color:var(--doc-text);font:inherit;cursor:pointer;background-color:#0000;border:none;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;transition:background-color .12s;display:inline-flex}.folio-ai-bar__action:hover{background-color:var(--doc-bg-muted)}.folio-ai-bar__action:disabled{opacity:.5;cursor:default}.folio-ai-bar__icon-button{width:28px;height:28px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .12s,color .12s;display:inline-flex}.folio-ai-bar__icon-button:hover{background-color:var(--doc-bg-muted);color:var(--doc-text)}.folio-ai-bar__icon-button:disabled{opacity:.5;cursor:default}.folio-ai-bar__icon-button--primary{background-color:var(--doc-text);color:var(--doc-page)}.folio-ai-bar__icon-button--primary:hover{background-color:color-mix(in oklch, var(--doc-text) 88%, transparent);color:var(--doc-page)}.folio-ai-bar__icon-button--primary:disabled{background-color:var(--doc-bg-muted);color:var(--doc-text-muted)}.folio-ai-bar__spinner{border:1.5px solid var(--doc-border);border-top-color:var(--doc-text);border-radius:9999px;width:14px;height:14px;animation:.72s linear infinite folio-ai-spin}@keyframes folio-ai-spin{to{transform:rotate(360deg)}}.folio-ai-bar__presets{background-color:var(--doc-page);border:1px solid var(--doc-border);border-radius:12px;flex-direction:column;gap:1px;width:min(320px,100%);padding:4px;animation:.16s folio-ai-panel-in;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 1px 2px #0000000a,0 12px 36px #0000001a}.folio-ai-bar__presets-header{text-transform:uppercase;letter-spacing:.04em;color:var(--doc-text-muted);justify-content:space-between;align-items:baseline;gap:8px;padding:6px 10px 4px;font-size:10px;font-weight:600;display:flex}.folio-ai-bar__presets-hint{text-transform:none;letter-spacing:0;color:var(--doc-text-muted);opacity:.85;font-size:10.5px;font-weight:400}.folio-ai-bar__presets-empty{color:var(--doc-text-muted);text-align:center;padding:12px;font-size:12px}.folio-ai-bar__preset{text-align:left;cursor:pointer;font:inherit;color:var(--doc-text);background:0 0;border:none;border-radius:8px;grid-template-rows:auto auto;grid-template-columns:1fr auto;gap:0 8px;padding:8px 10px;transition:background-color .12s;display:grid;position:relative}.folio-ai-bar__preset:hover,.folio-ai-bar__preset:focus-visible,.folio-ai-bar__preset[data-highlighted=true]{background-color:var(--doc-bg-muted);outline:none}.folio-ai-bar__preset-label{grid-area:1/1;font-size:13px;font-weight:500}.folio-ai-bar__preset-description{color:var(--doc-text-muted);text-wrap:pretty;grid-area:2/1/auto/span 2;font-size:11px}.folio-ai-bar__preset-shortcut{font-variant-numeric:tabular-nums;color:var(--folio-ai-mention);background-color:var(--folio-ai-mention-soft);border-radius:4px;grid-area:1/2;align-self:center;padding:1px 6px;font-size:10.5px;font-weight:500}.folio-ai-panel{z-index:41;background-color:var(--doc-page);border:1px solid var(--doc-border);width:min(420px,100% - 32px);max-height:min(60dvh,560px);color:var(--doc-text);border-radius:14px;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;animation:.18s folio-ai-panel-in;display:flex;position:absolute;bottom:68px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 1px 2px #0000000a,0 12px 40px #00000014}@keyframes folio-ai-panel-in{0%{opacity:0;transform:translate(-50%)translateY(4px)scale(.985)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.folio-ai-panel__header{border-bottom:1px solid var(--doc-border);align-items:center;gap:8px;padding:10px 10px 10px 14px;display:flex}.folio-ai-panel__title{flex:1;align-items:center;gap:8px;font-weight:600;display:inline-flex}.folio-ai-panel__count{background-color:var(--doc-bg-muted);min-width:18px;height:18px;color:var(--doc-text-muted);font-variant-numeric:tabular-nums;border-radius:9999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:500;display:inline-flex}.folio-ai-panel__group-tabs{background-color:var(--doc-bg-muted);border-radius:9999px;align-items:center;gap:2px;padding:2px;display:inline-flex}.folio-ai-panel__group-tab{color:var(--doc-text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:9999px;padding:4px 10px;font-size:12px;transition:background-color .12s,color .12s}.folio-ai-panel__group-tab:hover{color:var(--doc-text)}.folio-ai-panel__group-tab[aria-selected=true]{background-color:var(--doc-page);color:var(--doc-text);box-shadow:0 1px 2px #0000000d}.folio-ai-panel__close{width:28px;height:28px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background-color .12s,color .12s;display:inline-flex}.folio-ai-panel__close:hover{background-color:var(--doc-bg-muted);color:var(--doc-text)}.folio-ai-panel__toolbar{border-bottom:1px solid var(--doc-border);color:var(--doc-text-muted);align-items:center;gap:8px;padding:8px 14px;font-size:12px;display:flex}.folio-ai-panel__toolbar-spacer{flex:1}.folio-ai-panel__mode-toggle{border:1px solid var(--doc-border);color:var(--doc-text-muted);font:inherit;cursor:pointer;background:0 0;border-radius:9999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;transition:background-color .12s,color .12s;display:inline-flex}.folio-ai-panel__mode-toggle:hover{color:var(--doc-text);background-color:var(--doc-bg-muted)}.folio-ai-panel__mode-toggle[data-active=true]{border-color:var(--doc-text);color:var(--doc-text)}.folio-ai-panel__list{flex:1;padding:4px 0 8px;overflow-y:auto}.folio-ai-panel__group{padding:4px 0}.folio-ai-panel__group-header{color:var(--doc-text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;padding:8px 14px 4px;font-size:11px;font-weight:600;display:flex}.folio-ai-panel__group-name{flex:1}.folio-ai-panel__group-actions{text-transform:none;letter-spacing:0;align-items:center;gap:2px;display:inline-flex}.folio-ai-panel__group-action{color:var(--doc-text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:500;transition:background-color .12s,color .12s}.folio-ai-panel__group-action:hover{background-color:var(--doc-bg-muted);color:var(--doc-text)}.folio-ai-panel__item{border-top:1px solid color-mix(in oklch, var(--doc-border) 60%, transparent);cursor:pointer;flex-direction:column;gap:6px;padding:10px 14px;transition:background-color .12s;display:flex}.folio-ai-panel__item:first-child{border-top:none}.folio-ai-panel__item:hover{background-color:color-mix(in oklch, var(--doc-bg-muted) 50%, transparent)}.folio-ai-panel__item[data-focused=true]{background-color:color-mix(in oklch, var(--doc-bg-muted) 80%, transparent)}.folio-ai-panel__item-meta{text-align:left;cursor:pointer;width:100%;color:var(--doc-text-muted);font:inherit;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:11px;display:flex}.folio-ai-panel__severity-dot{border-radius:9999px;flex-shrink:0;width:6px;height:6px}.folio-ai-panel__severity-dot--typo{background-color:var(--doc-text-muted)}.folio-ai-panel__severity-dot--style{background-color:color-mix(in oklch, var(--doc-text) 60%, transparent)}.folio-ai-panel__severity-dot--substantive{background-color:var(--doc-error,currentColor)}.folio-ai-panel__item-topic{color:var(--doc-text);font-weight:500}.folio-ai-panel__diff{background-color:var(--doc-bg-muted);text-wrap:pretty;word-break:break-word;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;font-size:12.5px;line-height:1.45;display:flex}.folio-ai-panel__diff-row{gap:6px;display:flex}.folio-ai-panel__diff-marker{color:var(--doc-text-muted);font-variant-numeric:tabular-nums;text-align:center;flex-shrink:0;width:12px}.folio-ai-panel__diff--original .folio-ai-panel__diff-text{color:var(--doc-text-muted);text-decoration:line-through;text-decoration-color:color-mix(in oklch, var(--doc-text-muted) 70%, transparent)}.folio-ai-panel__diff--suggested .folio-ai-panel__diff-text{color:var(--doc-text)}.folio-ai-panel__rationale{color:var(--doc-text-muted);text-wrap:pretty;font-size:12px;line-height:1.45}.folio-ai-panel__item-actions{align-items:center;gap:6px;margin-top:2px;display:flex}.folio-ai-panel__item-button{border:1px solid var(--doc-border);color:var(--doc-text);font:inherit;cursor:pointer;background-color:#0000;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;transition:background-color .12s,border-color .12s;display:inline-flex}.folio-ai-panel__item-button:hover{background-color:var(--doc-bg-muted)}.folio-ai-panel__item-button--accept{background-color:var(--doc-text);color:var(--doc-page);border-color:var(--doc-text)}.folio-ai-panel__item-button--accept:hover{background-color:color-mix(in oklch, var(--doc-text) 88%, transparent)}.folio-ai-panel__item-button--ghost{color:var(--doc-text-muted);border-color:#0000}.folio-ai-panel__item-button--ghost:hover{color:var(--doc-text);background-color:var(--doc-bg-muted)}.folio-ai-panel__stale-pill{background-color:color-mix(in oklch, var(--doc-error,currentColor) 12%, transparent);color:var(--doc-error,var(--doc-text));text-transform:uppercase;letter-spacing:.04em;border-radius:9999px;align-items:center;gap:4px;padding:1px 6px;font-size:10px;font-weight:500;display:inline-flex}.folio-ai-panel__empty{text-align:center;color:var(--doc-text-muted);text-wrap:pretty;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:36px 24px;font-size:12.5px;display:flex}.folio-ai-panel__empty-title{color:var(--doc-text);font-weight:500}.folio-ai-host[data-compact=true] .folio-ai-bar{width:calc(100% - 24px);padding:3px 3px 3px 4px;font-size:12px;bottom:12px}.folio-ai-host[data-compact=true] .folio-ai-bar__form{height:30px}.folio-ai-host[data-compact=true] .folio-ai-bar__input{font-size:12px}.folio-ai-host[data-compact=true] .folio-ai-panel{width:calc(100% - 24px);bottom:56px}.folio-ai-host[data-compact=true] .folio-ai-panel__group-tab{padding:4px 8px}@media (prefers-reduced-motion:reduce){.folio-ai-bar,.folio-ai-panel,.folio-ai-suggestion{transition:none;animation:none}.folio-ai-bar__spinner{border-top-color:var(--doc-text-muted);animation:none}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-primary:var(--primary);--color-border:var(--border)}}@layer base{:where(.folio-root) *,:where(.folio-root) :before,:where(.folio-root) :after{box-sizing:border-box;border:0 solid}:where(.folio-root) button,:where(.folio-root) input,:where(.folio-root) select,:where(.folio-root) optgroup,:where(.folio-root) textarea{font:inherit;color:inherit;background-color:#0000;border-radius:0}:where(.folio-root) button,:where(.folio-root) input:where([type=button],[type=reset],[type=submit]){appearance:button}}@layer components;@layer utilities{.folio-root .pointer-events-auto{pointer-events:auto}.folio-root .pointer-events-none{pointer-events:none}.folio-root .collapse{visibility:collapse}.folio-root .invisible{visibility:hidden}.folio-root .visible{visibility:visible}.folio-root .sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.folio-root .absolute{position:absolute}.folio-root .fixed{position:fixed}.folio-root .relative{position:relative}.folio-root .static{position:static}.folio-root .sticky{position:sticky}.folio-root .inset-0{inset:0}.folio-root .start-1\/2{inset-inline-start:50%}.folio-root .end-0{inset-inline-end:calc(var(--spacing) * 0)}.folio-root .end-4{inset-inline-end:calc(var(--spacing) * 4)}.folio-root .top-1\/2{top:50%}.folio-root .top-4{top:calc(var(--spacing) * 4)}.folio-root .bottom-0{bottom:0}.folio-root .z-20{z-index:20}.folio-root .z-50{z-index:50}.folio-root .z-\[10000\]{z-index:10000}.folio-root .z-\[10001\]{z-index:10001}.folio-root .z-\[10002\]{z-index:10002}.folio-root .z-\[2147483647\]{z-index:2147483647}.folio-root .col-span-2{grid-column:span 2/span 2}.folio-root .col-span-full{grid-column:1/-1}.folio-root .container{width:100%}@media (width>=40rem){.folio-root .container{max-width:40rem}}@media (width>=48rem){.folio-root .container{max-width:48rem}}@media (width>=64rem){.folio-root .container{max-width:64rem}}@media (width>=80rem){.folio-root .container{max-width:80rem}}@media (width>=96rem){.folio-root .container{max-width:96rem}}.folio-root .m-5{margin:calc(var(--spacing) * 5)}.folio-root .mx-1{margin-inline:var(--spacing)}.folio-root .mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.folio-root .-ms-0\.5{margin-inline-start:calc(var(--spacing) * -.5)}.folio-root .ms-20{margin-inline-start:calc(var(--spacing) * 20)}.folio-root .ms-auto{margin-inline-start:auto}.folio-root .me-4{margin-inline-end:calc(var(--spacing) * 4)}.folio-root .me-auto{margin-inline-end:auto}.folio-root .mt-0\.5{margin-top:calc(var(--spacing) * .5)}.folio-root .mt-1{margin-top:var(--spacing)}.folio-root .mt-2{margin-top:calc(var(--spacing) * 2)}.folio-root .mt-3{margin-top:calc(var(--spacing) * 3)}.folio-root .mt-4{margin-top:calc(var(--spacing) * 4)}.folio-root .mt-\[-2px\]{margin-top:-2px}.folio-root .mr-1{margin-right:var(--spacing)}.folio-root .mb-1{margin-bottom:var(--spacing)}.folio-root .mb-2{margin-bottom:calc(var(--spacing) * 2)}.folio-root .mb-4{margin-bottom:calc(var(--spacing) * 4)}.folio-root .\!inline{display:inline!important}.folio-root .block{display:block}.folio-root .contents{display:contents}.folio-root .flex{display:flex}.folio-root .grid{display:grid}.folio-root .hidden{display:none}.folio-root .inline{display:inline}.folio-root .inline-flex{display:inline-flex}.folio-root .table{display:table}.folio-root .table-cell{display:table-cell}.folio-root .size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.folio-root .size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.folio-root .size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.folio-root .size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.folio-root .size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.folio-root .size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.folio-root .size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.folio-root .size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.folio-root .h-1{height:var(--spacing)}.folio-root .h-5{height:calc(var(--spacing) * 5)}.folio-root .h-6{height:calc(var(--spacing) * 6)}.folio-root .h-7{height:calc(var(--spacing) * 7)}.folio-root .h-8{height:calc(var(--spacing) * 8)}.folio-root .h-9{height:calc(var(--spacing) * 9)}.folio-root .h-10{height:calc(var(--spacing) * 10)}.folio-root .h-12{height:calc(var(--spacing) * 12)}.folio-root .h-\[34px\]{height:34px}.folio-root .h-full{height:100%}.folio-root .max-h-60{max-height:calc(var(--spacing) * 60)}.folio-root .max-h-\[200px\]{max-height:200px}.folio-root .min-h-0{min-height:0}.folio-root .min-h-\[60px\]{min-height:60px}.folio-root .min-h-\[200px\]{min-height:200px}.folio-root .w-4{width:calc(var(--spacing) * 4)}.folio-root .w-5{width:calc(var(--spacing) * 5)}.folio-root .w-7{width:calc(var(--spacing) * 7)}.folio-root .w-8{width:calc(var(--spacing) * 8)}.folio-root .w-9{width:calc(var(--spacing) * 9)}.folio-root .w-20{width:calc(var(--spacing) * 20)}.folio-root .w-80{width:calc(var(--spacing) * 80)}.folio-root .w-\[45px\]{width:45px}.folio-root .w-\[60px\]{width:60px}.folio-root .w-\[75px\]{width:75px}.folio-root .w-\[132px\]{width:132px}.folio-root .w-\[min\(440px\,calc\(100vw-var\(--folio-find-replace-left\,5\.5rem\)-2rem\)\)\]{width:min(440px, calc(100vw - var(--folio-find-replace-left,5.5rem) - 2rem))}.folio-root .w-\[min\(480px\,calc\(100vw-48px\)\)\]{width:min(480px,100vw - 48px)}.folio-root .w-full{width:100%}.folio-root .w-max{width:max-content}.folio-root .w-px{width:1px}.folio-root .max-w-24{max-width:calc(var(--spacing) * 24)}.folio-root .max-w-\[80px\]{max-width:80px}.folio-root .max-w-\[90px\]{max-width:90px}.folio-root .max-w-\[400px\]{max-width:400px}.folio-root .max-w-\[440px\]{max-width:440px}.folio-root .max-w-\[480px\]{max-width:480px}.folio-root .max-w-\[500px\]{max-width:500px}.folio-root .max-w-\[520px\]{max-width:520px}.folio-root .max-w-\[600px\]{max-width:600px}.folio-root .max-w-\[min\(520px\,calc\(100vw-24px\)\)\]{max-width:min(520px,100vw - 24px)}.folio-root .max-w-full{max-width:100%}.folio-root .min-w-0{min-width:0}.folio-root .min-w-4{min-width:calc(var(--spacing) * 4)}.folio-root .min-w-8{min-width:calc(var(--spacing) * 8)}.folio-root .min-w-52{min-width:calc(var(--spacing) * 52)}.folio-root .min-w-\[10rem\]{min-width:10rem}.folio-root .min-w-\[140px\]{min-width:140px}.folio-root .min-w-\[360px\]{min-width:360px}.folio-root .min-w-\[380px\]{min-width:380px}.folio-root .min-w-\[400px\]{min-width:400px}.folio-root .flex-1{flex:1}.folio-root .flex-shrink-0{flex-shrink:0}.folio-root .shrink{flex-shrink:1}.folio-root .shrink-0{flex-shrink:0}.folio-root .-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.folio-root .-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.folio-root .transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.folio-root .animate-spin{animation:var(--animate-spin)}.folio-root .cursor-not-allowed{cursor:not-allowed}.folio-root .cursor-pointer{cursor:pointer}.folio-root .resize{resize:both}.folio-root .resize-y{resize:vertical}.folio-root .\[scrollbar-width\:none\]{scrollbar-width:none}.folio-root .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.folio-root .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.folio-root .grid-cols-\[4\.5rem_minmax\(0\,1fr\)_auto\]{grid-template-columns:4.5rem minmax(0,1fr) auto}.folio-root .grid-cols-\[repeat\(auto-fill\,minmax\(2\.25rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(2.25rem,1fr))}.folio-root .flex-col{flex-direction:column}.folio-root .flex-wrap{flex-wrap:wrap}.folio-root .items-center{align-items:center}.folio-root .items-start{align-items:flex-start}.folio-root .justify-between{justify-content:space-between}.folio-root .justify-center{justify-content:center}.folio-root .justify-end{justify-content:flex-end}.folio-root .justify-start{justify-content:flex-start}.folio-root .gap-0{gap:0}.folio-root .gap-0\.5{gap:calc(var(--spacing) * .5)}.folio-root .gap-1{gap:var(--spacing)}.folio-root .gap-1\.5{gap:calc(var(--spacing) * 1.5)}.folio-root .gap-2{gap:calc(var(--spacing) * 2)}.folio-root .gap-3{gap:calc(var(--spacing) * 3)}.folio-root .gap-3\.5{gap:calc(var(--spacing) * 3.5)}.folio-root .gap-4{gap:calc(var(--spacing) * 4)}.folio-root .gap-5{gap:calc(var(--spacing) * 5)}:where(.folio-root .space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.folio-root .gap-x-4{column-gap:calc(var(--spacing) * 4)}.folio-root .gap-y-2{row-gap:calc(var(--spacing) * 2)}.folio-root .truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.folio-root .overflow-auto{overflow:auto}.folio-root .overflow-hidden{overflow:hidden}.folio-root .overflow-x-auto{overflow-x:auto}.folio-root .overflow-y-auto{overflow-y:auto}.folio-root .overflow-y-hidden{overflow-y:hidden}.folio-root .overscroll-x-contain{overscroll-behavior-x:contain}.folio-root .rounded{border-radius:.25rem}.folio-root .rounded-full{border-radius:3.40282e38px}.folio-root .rounded-lg{border-radius:var(--radius-lg)}.folio-root .rounded-md{border-radius:var(--radius-md)}.folio-root .rounded-sm{border-radius:var(--radius-sm)}.folio-root .rounded-s-none{border-start-start-radius:0;border-end-start-radius:0}.folio-root .rounded-e-none{border-start-end-radius:0;border-end-end-radius:0}.folio-root .border{border-style:var(--tw-border-style);border-width:1px}.folio-root .border-\[3px\]{border-style:var(--tw-border-style);border-width:3px}.folio-root .border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.folio-root .border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.folio-root .border-\[var\(--doc-border\)\]{border-color:var(--doc-border)}.folio-root .border-\[var\(--doc-primary\)\]{border-color:var(--doc-primary)}.folio-root .border-border{border-color:var(--border)}.folio-root .border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.folio-root .border-destructive\/30{border-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.folio-root .border-input{border-color:var(--input)}.folio-root .border-primary{border-color:var(--primary)}.folio-root .border-transparent{border-color:#0000}.folio-root .border-t-\[var\(--doc-primary\)\]{border-top-color:var(--doc-primary)}.folio-root .bg-\[var\(--doc-border\)\]{background-color:var(--doc-border)}.folio-root .bg-\[var\(--doc-page\)\]{background-color:var(--doc-page)}.folio-root .bg-\[var\(--doc-primary\)\]{background-color:var(--doc-primary)}.folio-root .bg-\[var\(--doc-primary-light\)\]{background-color:var(--doc-primary-light)}.folio-root .bg-accent{background-color:var(--accent)}.folio-root .bg-background{background-color:var(--background)}.folio-root .bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.folio-root .bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.folio-root .bg-border{background-color:var(--border)}.folio-root .bg-card{background-color:var(--card)}.folio-root .bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.folio-root .bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.folio-root .bg-muted,.folio-root .bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.folio-root .bg-muted\/30{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.folio-root .bg-popover{background-color:var(--popover)}.folio-root .bg-primary,.folio-root .bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.folio-root .bg-primary\/20{background-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.folio-root .bg-transparent{background-color:#0000}.folio-root .p-0{padding:0}.folio-root .p-1{padding:var(--spacing)}.folio-root .p-2{padding:calc(var(--spacing) * 2)}.folio-root .p-3{padding:calc(var(--spacing) * 3)}.folio-root .p-5{padding:calc(var(--spacing) * 5)}.folio-root .p-6{padding:calc(var(--spacing) * 6)}.folio-root .p-10{padding:calc(var(--spacing) * 10)}.folio-root .px-1{padding-inline:var(--spacing)}.folio-root .px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.folio-root .px-2{padding-inline:calc(var(--spacing) * 2)}.folio-root .px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.folio-root .px-3{padding-inline:calc(var(--spacing) * 3)}.folio-root .px-4{padding-inline:calc(var(--spacing) * 4)}.folio-root .px-5{padding-inline:calc(var(--spacing) * 5)}.folio-root .py-0\.5{padding-block:calc(var(--spacing) * .5)}.folio-root .py-1{padding-block:var(--spacing)}.folio-root .py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.folio-root .py-2{padding-block:calc(var(--spacing) * 2)}.folio-root .py-3{padding-block:calc(var(--spacing) * 3)}.folio-root .py-4{padding-block:calc(var(--spacing) * 4)}.folio-root .pt-6{padding-top:calc(var(--spacing) * 6)}.folio-root .text-center{text-align:center}.folio-root .text-start{text-align:start}.folio-root .font-\[inherit\]{font-family:inherit}.folio-root .font-mono{font-family:var(--font-mono)}.folio-root .text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.folio-root .text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.folio-root .text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.folio-root .text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.folio-root .text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.folio-root .text-\[10px\]{font-size:10px}.folio-root .text-\[11px\]{font-size:11px}.folio-root .text-\[13px\]{font-size:13px}.folio-root .leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.folio-root .leading-none{--tw-leading:1;line-height:1}.folio-root .font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.folio-root .font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.folio-root .tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.folio-root .break-words{overflow-wrap:break-word}.folio-root .whitespace-nowrap{white-space:nowrap}.folio-root .whitespace-pre-wrap{white-space:pre-wrap}.folio-root .text-\[var\(--doc-error\)\]{color:var(--doc-error)}.folio-root .text-\[var\(--doc-text\)\]{color:var(--doc-text)}.folio-root .text-\[var\(--doc-text-muted\)\]{color:var(--doc-text-muted)}.folio-root .text-\[var\(--doc-text-subtle\)\]{color:var(--doc-text-subtle)}.folio-root .text-\[var\(--primary-foreground\,var\(--doc-page\)\)\]{color:var(--primary-foreground,var(--doc-page))}.folio-root .text-accent-foreground{color:var(--accent-foreground)}.folio-root .text-card-foreground{color:var(--card-foreground)}.folio-root .text-destructive{color:var(--destructive)}.folio-root .text-foreground{color:var(--foreground)}.folio-root .text-muted-foreground{color:var(--muted-foreground)}.folio-root .text-popover-foreground{color:var(--popover-foreground)}.folio-root .text-primary{color:var(--primary)}.folio-root .text-primary-foreground{color:var(--primary-foreground)}.folio-root .uppercase{text-transform:uppercase}.folio-root .italic{font-style:italic}.folio-root .tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.folio-root .underline{text-decoration-line:underline}.folio-root .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.folio-root .opacity-60{opacity:.6}.folio-root .opacity-80{opacity:.8}.folio-root .opacity-\[0\.16\]{opacity:.16}.folio-root .shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .shadow-\[0_0_0_1px_var\(--doc-primary\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--doc-primary));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .outline{outline-style:var(--tw-outline-style);outline-width:1px}.folio-root .blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.folio-root .filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.folio-root .transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.folio-root .transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.folio-root .duration-100{--tw-duration:.1s;transition-duration:.1s}.folio-root .outline-none{--tw-outline-style:none;outline-style:none}.folio-root .block-2{block-size:calc(var(--spacing) * 2)}@media (hover:hover){.folio-root .hover\:border-\[var\(--doc-border\)\]:hover{border-color:var(--doc-border)}.folio-root .hover\:bg-\[var\(--doc-bg-hover\)\]:hover{background-color:var(--doc-bg-hover)}.folio-root .hover\:bg-\[var\(--doc-primary-light\)\]:hover{background-color:var(--doc-primary-light)}.folio-root .hover\:bg-muted:hover{background-color:var(--muted)}.folio-root .hover\:text-\[var\(--doc-text\)\]:hover{color:var(--doc-text)}.folio-root .hover\:underline:hover{text-decoration-line:underline}.folio-root .hover\:opacity-100:hover{opacity:1}}.folio-root .focus\:border-\[var\(--doc-primary\)\]:focus{border-color:var(--doc-primary)}.folio-root .focus\:border-primary:focus{border-color:var(--primary)}.folio-root .disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.folio-root .disabled\:border-transparent:disabled{border-color:#0000}.folio-root .disabled\:text-\[var\(--doc-text-subtle\)\]:disabled{color:var(--doc-text-subtle)}.folio-root .disabled\:opacity-40:disabled{opacity:.4}.folio-root .disabled\:opacity-50:disabled{opacity:.5}.folio-root .disabled\:opacity-\[0\.16\]:disabled{opacity:.16}.folio-root .disabled\:opacity-\[0\.35\]:disabled{opacity:.35}@media (hover:hover){.folio-root .disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}.folio-root .disabled\:hover\:text-\[var\(--doc-text-subtle\)\]:disabled:hover{color:var(--doc-text-subtle)}}.folio-root .data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.folio-root .data-\[pressed\]\:bg-\[var\(--doc-primary-light\)\][data-pressed]{background-color:var(--doc-primary-light)}@media (width>=40rem){.folio-root .sm\:mx-2{margin-inline:calc(var(--spacing) * 2)}.folio-root .sm\:px-4{padding-inline:calc(var(--spacing) * 4)}}.folio-root .\[\&_svg\]\:text-destructive svg{color:var(--destructive)}.folio-root .\[\&_svg\]\:text-muted-foreground svg{color:var(--muted-foreground)}.folio-root .\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}}:where(.folio-root){--background:#fff;--foreground:#262626;--card:#fff;--card-foreground:#262626;--popover:#fff;--popover-foreground:#262626;--primary:#262626;--primary-foreground:#fafafa;--secondary:#0000000a;--secondary-foreground:#262626;--muted:#0000000a;--muted-foreground:#525252;--accent:#0000000a;--accent-foreground:#262626;--destructive:#ef4444;--destructive-foreground:#b91c1c;--info:#3b82f6;--info-foreground:#1d4ed8;--success:#10b981;--success-foreground:#047857;--warning:#f59e0b;--warning-foreground:#b45309;--highlight:#fde04780;--highlight-foreground:#262626;--border:#0000001a;--input:#0000001f;--ring:#a3a3a3}:where(.folio-root.dark,.dark .folio-root){--background:#0a0a0a;--foreground:#f5f5f5;--card:#171717;--card-foreground:#f5f5f5;--popover:#171717;--popover-foreground:#f5f5f5;--primary:#f5f5f5;--primary-foreground:#262626;--secondary:#ffffff0a;--secondary-foreground:#f5f5f5;--muted:#ffffff0a;--muted-foreground:#a3a3a3;--accent:#ffffff0a;--accent-foreground:#f5f5f5;--destructive:#f87171;--destructive-foreground:#f87171;--info:#3b82f6;--info-foreground:#60a5fa;--success:#10b981;--success-foreground:#34d399;--warning:#f59e0b;--warning-foreground:#fbbf24;--highlight:#eab30833;--highlight-foreground:#f5f5f5;--border:#ffffff14;--input:#ffffff1a;--ring:#737373}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
|
|
1
|
+
@import "@fontsource/carlito/400.css";@import "@fontsource/carlito/400-italic.css";@import "@fontsource/carlito/700.css";@import "@fontsource/carlito/700-italic.css";@import "@fontsource/lato/400.css";@import "@fontsource/lato/400-italic.css";@import "@fontsource/lato/700.css";@import "@fontsource/lato/700-italic.css";@import "@fontsource/source-sans-3/400.css";@import "@fontsource/source-sans-3/400-italic.css";@import "@fontsource/source-sans-3/700.css";@import "@fontsource/source-sans-3/700-italic.css";@import "@fontsource/caladea/400.css";@import "@fontsource/caladea/400-italic.css";@import "@fontsource/caladea/700.css";@import "@fontsource/caladea/700-italic.css";@import "@fontsource/arimo/400.css";@import "@fontsource/arimo/400-italic.css";@import "@fontsource/arimo/700.css";@import "@fontsource/arimo/700-italic.css";@import "@fontsource/tinos/400.css";@import "@fontsource/tinos/400-italic.css";@import "@fontsource/tinos/700.css";@import "@fontsource/tinos/700-italic.css";@import "@fontsource/cousine/400.css";@import "@fontsource/cousine/400-italic.css";@import "@fontsource/cousine/700.css";@import "@fontsource/cousine/700-italic.css";@import "@fontsource/noto-sans-arabic/400.css";@import "@fontsource/noto-sans-arabic/700.css";.ProseMirror{word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;font-feature-settings:"liga" 0;position:relative}.ProseMirror pre{white-space:pre-wrap}.ProseMirror li{position:relative}.ProseMirror-hideselection ::selection{background:0 0}.ProseMirror-hideselection{caret-color:#0000}.ProseMirror [draggable][contenteditable=false]{user-select:text}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";pointer-events:none;border:2px solid #8cf;position:absolute;inset:-2px -2px -2px -32px}img.ProseMirror-separator{border:none!important;margin:0!important;display:inline!important}.prosemirror-editor-wrapper{min-height:100%}.prosemirror-editor{width:var(--page-width,8.5in)}.prosemirror-editor .ProseMirror{background:var(--doc-canvas);width:var(--page-width,8.5in);min-height:var(--page-height,11in);padding-top:var(--margin-top,72px);padding-bottom:var(--margin-bottom,72px);padding-left:var(--margin-left,72px);padding-right:var(--margin-right,72px);color:var(--doc-text);white-space:pre-wrap;word-wrap:break-word;-moz-tab-size:48;tab-size:48;box-sizing:border-box;outline:none;font-family:Calibri,Arial,sans-serif;font-size:11pt;position:relative;box-shadow:0 2px 8px #00000026}.prosemirror-editor .ProseMirror .docx-page-break{height:40px;margin:0 calc(-1 * var(--margin-left,72px));margin-right:calc(-1 * var(--margin-right,72px));background:var(--doc-bg);pointer-events:none;border:none;display:block;position:relative}.prosemirror-editor .ProseMirror .docx-page-break:before{content:"";background:linear-gradient(#0000,#00000014);height:8px;position:absolute;bottom:0;left:0;right:0}.prosemirror-editor .ProseMirror .docx-page-break:after{content:"";background:linear-gradient(#00000014,#0000);height:8px;position:absolute;top:0;left:0;right:0}.prosemirror-editor .ProseMirror [data-page-break-before=true]{break-before:page}.prosemirror-editor .ProseMirror .docx-page-break-line{height:1px;margin:20px calc(-1 * var(--margin-left,72px));margin-right:calc(-1 * var(--margin-right,72px));border-top:1px dashed var(--doc-border);display:block;position:relative}.prosemirror-editor .ProseMirror .docx-page-break-line:before{content:"Page Break";background:var(--doc-bg);color:var(--doc-text-muted);white-space:nowrap;padding:0 8px;font-size:10px;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.prosemirror-editor .ProseMirror:focus{outline:none}.prosemirror-editor .ProseMirror p{white-space:pre-wrap;word-wrap:break-word;min-height:1em;margin:0;padding:0;line-height:normal;display:block}.prosemirror-editor .ProseMirror p:empty:before{content:" "}.prosemirror-editor .ProseMirror span{white-space:pre-wrap;display:inline}.prosemirror-editor .ProseMirror .docx-list-bullet,.prosemirror-editor .ProseMirror .docx-list-numbered{padding-left:48px;position:relative}.prosemirror-editor .ProseMirror [data-list-marker]:before{content:attr(data-list-marker);text-align:right;white-space:nowrap;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-bullet:not([data-list-marker]):before{content:"•";text-align:right;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-numbered:not([data-list-marker]){counter-increment:list-counter}.prosemirror-editor .ProseMirror .docx-list-decimal:not([data-list-marker]):before{content:counter(list-counter) ".";text-align:right;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-lower-roman:not([data-list-marker]):before{content:counter(list-counter, lower-roman) ".";text-align:right;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-upper-roman:not([data-list-marker]):before{content:counter(list-counter, upper-roman) ".";text-align:right;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-lower-alpha:not([data-list-marker]):before{content:counter(list-counter, lower-alpha) ".";text-align:right;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-upper-alpha:not([data-list-marker]):before{content:counter(list-counter, upper-alpha) ".";text-align:right;width:44px;position:absolute;left:0}.prosemirror-editor .ProseMirror .docx-list-level-0:not([data-list-marker]):first-of-type{counter-reset:list-counter}.prosemirror-editor .ProseMirror .docx-list-level-1{margin-left:.5in}.prosemirror-editor .ProseMirror .docx-list-level-2{margin-left:1in}.prosemirror-editor .ProseMirror .docx-list-level-3{margin-left:1.5in}.prosemirror-editor .ProseMirror .docx-list-level-4{margin-left:2in}.prosemirror-editor .ProseMirror .docx-list-level-5{margin-left:2.5in}.prosemirror-editor .ProseMirror .docx-list-level-6{margin-left:3in}.prosemirror-editor .ProseMirror .docx-list-level-7{margin-left:3.5in}.prosemirror-editor .ProseMirror .docx-list-level-8{margin-left:4in}.prosemirror-editor .ProseMirror ::selection{background:#4285f44d}.prosemirror-editor[data-placeholder]:before{content:attr(data-placeholder);color:var(--doc-text-subtle);pointer-events:none;position:absolute}.prosemirror-editor .ProseMirror img.docx-image{object-fit:contain;vertical-align:baseline;outline:none;max-width:100%;display:inline}.prosemirror-editor .ProseMirror img.docx-image-float-left{clear:left}.prosemirror-editor .ProseMirror img.docx-image-float-right{clear:right}.prosemirror-editor .ProseMirror img.docx-image-block{clear:both}.prosemirror-editor .ProseMirror p:has(>img.docx-image-block:only-child){text-align:center;text-indent:0!important}.prosemirror-editor .ProseMirror p:has(img.docx-image-float):after{content:"";clear:both;display:table}.prosemirror-editor .ProseMirror img.docx-image.ProseMirror-selectednode{outline:2px solid var(--doc-primary,#4285f4);outline-offset:2px;cursor:grab}.prosemirror-editor .ProseMirror.pm-image-dragging img.docx-image.ProseMirror-selectednode{opacity:.4;outline:2px dashed var(--doc-primary,#4285f4);cursor:grabbing}.prosemirror-editor .ProseMirror img:not(.docx-image){max-width:100%;height:auto}.prosemirror-editor .ProseMirror .docx-shape{vertical-align:middle;cursor:pointer;line-height:0;display:inline-block}.prosemirror-editor .ProseMirror .docx-shape.ProseMirror-selectednode{outline:2px solid var(--doc-primary,#4285f4);outline-offset:2px}.prosemirror-editor .ProseMirror .docx-textbox{cursor:text;border-radius:2px;margin:4px 0}.prosemirror-editor .ProseMirror .docx-textbox.ProseMirror-selectednode{outline:2px solid var(--doc-primary,#4285f4);outline-offset:2px}.prosemirror-editor .ProseMirror a{color:var(--doc-link);text-decoration:underline}.prosemirror-editor .ProseMirror a:hover{color:var(--doc-primary-hover)}.prosemirror-editor .ProseMirror .docx-insertion a,.prosemirror-editor .ProseMirror .docx-deletion a{color:inherit}.prosemirror-editor .ProseMirror .docx-footnote-ref,.prosemirror-editor .ProseMirror .docx-endnote-ref{color:var(--doc-link,#06c);cursor:pointer}.prosemirror-editor .ProseMirror .docx-note-ref-superscript{vertical-align:super;font-size:smaller}.prosemirror-editor .ProseMirror .docx-footnote-ref:hover,.prosemirror-editor .ProseMirror .docx-endnote-ref:hover{text-decoration:underline}.prosemirror-editor .ProseMirror hr{border:none;border-top:1px solid var(--doc-text);height:0;margin:12pt 0}.prosemirror-editor .ProseMirror table.docx-table{border-collapse:collapse;max-width:100%;margin:12pt 0}.prosemirror-editor .ProseMirror td.docx-table-cell,.prosemirror-editor .ProseMirror th.docx-table-header{vertical-align:top;min-width:30px;padding:4px 8px}.prosemirror-editor .ProseMirror th.docx-table-header{font-weight:inherit;text-align:inherit}.prosemirror-editor .ProseMirror td p,.prosemirror-editor .ProseMirror th p{min-height:auto;margin:0;padding:0}.prosemirror-editor .ProseMirror td p:first-child,.prosemirror-editor .ProseMirror th p:first-child{margin-top:0}.prosemirror-editor .ProseMirror td p:last-child,.prosemirror-editor .ProseMirror th p:last-child{margin-bottom:0}.prosemirror-editor .ProseMirror .activeCell{outline-offset:-2px;outline:2px solid #4285f480}.prosemirror-editor .ProseMirror .selectedCell{background-color:#4285f426}.prosemirror-editor .ProseMirror .selectedCell:after{content:"";pointer-events:none;background:#4285f41a;position:absolute;inset:0}.prosemirror-editor .ProseMirror table table{margin:4px 0}.prosemirror-editor .ProseMirror .column-resize-handle{cursor:col-resize;z-index:20;background-color:#4285f480;width:4px;position:absolute;top:0;bottom:0;right:-2px}.prosemirror-editor .ProseMirror td.docx-table-cell,.prosemirror-editor .ProseMirror th.docx-table-header{position:relative}.prosemirror-editor .ProseMirror.resize-cursor{cursor:col-resize}.prosemirror-editor .ProseMirror table:not(:hover) .column-resize-handle{background-color:#0000}.prosemirror-editor .ProseMirror table:hover .column-resize-handle{background-color:#4285f44d}.prosemirror-editor .ProseMirror .column-resize-handle:hover{background-color:#4285f4b3}.prosemirror-editor .ProseMirror span.docx-tab{white-space:pre;background:0 0;min-width:48px;display:inline-block}.prosemirror-editor .ProseMirror span.docx-tab[data-leader=dot]:before{content:"...........";color:inherit;white-space:nowrap;position:absolute;overflow:hidden}.prosemirror-editor .ProseMirror span.docx-tab[data-leader=hyphen]:before{content:"-----------";color:inherit;white-space:nowrap;position:absolute;overflow:hidden}.prosemirror-editor .ProseMirror span.docx-tab[data-leader=underscore]:before{content:"___________";color:inherit;white-space:nowrap;position:absolute;overflow:hidden}.prosemirror-editor .ProseMirror .docx-run-all-caps{text-transform:uppercase}.prosemirror-editor .ProseMirror .docx-run-small-caps{font-variant:small-caps}.prosemirror-editor .ProseMirror .docx-comment{background-color:var(--doc-comment-bg,#ffd40014);border-bottom:1px solid var(--doc-comment-border,#b482003d)}.docx-section-break{position:relative}.prosemirror-editor .ProseMirror .pm-drop-indicator{background:var(--doc-primary,#4285f4);pointer-events:none;z-index:50;width:2px;position:absolute}.prosemirror-editor .ProseMirror .ProseMirror-dropcursor{z-index:50}.layout-paragraph.folio-paragraph-flash{animation:folio-paragraph-flash-fade var(--folio-paragraph-flash-duration,1.2s) ease-out both}@keyframes folio-paragraph-flash-fade{0%{box-shadow:inset 0 0 0 9999px var(--folio-paragraph-flash-color,#ffeb3b8c)}to{box-shadow:inset 0 0 0 9999px #0000}}.layout-page-header *,.layout-page-footer *{pointer-events:none}.paged-editor--editing-header .layout-page-header *,.paged-editor--editing-footer .layout-page-footer *{pointer-events:auto}.hf-editor-pm.prosemirror-editor{width:100%;max-width:100%}.hf-editor-pm .ProseMirror{outline:none;min-height:40px;padding:0}.hf-editor-pm.prosemirror-editor .ProseMirror{width:100%;max-width:100%;min-height:40px;box-shadow:none;background:0 0;padding:0}.hf-editor-pm .ProseMirror:focus{outline:none}.hf-editor-pm .ProseMirror p{padding-top:var(--docx-space-before,0);padding-right:0;padding-bottom:var(--docx-space-after,0);white-space:pre-wrap;word-wrap:break-word;min-height:1em;padding-left:0;display:block;margin:0!important;line-height:normal!important}.hf-editor-pm .ProseMirror td p,.hf-editor-pm .ProseMirror th p{padding-top:var(--docx-space-before,0);padding-right:0;padding-bottom:var(--docx-space-after,0);min-height:auto;padding-left:0;margin:0!important;line-height:normal!important}.hf-editor-pm .ProseMirror .tableWrapper{overflow:visible}.hf-editor-pm .ProseMirror table{margin:0;border-collapse:collapse!important;border-spacing:0!important;table-layout:fixed!important}.hf-editor-pm .ProseMirror td.docx-table-cell,.hf-editor-pm .ProseMirror th.docx-table-header{box-sizing:border-box!important}.hf-editor-pm .ProseMirror td p:has(>img.docx-image):not(:has(>span)),.hf-editor-pm .ProseMirror th p:has(>img.docx-image):not(:has(>span)){font-size:0!important;line-height:0!important}@font-face{font-family:Calibri;src:local(Carlito),local(Carlito Regular),local(Calibri);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Calibri;src:local(Carlito Italic),local(Calibri Italic);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Calibri;src:local(Carlito Bold),local(Calibri Bold);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Calibri;src:local(Carlito Bold Italic),local(Calibri Bold Italic);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Cambria;src:local(Caladea),local(Caladea Regular),local(Cambria);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cambria;src:local(Caladea Italic),local(Cambria Italic);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Cambria;src:local(Caladea Bold),local(Cambria Bold);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Cambria;src:local(Caladea Bold Italic),local(Cambria Bold Italic);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Arial;src:local(Arimo),local(Arimo Regular),local(Arial);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Arial;src:local(Arimo Italic),local(Arial Italic);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Arial;src:local(Arimo Bold),local(Arial Bold);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Arial;src:local(Arimo Bold Italic),local(Arial Bold Italic);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Times New Roman;src:local(Tinos),local(Tinos Regular),local(Times New Roman);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Times New Roman;src:local(Tinos Italic),local(Times New Roman Italic);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Times New Roman;src:local(Tinos Bold),local(Times New Roman Bold);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Times New Roman;src:local(Tinos Bold Italic),local(Times New Roman Bold Italic);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Courier New;src:local(Cousine),local(Cousine Regular),local(Courier New);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Courier New;src:local(Cousine Italic),local(Courier New Italic);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Courier New;src:local(Cousine Bold),local(Courier New Bold);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Courier New;src:local(Cousine Bold Italic),local(Courier New Bold Italic);font-weight:700;font-style:italic;font-display:swap}.folio-autocomplete-ghost{pointer-events:none;user-select:none;white-space:pre-wrap;overflow-wrap:anywhere;color:color-mix(in oklch, var(--doc-text,currentColor) 38%, transparent);font:inherit;letter-spacing:inherit}.folio-autocomplete-caret{background:color-mix(in oklch, var(--doc-text,currentColor) 8%, transparent);height:1.1em;color:color-mix(in oklch, var(--doc-text,currentColor) 70%, transparent);letter-spacing:.02em;text-transform:lowercase;vertical-align:baseline;pointer-events:none;user-select:none;border-radius:9999px;align-items:center;margin-inline-start:.4em;padding:0 .45em;font-size:.72em;font-weight:500;display:inline-flex}.folio-autocomplete-caret--streaming{animation:1.2s ease-in-out infinite folio-autocomplete-caret-pulse}@keyframes folio-autocomplete-caret-pulse{0%,to{opacity:.65}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.folio-autocomplete-caret--streaming{animation:none}}.folio-root{--doc-page:var(--background);--doc-canvas:var(--background);--doc-canvas-text:var(--foreground);--doc-bg:var(--muted);--doc-canvas-surface:linear-gradient(var(--doc-bg), var(--doc-bg)) var(--doc-page);--doc-bg-subtle:var(--muted);--doc-bg-muted:var(--muted);--doc-bg-hover:var(--accent);--doc-bg-input:var(--input);--doc-text:var(--foreground);--doc-text-muted:var(--muted-foreground);--doc-text-subtle:var(--muted-foreground);--doc-text-placeholder:var(--muted-foreground);--doc-border:var(--border);--doc-border-input:var(--input);--doc-border-dark:var(--border);--doc-primary:var(--primary);--doc-primary-hover:var(--primary);--doc-primary-light:var(--accent);--doc-error:var(--destructive);--doc-success:var(--success);--doc-link:#2563eb;--doc-selection:#2563eb40;--doc-selection-dark-bg:#60a5fa66;--doc-tmpl-loop:#7c3aed;--doc-tmpl-cond:#0d9488;--doc-find-highlight:#facc1580;--doc-find-current:#f9731699;--doc-image-selection:var(--doc-link);--doc-image-selection-muted:color-mix(in srgb, var(--doc-image-selection) 12%, transparent);--doc-handle-border:var(--background);--doc-dimension-bg:color-mix(in srgb, var(--foreground) 75%, transparent);--doc-dimension-text:var(--background);--doc-focus-ring:color-mix(in srgb, var(--doc-link) 18%, transparent);--doc-shadow-sm:color-mix(in srgb, var(--foreground) 15%, transparent);--doc-shadow-md:color-mix(in srgb, var(--foreground) 24%, transparent);--doc-shadow-lg:color-mix(in srgb, var(--foreground) 28%, transparent)}.dark .folio-root,.folio-root.dark{--doc-link:#60a5fa;--doc-selection:#60a5fa4d;--doc-tmpl-loop:#a78bfa;--doc-tmpl-cond:#2dd4bf}.hf-options-button{color:var(--doc-link);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:2px 6px;font-size:11px}.hf-options-button:hover,.hf-options-button:focus-visible{background-color:var(--doc-bg-hover);outline:none}.hf-options-dropdown{z-index:100;border:1px solid var(--doc-border);background:var(--doc-page);min-width:160px;box-shadow:0 2px 6px var(--doc-shadow-sm);border-radius:4px;padding:4px 0;position:absolute;top:100%;right:0}.hf-options-dropdown--up{top:auto;bottom:100%}.hf-options-item{width:100%;color:var(--doc-text);cursor:pointer;text-align:left;background:0 0;border:0;padding:6px 12px;font-size:12px;display:block}.hf-options-item:hover,.hf-options-item:focus-visible{background-color:var(--doc-bg-hover);outline:none}.hf-options-divider{border-top:1px solid var(--doc-border);margin:4px 0}.image-drag-ghost{z-index:10000;border:2px dashed var(--image-drag-ghost-selection);background:var(--image-drag-ghost-selection-muted);opacity:.5;pointer-events:none;border-radius:4px;position:fixed}[contenteditable=true]{caret-color:var(--doc-canvas-text,var(--doc-text));caret-shape:bar;outline:none}.dark [contenteditable=true],.dark .ProseMirror{caret-color:var(--doc-canvas-text)!important}.docx-run-editable[contenteditable=true]{caret-color:var(--doc-canvas-text,var(--doc-text));min-height:1em;display:inline}.docx-paragraph-empty [contenteditable=true]{min-width:1px;min-height:1em;display:inline-block}@keyframes folio-caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.docx-paragraph-editable{cursor:text}.docx-run-editable[contenteditable=true]:focus,.docx-paragraph-editable:focus-within{outline:none}.docx-run-editable::selection,.docx-run-editable ::selection,.docx-run::selection,.docx-run ::selection,[contenteditable=true]::selection,[contenteditable=true] ::selection,.docx-paragraph::selection,.docx-paragraph ::selection,.docx-paragraph-editable::selection,.docx-paragraph-editable ::selection,.docx-hyperlink::selection,.docx-hyperlink ::selection{background-color:var(--doc-selection)!important;color:inherit!important;background-color:var(--doc-selection)!important}.docx-run-highlighted::selection,.docx-run-highlighted ::selection{color:inherit!important;background-color:#2563eb73!important}.docx-run-dark-bg::selection,.docx-run-dark-bg ::selection{background-color:var(--doc-selection-dark-bg)!important;color:inherit!important}.docx-find-highlight{border-radius:2px;background-color:var(--doc-find-highlight)!important}.docx-find-highlight-current{outline:2px solid var(--doc-find-current);border-radius:2px;background-color:var(--doc-find-current)!important}.docx-selection-overlay-container{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.docx-selection-overlay-rect{background-color:var(--doc-selection);pointer-events:none;user-select:none;position:absolute}.docx-run-highlighted[contenteditable=true]{caret-color:var(--doc-text)}.docx-run-dark-bg[contenteditable=true]{caret-color:var(--doc-canvas-text)}.folio-editor{cursor:default}.folio-editor-page{cursor:text}.dark .layout-page,.dark .layout-page-content,.dark .docx-paragraph,.dark .docx-run,.dark .docx-run-editable,.dark .ProseMirror{color:var(--doc-canvas-text)!important}.dark .layout-page [style*=--doc-run-color]:not(.docx-insertion):not(.docx-deletion){color:oklch(from var(--doc-run-color) clamp(0, 1.22 - .95 * l, 1) calc(c * .6) h)!important}.dark .layout-page [style*=--doc-authored-background-color]{background-color:oklch(from var(--doc-authored-background-color) clamp(0, 1.22 - .95 * l, 1) calc(c * .6) h)!important}.dark .layout-page .docx-insertion,.dark .layout-page .docx-deletion{--tc-inverted:oklch(from var(--tc-color,#c00000) clamp(0, 1.22 - .95 * l, 1) calc(c * .6) h);color:var(--tc-inverted)!important;text-decoration-color:var(--tc-inverted)!important}.dark .layout-page .docx-insertion--suggested,.dark .layout-page .docx-deletion--suggested{--suggestion-inverted:oklch(from var(--suggestion-color,#6d3bd6) clamp(0, 1.22 - .95 * l, 1) calc(c * .6) h);color:var(--suggestion-inverted)!important;text-decoration-color:var(--suggestion-inverted)!important}.folio-editor ::-webkit-scrollbar{width:6px;height:6px}.folio-editor ::-webkit-scrollbar-track{background:0 0}.folio-editor ::-webkit-scrollbar-thumb{background:var(--foreground,#262626);opacity:.2;border-radius:9999px}.folio-editor ::-webkit-scrollbar-thumb:hover{opacity:.4}.folio-editor{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--foreground,#262626) 20%, transparent) transparent}.docx-list-marker,.docx-bookmark-start,.docx-bookmark-end,.docx-field,.docx-drawing-placeholder,.docx-shape-placeholder{cursor:default;user-select:none}.layout-table-cell-selected{outline-offset:-2px;outline:2px solid #2563eb99;position:relative}.layout-table-cell-selected:after{content:"";pointer-events:none;background-color:#2563eb1f;position:absolute;inset:0}.layout-table-resize-handle,.layout-table-row-resize-handle,.layout-table-edge-handle-bottom,.layout-table-edge-handle-right{background-color:#0000;transition:background-color .15s}.layout-table-resize-handle:hover,.layout-table-resize-handle.dragging,.layout-table-row-resize-handle:hover,.layout-table-row-resize-handle.dragging,.layout-table-edge-handle-bottom:hover,.layout-table-edge-handle-bottom.dragging,.layout-table-edge-handle-right:hover,.layout-table-edge-handle-right.dragging{background-color:#2563eb80}.paged-editor{direction:ltr}.paged-editor--readonly .layout-table-resize-handle,.paged-editor--readonly .layout-table-row-resize-handle,.paged-editor--readonly .layout-table-edge-handle-bottom,.paged-editor--readonly .layout-table-edge-handle-right{display:none!important}.paged-editor--readonly .layout-page-header,.paged-editor--readonly .layout-page-footer{cursor:default;pointer-events:none}.paged-editor--readonly .layout-page-content{cursor:text}[data-tc-author-idx="0"]{--tc-color:#c00000}[data-tc-author-idx="1"]{--tc-color:#2f5496}[data-tc-author-idx="2"]{--tc-color:#538135}[data-tc-author-idx="3"]{--tc-color:#7030a0}[data-tc-author-idx="4"]{--tc-color:#bf8f00}.docx-hidden{opacity:.4;text-decoration-line:underline;text-decoration-style:dotted}.docx-insertion{color:var(--tc-color,#c00000);text-decoration:underline;text-decoration-color:var(--tc-color,#c00000);position:relative}.docx-deletion{text-decoration:line-through;text-decoration-color:var(--tc-color,#c00000);color:var(--tc-color,#c00000);position:relative}.folio-root .layout-paragraph[data-tracked-changes=true]{--folio-review-bar-offset:24px;--folio-review-bar-color:var(--doc-text,currentcolor)}.folio-root .layout-paragraph[data-tracked-changes=true]:before{content:"";top:0;bottom:0;left:calc(-1 * var(--folio-review-bar-offset));background:var(--folio-review-bar-color);pointer-events:none;width:2px;position:absolute}.folio-root{--suggestion-color:#6d3bd6;--suggestion-bg:oklch(50.751% .220592 291.193/.12)}.docx-insertion--suggested{color:var(--suggestion-color);text-decoration:underline dotted;text-decoration-color:var(--suggestion-color);background-image:linear-gradient(var(--suggestion-bg), var(--suggestion-bg))}.docx-deletion--suggested{color:var(--suggestion-color);text-decoration:line-through dotted;text-decoration-color:var(--suggestion-color);background-image:linear-gradient(var(--suggestion-bg), var(--suggestion-bg))}.docx-insertion[data-change-author]:hover:after,.docx-deletion[data-change-author]:hover:after{content:attr(data-change-author);white-space:nowrap;color:var(--foreground);background:var(--popover,var(--doc-page));pointer-events:none;z-index:100;border-radius:6px;padding:3px 8px;font-size:11px;font-style:normal;font-weight:500;line-height:1.4;text-decoration:none;position:absolute;bottom:calc(100% + 4px);left:0;box-shadow:0 4px 12px #0000001f}.paged-editor__hidden-pm .docx-insertion,.paged-editor__hidden-pm .docx-deletion{opacity:1;color:#0000!important;background:0 0!important;text-decoration-color:#0000!important}.folio-root--no-markup .docx-insertion{color:inherit!important;background:0 0!important;text-decoration:none!important}.folio-root--no-markup .docx-deletion{display:none!important}.folio-root--no-markup .layout-paragraph[data-tracked-changes=true]:before{display:none}.folio-root--original .docx-insertion{display:none!important}.folio-root--original .docx-deletion{color:inherit!important;background:0 0!important;text-decoration:none!important}.folio-root--original .layout-paragraph[data-tracked-changes=true]:before{display:none}.folio-root--simple-markup .docx-insertion{color:inherit!important;background:0 0!important;text-decoration:none!important}.folio-root--simple-markup .docx-deletion{display:none!important}.folio-root--no-markup .docx-insertion a,.folio-root--simple-markup .docx-insertion a,.folio-root--original .docx-deletion a{color:var(--doc-link)!important}.layout-page-content{cursor:text}.layout-page-header,.layout-page-footer{cursor:pointer;transition:background-color .15s}.layout-page-header:hover,.layout-page-footer:hover{background-color:#2563eb0a}.layout-page-header:empty:hover:after{content:"Double-click to add header";text-align:center;color:var(--doc-text-subtle);padding:4px 0;font-size:11px;display:block}.layout-page-footer:empty:hover:after{content:"Double-click to add footer";text-align:center;color:var(--doc-text-subtle);padding:4px 0;font-size:11px;display:block}.folio-no-hf-edit .layout-page-header:hover,.folio-no-hf-edit .layout-page-footer:hover{background-color:#0000}.folio-no-hf-edit .layout-page-header:empty:hover:after,.folio-no-hf-edit .layout-page-footer:empty:hover:after{content:none}.folio-no-hf-edit .paged-editor{background-color:#0000!important}.paged-editor--hf-editing .layout-page-content{opacity:.4;pointer-events:none;transition:opacity .15s}.paged-editor--editing-header .layout-page-header{border-bottom:1px dotted var(--doc-primary)}.paged-editor--editing-footer .layout-page-footer{border-top:1px dotted var(--doc-primary)}.paged-editor--hf-editing .layout-page-header:hover,.paged-editor--hf-editing .layout-page-footer:hover{background-color:#0000}.docx-section-break:after{content:"Section Break (" attr(data-section-break) ")";text-align:center;color:var(--doc-text-muted);border-top:1px dashed var(--doc-border);pointer-events:none;margin-top:4px;padding-top:2px;font-size:9px;display:block}[data-folio-ai-suggestions-overlay] .folio-ai-suggestion{border-bottom:1px dotted var(--folio-ai-underline-color,transparent)}[data-folio-ai-suggestions-overlay] .folio-ai-suggestion--substantive{border-bottom-width:1.5px}[data-folio-ai-suggestions-overlay] .folio-ai-suggestion--focused-original{opacity:1;background:linear-gradient(transparent calc(50% - .5px), var(--folio-ai-strike-color) calc(50% - .5px), var(--folio-ai-strike-color) calc(50% + .5px), transparent calc(50% + .5px)), color-mix(in srgb, var(--doc-canvas,#fff) 45%, transparent)}[data-folio-ai-suggestions-overlay] .folio-ai-suggestion--focused-replacement{background:linear-gradient(var(--folio-ai-replacement-bg), var(--folio-ai-replacement-bg)), var(--doc-canvas,#fff)}.folio-anonymization-term{background-color:#0000;border-radius:2px;transition:background-color .15s,box-shadow .15s;box-shadow:inset 0 -2px #2563ebcc}.folio-anonymization-term:hover{background-color:#2563eb1f}.folio-anonymization-term[data-folio-anonymization-selected=true]{background-color:#2563eb33;box-shadow:inset 0 -2px #2563ebe6,0 0 0 2px #2563eb59}.folio-passage-highlight{--folio-passage-highlight-color:#409eff47;background-color:var(--folio-passage-highlight-color);box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--folio-passage-highlight-color) 55%, transparent);border-radius:2px}.folio-ai-citation{background-color:color-mix(in oklch, var(--doc-find-highlight,#facc1580) 50%, transparent);border-radius:2px;transition:background-color .2s,box-shadow .2s}.folio-ai-citation--active{background-color:color-mix(in oklch, var(--doc-find-current,#f9731699) 70%, transparent);box-shadow:0 0 0 2px color-mix(in oklch, var(--doc-find-current,#f9731699) 30%, transparent)}@keyframes folio-outline-flash{0%{background-color:color-mix(in oklch, var(--color-primary,oklch(60% .2 24)) 18%, transparent)}to{background-color:#0000}}.layout-page-content [data-folio-outline-flash]{border-radius:2px;animation:1.2s ease-out folio-outline-flash}.layout-page-content [data-sdt-boundary=true]{position:relative}.layout-page-content [data-sdt-boundary=true]:before{content:"";pointer-events:none;border:1px dashed #0000;transition:border-color .12s ease-out;position:absolute;inset:-2px -4px}.layout-page-content [data-sdt-boundary=true][data-sdt-position=first]:before{border-bottom-width:0;border-start-start-radius:2px;border-start-end-radius:2px;border-end-end-radius:0;border-end-start-radius:0}.layout-page-content [data-sdt-boundary=true][data-sdt-position=middle]:before{border-top-width:0;border-bottom-width:0;border-radius:0}.layout-page-content [data-sdt-boundary=true][data-sdt-position=last]:before{border-top-width:0;border-start-start-radius:0;border-start-end-radius:0;border-end-end-radius:2px;border-end-start-radius:2px}.layout-page-content [data-sdt-boundary=true][data-sdt-position=only]:before,.layout-page-content [data-sdt-boundary=true]:not([data-sdt-position]):before{border-radius:2px}.layout-page-content [data-sdt-boundary=true]:hover:before,.layout-page-content [data-sdt-boundary=true]:focus-within:before{border-color:color-mix(in oklch, var(--color-border,oklch(85% 0 0)) 60%, transparent)}.ProseMirror-gapcursor{pointer-events:none;display:none;position:absolute}.ProseMirror-gapcursor:after{content:"";border-top:1px solid var(--doc-text,currentcolor);width:20px;animation:1.1s linear infinite folio-gapcursor-blink;display:block;position:absolute;top:-2px}@keyframes folio-gapcursor-blink{to{visibility:hidden}}.ProseMirror-focused .ProseMirror-gapcursor{display:block}.folio-template-directive{background:#0000ff6b;border-radius:3px;position:absolute}.folio-template-directive--clause,.folio-template-directive--num,.folio-template-directive--ref{background:#0000ff3d}.folio-template-directive--if,.folio-template-directive--elif,.folio-template-directive--else,.folio-template-directive--endif{background:color-mix(in srgb, var(--doc-tmpl-cond) 26%, transparent)}.folio-template-directive--loop,.folio-template-directive--for,.folio-template-directive--endfor{background:color-mix(in srgb, var(--doc-tmpl-loop) 26%, transparent)}.folio-template-directive--block{pointer-events:auto;transition:background-color .12s}.folio-template-directive--if.folio-template-directive--active,.folio-template-directive--elif.folio-template-directive--active,.folio-template-directive--else.folio-template-directive--active,.folio-template-directive--endif.folio-template-directive--active{background:color-mix(in srgb, var(--doc-tmpl-cond) 44%, transparent)}.folio-template-directive--for.folio-template-directive--active,.folio-template-directive--endfor.folio-template-directive--active{background:color-mix(in srgb, var(--doc-tmpl-loop) 44%, transparent)}.folio-template-band-rail{pointer-events:auto;border-radius:2px;transition:background-color .12s,box-shadow .12s;position:absolute}.folio-template-band-rail--for{background:color-mix(in srgb, var(--doc-tmpl-loop) 22%, transparent)}.folio-template-band-rail--if{background:color-mix(in srgb, var(--doc-tmpl-cond) 22%, transparent)}.folio-template-band-rail--for.folio-template-band-rail--active{background:color-mix(in srgb, var(--doc-tmpl-loop) 90%, transparent);box-shadow:0 0 0 .75px color-mix(in srgb, var(--doc-tmpl-loop) 45%, transparent)}.folio-template-band-rail--if.folio-template-band-rail--active{background:color-mix(in srgb, var(--doc-tmpl-cond) 90%, transparent);box-shadow:0 0 0 .75px color-mix(in srgb, var(--doc-tmpl-cond) 45%, transparent)}.folio-template-preview-original,.folio-template-preview-hidden{display:none}.folio-template-preview-value{white-space:pre-wrap}.folio-template-preview-value--highlighted{--folio-template-preview-accent-bg:#f9731647;background:var(--folio-template-preview-accent-bg);border-radius:3px;padding:0 2px;box-shadow:inset 0 0 0 1px #f9731673}.folio-template-preview-run--highlighted{background:#f9731647;border-radius:3px;box-shadow:inset 0 0 0 1px #f9731673}:where(.folio-default-button){white-space:nowrap;cursor:pointer;border-style:solid;border-width:1px;border-radius:.5rem;justify-content:center;align-items:center;gap:.375rem;font-weight:500;display:inline-flex}:where(.folio-default-button--default){background:var(--doc-primary,#2563eb);color:var(--doc-primary-foreground,#fff);border-color:var(--doc-primary,#2563eb)}:where(.folio-default-button--ghost){color:var(--doc-text,inherit);background:0 0;border-color:#0000}:where(.folio-default-button--sm){height:2rem;padding:0 .625rem;font-size:.8125rem}:where(.folio-default-button--xs){height:1.75rem;padding:0 .5rem;font-size:.75rem}:where(.folio-default-button--icon-xs){width:1.75rem;height:1.75rem;padding:0}.folio-default-color-picker-trigger{display:inline-flex}.folio-default-color-picker-popup{border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);color:var(--doc-text,inherit);border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.5rem;display:flex;box-shadow:0 4px 12px #0000001f}.folio-default-color-picker-clear{cursor:pointer;height:1.5rem;color:var(--doc-text-muted,inherit);background:0 0;border:none;align-items:center;padding:0 .25rem;font-size:.75rem;display:flex}.folio-default-color-picker-swatches{grid-template-columns:repeat(8,1fr);gap:.25rem;display:grid}.folio-default-color-picker-swatch{border:1px solid var(--doc-border,#e5e7eb);cursor:pointer;border-radius:.25rem;width:1.25rem;height:1.25rem;padding:0}.folio-default-color-picker-swatch--selected{outline:2px solid var(--doc-primary,#2563eb);outline-offset:1px}.folio-default-color-picker-custom{color:var(--doc-text-muted,inherit);align-items:center;gap:.375rem;font-size:.75rem;display:flex}.folio-default-date-input{border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);height:1.75rem;color:var(--doc-text,inherit);border-radius:.375rem;padding:0 .375rem;font-size:.8125rem}.folio-outline{box-sizing:border-box;background:var(--doc-page);min-height:0;color:var(--doc-text);flex-direction:column;font-size:.8125rem;display:flex}.folio-outline--column{border-inline-end:1px solid var(--doc-border);flex:none}.folio-outline--rail{z-index:30;border-inline-end:1px solid var(--doc-border);flex:none;align-items:center;padding-block:4px 8px;position:relative}.folio-outline--drawer{z-index:46;border-inline-end:1px solid var(--doc-border);max-width:calc(100% - 16px);box-shadow:0 8px 28px var(--doc-shadow-md);position:absolute;inset-block:0;inset-inline-start:0}.folio-outline-header{border-bottom:1px solid var(--doc-border);flex:none;justify-content:space-between;align-items:center;gap:.25rem;min-height:2.25rem;padding-block:.25rem;padding-inline:.75rem .375rem;display:flex}.folio-outline-title{color:var(--doc-text-muted);font-size:.75rem;font-weight:600}.folio-outline-icon-button{width:1.5rem;height:1.5rem;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:0;border-radius:.25rem;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.folio-outline-icon-button:hover,.folio-outline-icon-button[aria-expanded=true]{background:var(--doc-bg-hover);color:var(--doc-text)}.folio-outline-icon-button:focus-visible,.folio-outline-item:focus-visible,.folio-outline-tick:focus-visible{outline:2px solid var(--ring,var(--doc-primary));outline-offset:-2px}.folio-outline-list{flex:1;min-height:0;margin:0;padding:.25rem 0;list-style:none;position:relative;overflow-y:auto}.folio-outline-item{width:100%;color:var(--doc-text-muted);font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;padding-block:.3125rem;padding-inline:.75rem;display:block;position:relative}.folio-outline-item[data-depth="1"]{padding-inline-start:1.5rem}.folio-outline-item[data-depth="2"]{padding-inline-start:2.25rem}.folio-outline-item[data-depth="3"]{padding-inline-start:3rem}.folio-outline-item[data-depth="4"]{padding-inline-start:3.75rem}.folio-outline-item-label{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.folio-outline-item:hover{background:var(--doc-bg-hover);color:var(--doc-text)}.folio-outline-item--active{background:var(--doc-bg-hover);color:var(--doc-text);font-weight:600}.folio-outline-item--active:before{background:var(--primary,var(--doc-primary));content:"";border-radius:2px;width:3px;position:absolute;inset-block:.1875rem;inset-inline-start:0}.folio-outline-ticks{flex:1;width:100%;min-height:0;margin:.375rem 0 0;padding:0;list-style:none;position:relative}.folio-outline-tick-slot{height:12px;position:absolute;inset-inline:0}.folio-outline-tick{cursor:pointer;background:0 0;border:0;align-items:center;width:100%;height:100%;padding:0;padding-inline-start:7px;display:flex;position:relative}.folio-outline-tick[data-depth="1"]{padding-inline-start:10px}.folio-outline-tick[data-depth="2"]{padding-inline-start:13px}.folio-outline-tick[data-depth="3"],.folio-outline-tick[data-depth="4"]{padding-inline-start:16px}.folio-outline-tick-mark{background:var(--doc-text-muted);opacity:.55;border-radius:1px;width:14px;height:2px;display:block}.folio-outline-tick[data-depth="1"] .folio-outline-tick-mark{width:11px}.folio-outline-tick[data-depth="2"] .folio-outline-tick-mark,.folio-outline-tick[data-depth="3"] .folio-outline-tick-mark,.folio-outline-tick[data-depth="4"] .folio-outline-tick-mark{width:8px}.folio-outline-tick:hover .folio-outline-tick-mark,.folio-outline-tick:focus-visible .folio-outline-tick-mark{opacity:1}.folio-outline-tick--active .folio-outline-tick-mark{background:var(--primary,var(--doc-primary));opacity:1;height:3px}.folio-outline-tick-label{border:1px solid var(--doc-border);background:var(--popover,var(--doc-page));max-width:15rem;box-shadow:0 4px 12px var(--doc-shadow-sm);color:var(--popover-foreground,var(--doc-text));text-overflow:ellipsis;white-space:nowrap;pointer-events:none;top:50%;border-radius:.375rem;padding:.25rem .5rem;font-size:.75rem;line-height:1.25;display:none;position:absolute;inset-inline-start:calc(100% + 6px);overflow:hidden;transform:translateY(-50%)}.folio-outline-tick:hover .folio-outline-tick-label,.folio-outline-tick:focus-visible .folio-outline-tick-label{display:block}.folio-panel-scrim{z-index:45;background:#0000003d;position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){.folio-outline--drawer,.docx-comments-sidebar[data-folio-comments-surface=drawer],.folio-panel-scrim{animation:.16s ease-out folio-panel-fade-in}}@media (prefers-reduced-motion:reduce){.layout-page-content [data-folio-outline-flash]{animation:none}}@keyframes folio-panel-fade-in{0%{opacity:0}}.folio-default-menu-positioner{z-index:50}.folio-default-menu-popup{border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);min-width:12rem;color:var(--doc-text,inherit);border-radius:.5rem;padding:.25rem;box-shadow:0 4px 12px #0000001f}.folio-default-menu-item,.folio-default-menu-checkbox-item{color:var(--doc-text,inherit);cursor:pointer;user-select:none;border-radius:.375rem;outline:none;align-items:center;gap:.5rem;padding:.375rem .5rem;font-size:.8125rem;display:flex}.folio-default-menu-checkbox-item{padding-inline-start:.375rem}.folio-default-menu-item[data-highlighted],.folio-default-menu-item:hover,.folio-default-menu-checkbox-item[data-highlighted],.folio-default-menu-checkbox-item:hover{background:var(--doc-primary-light,#eff6ff)}.folio-default-menu-checkbox-indicator{flex-shrink:0;justify-content:center;align-items:center;width:1rem;height:1rem;display:inline-flex}.folio-default-menu-group-label{color:var(--doc-text-muted,#6b7280);padding:.375rem .5rem;font-size:.6875rem;font-weight:500}.folio-default-menu-separator{border-top:1px solid var(--doc-border,#e5e7eb);margin:.25rem 0}:where(.folio-default-select-trigger){border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);height:2rem;color:var(--doc-text,inherit);cursor:pointer;border-radius:.375rem;justify-content:space-between;align-items:center;gap:.375rem;padding:0 .625rem;font-size:.8125rem;display:inline-flex}:where(.folio-default-select-trigger[data-size=sm]){height:1.75rem;padding:0 .5rem;font-size:.75rem}:where(.folio-default-select-trigger[data-size=lg]){height:2.5rem;padding:0 .75rem;font-size:.875rem}:where(.folio-default-select-icon){color:var(--doc-text-muted,#6b7280);flex-shrink:0;display:inline-flex}:where(.folio-default-select-value){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:where(.folio-default-select-positioner){z-index:50}:where(.folio-default-select-popup){border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);min-width:8rem;max-height:18rem;color:var(--doc-text,inherit);border-radius:.5rem;padding:.25rem;overflow-y:auto;box-shadow:0 4px 12px #0000001f}:where(.folio-default-select-item){color:var(--doc-text,inherit);cursor:pointer;user-select:none;border-radius:.375rem;outline:none;align-items:center;gap:.5rem;padding:.375rem .5rem;font-size:.8125rem;display:flex}:where(.folio-default-select-item[data-highlighted]){background:var(--doc-primary-light,#eff6ff)}:where(.folio-default-select-item[data-selected]){font-weight:500}.folio-default-popover-positioner{z-index:50}.folio-default-popover-popup{border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);color:var(--doc-text,inherit);border-radius:.5rem;padding:.5rem;box-shadow:0 4px 12px #0000001f}.folio-default-dialog-backdrop{z-index:50;background:#0006;position:fixed;inset:0}.folio-default-dialog-popup{z-index:51;border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);width:100%;max-width:28rem;max-height:85vh;color:var(--doc-text,inherit);border-radius:.5rem;padding:1.25rem;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 12px 32px #0003}.folio-default-dialog-title{margin:0 0 .75rem;font-size:1rem;font-weight:600}:where(.folio-default-dialog-close){cursor:pointer}:where(.folio-default-input){border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);height:2rem;color:var(--doc-text,inherit);border-radius:.375rem;padding:0 .625rem;font-size:.8125rem}:where(.folio-default-input[data-size=sm]){height:1.75rem;font-size:.75rem}:where(.folio-default-input[data-size=lg]){height:2.5rem;font-size:.875rem}:where(.folio-default-input:focus-visible){outline:2px solid var(--doc-primary,#2563eb);outline-offset:-1px}.folio-default-checkbox{border:1px solid var(--doc-border,#e5e7eb);background:var(--doc-page,#fff);width:1rem;height:1rem;color:var(--doc-primary-foreground,#fff);cursor:pointer;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.folio-default-checkbox[data-checked]{background:var(--doc-primary,#2563eb);border-color:var(--doc-primary,#2563eb)}.folio-default-checkbox-indicator{justify-content:center;align-items:center;display:inline-flex}.folio-editor[data-folio-format-painter=armed] [contenteditable=true]{cursor:copy}.folio-ai-host{--folio-ai-mention:#2563eb;--folio-ai-mention-soft:oklch(54.615% .215208 262.881/.12)}.dark .folio-ai-host,.folio-ai-host.dark{--folio-ai-mention:#60a5fa;--folio-ai-mention-soft:oklch(71.374% .143381 254.624/.18)}.folio-ai-suggestion{text-underline-offset:3px;cursor:pointer;background-color:#0000;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:1px;transition:background-color .15s,text-decoration-color .15s}.folio-ai-suggestion--typo{--folio-ai-underline-color:color-mix(in oklch, var(--doc-text-muted) 65%, transparent);text-decoration-color:var(--folio-ai-underline-color)}.folio-ai-suggestion--style{--folio-ai-underline-color:color-mix(in oklch, var(--doc-text) 35%, transparent);text-decoration-color:var(--folio-ai-underline-color)}.folio-ai-suggestion--substantive{--folio-ai-underline-color:color-mix(in oklch, var(--doc-error,currentColor) 60%, transparent);text-decoration-color:var(--folio-ai-underline-color);text-decoration-thickness:1.5px}.folio-ai-suggestion:hover{background-color:color-mix(in oklch, var(--doc-bg-hover) 60%, transparent)}.folio-ai-suggestion--focused{background-color:color-mix(in oklch, var(--doc-bg-hover) 90%, transparent)}.folio-ai-suggestion--focused-original{--folio-ai-strike-color:color-mix(in oklch, var(--doc-text-muted) 75%, transparent);text-decoration-line:line-through;text-decoration-style:solid;text-decoration-thickness:1px;text-decoration-color:var(--folio-ai-strike-color);opacity:.55}.folio-ai-suggestion--focused-replacement{--folio-ai-replacement-bg:color-mix(in oklch, var(--doc-success,var(--doc-text)) 16%, transparent);background-color:var(--folio-ai-replacement-bg);box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--doc-success,var(--doc-text)) 30%, transparent);white-space:pre-wrap;border-radius:4px;margin-inline-start:3px;padding:0 3px}.folio-ai-bar{z-index:40;width:min(560px,100% - 32px);color:var(--doc-text);background-color:color-mix(in oklch, var(--doc-page) 78%, transparent);-webkit-backdrop-filter:blur(20px)saturate(160%);border:1px solid color-mix(in oklch, var(--doc-border) 70%, transparent);user-select:none;border-radius:9999px;align-items:center;gap:4px;padding:4px 4px 4px 6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;transition:box-shadow .2s,border-color .2s;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #00000005,0 1px 2px #0000000f,0 12px 32px #0000001a,0 24px 56px #0000000f,inset 0 1px #fff9}.folio-ai-bar:before{content:"";z-index:-1;background:radial-gradient(ellipse at center, color-mix(in oklch, var(--doc-page) 45%, transparent) 0%, transparent 70%);pointer-events:none;border-radius:inherit;position:absolute;inset:-16px}.dark .folio-ai-bar,.folio-ai-bar.dark{background-color:color-mix(in oklch, var(--doc-page) 70%, transparent);box-shadow:0 0 0 1px #ffffff0a,0 1px 2px #0006,0 12px 32px #00000073,0 24px 56px #0000004d,inset 0 1px #ffffff14}.folio-ai-bar:focus-within{border-color:color-mix(in oklch, var(--doc-text) 35%, var(--doc-border));box-shadow:0 0 0 1px #00000008,0 1px 2px #0000000f,0 16px 40px #0000001f,0 32px 64px #00000014,inset 0 1px #fff9}.folio-ai-bar__form{flex:1;align-items:center;gap:6px;min-width:0;height:32px;padding:0 6px 0 4px;display:flex}.folio-ai-bar__leading{width:18px;height:18px;color:var(--doc-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.folio-ai-bar__input{min-width:0;height:100%;color:var(--doc-text);font:inherit;caret-color:var(--doc-text);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:13px}.folio-ai-bar__input::placeholder{color:var(--doc-text-muted)}.folio-ai-bar__input:disabled{color:var(--doc-text-muted);cursor:progress}.folio-ai-bar__input--slash{color:var(--folio-ai-mention);font-weight:500}.folio-ai-bar__input--slash::placeholder{color:color-mix(in oklch, var(--folio-ai-mention) 60%, transparent)}.folio-editor:has(.folio-ai-bar__input:focus) [contenteditable=true]{caret-color:#0000}.folio-ai-bar__paste-chip{border:1px solid color-mix(in oklch, var(--folio-ai-mention) 35%, transparent);background-color:var(--folio-ai-mention-soft);height:22px;color:var(--folio-ai-mention);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;flex-shrink:0;align-items:center;gap:4px;max-width:220px;padding:2px 6px 2px 8px;font-size:11.5px;font-weight:500;transition:background-color .12s,border-color .12s;display:inline-flex;overflow:hidden}.folio-ai-bar__paste-chip:hover{background-color:color-mix(in oklch, var(--folio-ai-mention) 18%, transparent);border-color:color-mix(in oklch, var(--folio-ai-mention) 50%, transparent)}.folio-ai-bar__paste-chip>svg{opacity:.7}.folio-ai-bar__count{background-color:var(--doc-bg-muted);min-width:18px;height:18px;color:var(--doc-text);font-variant-numeric:tabular-nums;border-radius:9999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.folio-ai-bar__divider{background-color:var(--doc-border);flex-shrink:0;width:1px;height:18px}.folio-ai-bar__action{min-width:28px;height:28px;color:var(--doc-text);font:inherit;cursor:pointer;background-color:#0000;border:none;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;transition:background-color .12s;display:inline-flex}.folio-ai-bar__action:hover{background-color:var(--doc-bg-muted)}.folio-ai-bar__action:disabled{opacity:.5;cursor:default}.folio-ai-bar__icon-button{width:28px;height:28px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .12s,color .12s;display:inline-flex}.folio-ai-bar__icon-button:hover{background-color:var(--doc-bg-muted);color:var(--doc-text)}.folio-ai-bar__icon-button:disabled{opacity:.5;cursor:default}.folio-ai-bar__icon-button--primary{background-color:var(--doc-text);color:var(--doc-page)}.folio-ai-bar__icon-button--primary:hover{background-color:color-mix(in oklch, var(--doc-text) 88%, transparent);color:var(--doc-page)}.folio-ai-bar__icon-button--primary:disabled{background-color:var(--doc-bg-muted);color:var(--doc-text-muted)}.folio-ai-bar__spinner{border:1.5px solid var(--doc-border);border-top-color:var(--doc-text);border-radius:9999px;width:14px;height:14px;animation:.72s linear infinite folio-ai-spin}@keyframes folio-ai-spin{to{transform:rotate(360deg)}}.folio-ai-bar__presets{background-color:var(--doc-page);border:1px solid var(--doc-border);border-radius:12px;flex-direction:column;gap:1px;width:min(320px,100%);padding:4px;animation:.16s folio-ai-panel-in;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 1px 2px #0000000a,0 12px 36px #0000001a}.folio-ai-bar__presets-header{text-transform:uppercase;letter-spacing:.04em;color:var(--doc-text-muted);justify-content:space-between;align-items:baseline;gap:8px;padding:6px 10px 4px;font-size:10px;font-weight:600;display:flex}.folio-ai-bar__presets-hint{text-transform:none;letter-spacing:0;color:var(--doc-text-muted);opacity:.85;font-size:10.5px;font-weight:400}.folio-ai-bar__presets-empty{color:var(--doc-text-muted);text-align:center;padding:12px;font-size:12px}.folio-ai-bar__preset{text-align:left;cursor:pointer;font:inherit;color:var(--doc-text);background:0 0;border:none;border-radius:8px;grid-template-rows:auto auto;grid-template-columns:1fr auto;gap:0 8px;padding:8px 10px;transition:background-color .12s;display:grid;position:relative}.folio-ai-bar__preset:hover,.folio-ai-bar__preset:focus-visible,.folio-ai-bar__preset[data-highlighted=true]{background-color:var(--doc-bg-muted);outline:none}.folio-ai-bar__preset-label{grid-area:1/1;font-size:13px;font-weight:500}.folio-ai-bar__preset-description{color:var(--doc-text-muted);text-wrap:pretty;grid-area:2/1/auto/span 2;font-size:11px}.folio-ai-bar__preset-shortcut{font-variant-numeric:tabular-nums;color:var(--folio-ai-mention);background-color:var(--folio-ai-mention-soft);border-radius:4px;grid-area:1/2;align-self:center;padding:1px 6px;font-size:10.5px;font-weight:500}.folio-ai-panel{z-index:41;background-color:var(--doc-page);border:1px solid var(--doc-border);width:min(420px,100% - 32px);max-height:min(60dvh,560px);color:var(--doc-text);border-radius:14px;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;animation:.18s folio-ai-panel-in;display:flex;position:absolute;bottom:68px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 1px 2px #0000000a,0 12px 40px #00000014}@keyframes folio-ai-panel-in{0%{opacity:0;transform:translate(-50%)translateY(4px)scale(.985)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.folio-ai-panel__header{border-bottom:1px solid var(--doc-border);align-items:center;gap:8px;padding:10px 10px 10px 14px;display:flex}.folio-ai-panel__title{flex:1;align-items:center;gap:8px;font-weight:600;display:inline-flex}.folio-ai-panel__count{background-color:var(--doc-bg-muted);min-width:18px;height:18px;color:var(--doc-text-muted);font-variant-numeric:tabular-nums;border-radius:9999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:500;display:inline-flex}.folio-ai-panel__group-tabs{background-color:var(--doc-bg-muted);border-radius:9999px;align-items:center;gap:2px;padding:2px;display:inline-flex}.folio-ai-panel__group-tab{color:var(--doc-text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:9999px;padding:4px 10px;font-size:12px;transition:background-color .12s,color .12s}.folio-ai-panel__group-tab:hover{color:var(--doc-text)}.folio-ai-panel__group-tab[aria-selected=true]{background-color:var(--doc-page);color:var(--doc-text);box-shadow:0 1px 2px #0000000d}.folio-ai-panel__close{width:28px;height:28px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background-color .12s,color .12s;display:inline-flex}.folio-ai-panel__close:hover{background-color:var(--doc-bg-muted);color:var(--doc-text)}.folio-ai-panel__toolbar{border-bottom:1px solid var(--doc-border);color:var(--doc-text-muted);align-items:center;gap:8px;padding:8px 14px;font-size:12px;display:flex}.folio-ai-panel__toolbar-spacer{flex:1}.folio-ai-panel__mode-toggle{border:1px solid var(--doc-border);color:var(--doc-text-muted);font:inherit;cursor:pointer;background:0 0;border-radius:9999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;transition:background-color .12s,color .12s;display:inline-flex}.folio-ai-panel__mode-toggle:hover{color:var(--doc-text);background-color:var(--doc-bg-muted)}.folio-ai-panel__mode-toggle[data-active=true]{border-color:var(--doc-text);color:var(--doc-text)}.folio-ai-panel__list{flex:1;padding:4px 0 8px;overflow-y:auto}.folio-ai-panel__group{padding:4px 0}.folio-ai-panel__group-header{color:var(--doc-text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;padding:8px 14px 4px;font-size:11px;font-weight:600;display:flex}.folio-ai-panel__group-name{flex:1}.folio-ai-panel__group-actions{text-transform:none;letter-spacing:0;align-items:center;gap:2px;display:inline-flex}.folio-ai-panel__group-action{color:var(--doc-text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:500;transition:background-color .12s,color .12s}.folio-ai-panel__group-action:hover{background-color:var(--doc-bg-muted);color:var(--doc-text)}.folio-ai-panel__item{border-top:1px solid color-mix(in oklch, var(--doc-border) 60%, transparent);cursor:pointer;flex-direction:column;gap:6px;padding:10px 14px;transition:background-color .12s;display:flex}.folio-ai-panel__item:first-child{border-top:none}.folio-ai-panel__item:hover{background-color:color-mix(in oklch, var(--doc-bg-muted) 50%, transparent)}.folio-ai-panel__item[data-focused=true]{background-color:color-mix(in oklch, var(--doc-bg-muted) 80%, transparent)}.folio-ai-panel__item-meta{text-align:left;cursor:pointer;width:100%;color:var(--doc-text-muted);font:inherit;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:11px;display:flex}.folio-ai-panel__severity-dot{border-radius:9999px;flex-shrink:0;width:6px;height:6px}.folio-ai-panel__severity-dot--typo{background-color:var(--doc-text-muted)}.folio-ai-panel__severity-dot--style{background-color:color-mix(in oklch, var(--doc-text) 60%, transparent)}.folio-ai-panel__severity-dot--substantive{background-color:var(--doc-error,currentColor)}.folio-ai-panel__item-topic{color:var(--doc-text);font-weight:500}.folio-ai-panel__diff{background-color:var(--doc-bg-muted);text-wrap:pretty;word-break:break-word;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;font-size:12.5px;line-height:1.45;display:flex}.folio-ai-panel__diff-row{gap:6px;display:flex}.folio-ai-panel__diff-marker{color:var(--doc-text-muted);font-variant-numeric:tabular-nums;text-align:center;flex-shrink:0;width:12px}.folio-ai-panel__diff--original .folio-ai-panel__diff-text{color:var(--doc-text-muted);text-decoration:line-through;text-decoration-color:color-mix(in oklch, var(--doc-text-muted) 70%, transparent)}.folio-ai-panel__diff--suggested .folio-ai-panel__diff-text{color:var(--doc-text)}.folio-ai-panel__rationale{color:var(--doc-text-muted);text-wrap:pretty;font-size:12px;line-height:1.45}.folio-ai-panel__item-actions{align-items:center;gap:6px;margin-top:2px;display:flex}.folio-ai-panel__item-button{border:1px solid var(--doc-border);color:var(--doc-text);font:inherit;cursor:pointer;background-color:#0000;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;transition:background-color .12s,border-color .12s;display:inline-flex}.folio-ai-panel__item-button:hover{background-color:var(--doc-bg-muted)}.folio-ai-panel__item-button--accept{background-color:var(--doc-text);color:var(--doc-page);border-color:var(--doc-text)}.folio-ai-panel__item-button--accept:hover{background-color:color-mix(in oklch, var(--doc-text) 88%, transparent)}.folio-ai-panel__item-button--ghost{color:var(--doc-text-muted);border-color:#0000}.folio-ai-panel__item-button--ghost:hover{color:var(--doc-text);background-color:var(--doc-bg-muted)}.folio-ai-panel__stale-pill{background-color:color-mix(in oklch, var(--doc-error,currentColor) 12%, transparent);color:var(--doc-error,var(--doc-text));text-transform:uppercase;letter-spacing:.04em;border-radius:9999px;align-items:center;gap:4px;padding:1px 6px;font-size:10px;font-weight:500;display:inline-flex}.folio-ai-panel__empty{text-align:center;color:var(--doc-text-muted);text-wrap:pretty;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:36px 24px;font-size:12.5px;display:flex}.folio-ai-panel__empty-title{color:var(--doc-text);font-weight:500}.folio-ai-host[data-compact=true] .folio-ai-bar{width:calc(100% - 24px);padding:3px 3px 3px 4px;font-size:12px;bottom:12px}.folio-ai-host[data-compact=true] .folio-ai-bar__form{height:30px}.folio-ai-host[data-compact=true] .folio-ai-bar__input{font-size:12px}.folio-ai-host[data-compact=true] .folio-ai-panel{width:calc(100% - 24px);bottom:56px}.folio-ai-host[data-compact=true] .folio-ai-panel__group-tab{padding:4px 8px}@media (prefers-reduced-motion:reduce){.folio-ai-bar,.folio-ai-panel,.folio-ai-suggestion{transition:none;animation:none}.folio-ai-bar__spinner{border-top-color:var(--doc-text-muted);animation:none}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-primary:var(--primary);--color-border:var(--border)}}@layer base{:where(.folio-root) *,:where(.folio-root) :before,:where(.folio-root) :after{box-sizing:border-box;border:0 solid}:where(.folio-root) button,:where(.folio-root) input,:where(.folio-root) select,:where(.folio-root) optgroup,:where(.folio-root) textarea{font:inherit;color:inherit;background-color:#0000;border-radius:0}:where(.folio-root) button,:where(.folio-root) input:where([type=button],[type=reset],[type=submit]){appearance:button}}@layer components;@layer utilities{.folio-root .pointer-events-auto{pointer-events:auto}.folio-root .pointer-events-none{pointer-events:none}.folio-root .collapse{visibility:collapse}.folio-root .invisible{visibility:hidden}.folio-root .visible{visibility:visible}.folio-root .sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.folio-root .absolute{position:absolute}.folio-root .fixed{position:fixed}.folio-root .relative{position:relative}.folio-root .static{position:static}.folio-root .sticky{position:sticky}.folio-root .inset-0{inset:0}.folio-root .start-1\/2{inset-inline-start:50%}.folio-root .end-0{inset-inline-end:calc(var(--spacing) * 0)}.folio-root .end-4{inset-inline-end:calc(var(--spacing) * 4)}.folio-root .top-1\/2{top:50%}.folio-root .top-4{top:calc(var(--spacing) * 4)}.folio-root .bottom-0{bottom:0}.folio-root .z-20{z-index:20}.folio-root .z-50{z-index:50}.folio-root .z-\[10000\]{z-index:10000}.folio-root .z-\[10001\]{z-index:10001}.folio-root .z-\[10002\]{z-index:10002}.folio-root .z-\[2147483647\]{z-index:2147483647}.folio-root .col-span-2{grid-column:span 2/span 2}.folio-root .col-span-full{grid-column:1/-1}.folio-root .container{width:100%}@media (width>=40rem){.folio-root .container{max-width:40rem}}@media (width>=48rem){.folio-root .container{max-width:48rem}}@media (width>=64rem){.folio-root .container{max-width:64rem}}@media (width>=80rem){.folio-root .container{max-width:80rem}}@media (width>=96rem){.folio-root .container{max-width:96rem}}.folio-root .m-5{margin:calc(var(--spacing) * 5)}.folio-root .mx-1{margin-inline:var(--spacing)}.folio-root .mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.folio-root .-ms-0\.5{margin-inline-start:calc(var(--spacing) * -.5)}.folio-root .ms-20{margin-inline-start:calc(var(--spacing) * 20)}.folio-root .ms-auto{margin-inline-start:auto}.folio-root .me-4{margin-inline-end:calc(var(--spacing) * 4)}.folio-root .me-auto{margin-inline-end:auto}.folio-root .mt-0\.5{margin-top:calc(var(--spacing) * .5)}.folio-root .mt-1{margin-top:var(--spacing)}.folio-root .mt-2{margin-top:calc(var(--spacing) * 2)}.folio-root .mt-3{margin-top:calc(var(--spacing) * 3)}.folio-root .mt-4{margin-top:calc(var(--spacing) * 4)}.folio-root .mt-\[-2px\]{margin-top:-2px}.folio-root .mr-1{margin-right:var(--spacing)}.folio-root .mb-1{margin-bottom:var(--spacing)}.folio-root .mb-2{margin-bottom:calc(var(--spacing) * 2)}.folio-root .mb-4{margin-bottom:calc(var(--spacing) * 4)}.folio-root .\!inline{display:inline!important}.folio-root .block{display:block}.folio-root .contents{display:contents}.folio-root .flex{display:flex}.folio-root .grid{display:grid}.folio-root .hidden{display:none}.folio-root .inline{display:inline}.folio-root .inline-flex{display:inline-flex}.folio-root .table{display:table}.folio-root .table-cell{display:table-cell}.folio-root .size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.folio-root .size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.folio-root .size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.folio-root .size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.folio-root .size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.folio-root .size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.folio-root .size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.folio-root .size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.folio-root .h-1{height:var(--spacing)}.folio-root .h-5{height:calc(var(--spacing) * 5)}.folio-root .h-6{height:calc(var(--spacing) * 6)}.folio-root .h-7{height:calc(var(--spacing) * 7)}.folio-root .h-8{height:calc(var(--spacing) * 8)}.folio-root .h-9{height:calc(var(--spacing) * 9)}.folio-root .h-10{height:calc(var(--spacing) * 10)}.folio-root .h-12{height:calc(var(--spacing) * 12)}.folio-root .h-\[34px\]{height:34px}.folio-root .h-full{height:100%}.folio-root .max-h-60{max-height:calc(var(--spacing) * 60)}.folio-root .max-h-\[200px\]{max-height:200px}.folio-root .min-h-0{min-height:0}.folio-root .min-h-\[60px\]{min-height:60px}.folio-root .min-h-\[200px\]{min-height:200px}.folio-root .w-4{width:calc(var(--spacing) * 4)}.folio-root .w-5{width:calc(var(--spacing) * 5)}.folio-root .w-7{width:calc(var(--spacing) * 7)}.folio-root .w-8{width:calc(var(--spacing) * 8)}.folio-root .w-9{width:calc(var(--spacing) * 9)}.folio-root .w-20{width:calc(var(--spacing) * 20)}.folio-root .w-80{width:calc(var(--spacing) * 80)}.folio-root .w-\[45px\]{width:45px}.folio-root .w-\[60px\]{width:60px}.folio-root .w-\[75px\]{width:75px}.folio-root .w-\[132px\]{width:132px}.folio-root .w-\[min\(440px\,calc\(100vw-var\(--folio-find-replace-left\,5\.5rem\)-2rem\)\)\]{width:min(440px, calc(100vw - var(--folio-find-replace-left,5.5rem) - 2rem))}.folio-root .w-\[min\(480px\,calc\(100vw-48px\)\)\]{width:min(480px,100vw - 48px)}.folio-root .w-full{width:100%}.folio-root .w-max{width:max-content}.folio-root .w-px{width:1px}.folio-root .max-w-24{max-width:calc(var(--spacing) * 24)}.folio-root .max-w-\[80px\]{max-width:80px}.folio-root .max-w-\[90px\]{max-width:90px}.folio-root .max-w-\[400px\]{max-width:400px}.folio-root .max-w-\[440px\]{max-width:440px}.folio-root .max-w-\[480px\]{max-width:480px}.folio-root .max-w-\[500px\]{max-width:500px}.folio-root .max-w-\[520px\]{max-width:520px}.folio-root .max-w-\[600px\]{max-width:600px}.folio-root .max-w-\[min\(520px\,calc\(100vw-24px\)\)\]{max-width:min(520px,100vw - 24px)}.folio-root .max-w-full{max-width:100%}.folio-root .min-w-0{min-width:0}.folio-root .min-w-4{min-width:calc(var(--spacing) * 4)}.folio-root .min-w-8{min-width:calc(var(--spacing) * 8)}.folio-root .min-w-52{min-width:calc(var(--spacing) * 52)}.folio-root .min-w-\[10rem\]{min-width:10rem}.folio-root .min-w-\[140px\]{min-width:140px}.folio-root .min-w-\[360px\]{min-width:360px}.folio-root .min-w-\[380px\]{min-width:380px}.folio-root .min-w-\[400px\]{min-width:400px}.folio-root .flex-1{flex:1}.folio-root .flex-shrink-0{flex-shrink:0}.folio-root .shrink{flex-shrink:1}.folio-root .shrink-0{flex-shrink:0}.folio-root .-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.folio-root .-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.folio-root .transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.folio-root .animate-spin{animation:var(--animate-spin)}.folio-root .cursor-not-allowed{cursor:not-allowed}.folio-root .cursor-pointer{cursor:pointer}.folio-root .resize{resize:both}.folio-root .resize-y{resize:vertical}.folio-root .\[scrollbar-width\:none\]{scrollbar-width:none}.folio-root .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.folio-root .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.folio-root .grid-cols-\[4\.5rem_minmax\(0\,1fr\)_auto\]{grid-template-columns:4.5rem minmax(0,1fr) auto}.folio-root .grid-cols-\[repeat\(auto-fill\,minmax\(2\.25rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(2.25rem,1fr))}.folio-root .flex-col{flex-direction:column}.folio-root .flex-wrap{flex-wrap:wrap}.folio-root .items-center{align-items:center}.folio-root .items-start{align-items:flex-start}.folio-root .justify-between{justify-content:space-between}.folio-root .justify-center{justify-content:center}.folio-root .justify-end{justify-content:flex-end}.folio-root .justify-start{justify-content:flex-start}.folio-root .gap-0{gap:0}.folio-root .gap-0\.5{gap:calc(var(--spacing) * .5)}.folio-root .gap-1{gap:var(--spacing)}.folio-root .gap-1\.5{gap:calc(var(--spacing) * 1.5)}.folio-root .gap-2{gap:calc(var(--spacing) * 2)}.folio-root .gap-3{gap:calc(var(--spacing) * 3)}.folio-root .gap-3\.5{gap:calc(var(--spacing) * 3.5)}.folio-root .gap-4{gap:calc(var(--spacing) * 4)}.folio-root .gap-5{gap:calc(var(--spacing) * 5)}:where(.folio-root .space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.folio-root .gap-x-4{column-gap:calc(var(--spacing) * 4)}.folio-root .gap-y-2{row-gap:calc(var(--spacing) * 2)}.folio-root .truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.folio-root .overflow-auto{overflow:auto}.folio-root .overflow-hidden{overflow:hidden}.folio-root .overflow-x-auto{overflow-x:auto}.folio-root .overflow-y-auto{overflow-y:auto}.folio-root .overflow-y-hidden{overflow-y:hidden}.folio-root .overscroll-x-contain{overscroll-behavior-x:contain}.folio-root .rounded{border-radius:.25rem}.folio-root .rounded-full{border-radius:3.40282e38px}.folio-root .rounded-lg{border-radius:var(--radius-lg)}.folio-root .rounded-md{border-radius:var(--radius-md)}.folio-root .rounded-sm{border-radius:var(--radius-sm)}.folio-root .rounded-s-none{border-start-start-radius:0;border-end-start-radius:0}.folio-root .rounded-e-none{border-start-end-radius:0;border-end-end-radius:0}.folio-root .border{border-style:var(--tw-border-style);border-width:1px}.folio-root .border-\[3px\]{border-style:var(--tw-border-style);border-width:3px}.folio-root .border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.folio-root .border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.folio-root .border-\[var\(--doc-border\)\]{border-color:var(--doc-border)}.folio-root .border-\[var\(--doc-primary\)\]{border-color:var(--doc-primary)}.folio-root .border-border{border-color:var(--border)}.folio-root .border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.folio-root .border-destructive\/30{border-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.folio-root .border-input{border-color:var(--input)}.folio-root .border-primary{border-color:var(--primary)}.folio-root .border-transparent{border-color:#0000}.folio-root .border-t-\[var\(--doc-primary\)\]{border-top-color:var(--doc-primary)}.folio-root .bg-\[var\(--doc-border\)\]{background-color:var(--doc-border)}.folio-root .bg-\[var\(--doc-page\)\]{background-color:var(--doc-page)}.folio-root .bg-\[var\(--doc-primary\)\]{background-color:var(--doc-primary)}.folio-root .bg-\[var\(--doc-primary-light\)\]{background-color:var(--doc-primary-light)}.folio-root .bg-accent{background-color:var(--accent)}.folio-root .bg-background{background-color:var(--background)}.folio-root .bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.folio-root .bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.folio-root .bg-border{background-color:var(--border)}.folio-root .bg-card{background-color:var(--card)}.folio-root .bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.folio-root .bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.folio-root .bg-muted,.folio-root .bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.folio-root .bg-muted\/30{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.folio-root .bg-popover{background-color:var(--popover)}.folio-root .bg-primary,.folio-root .bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.folio-root .bg-primary\/20{background-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.folio-root .bg-transparent{background-color:#0000}.folio-root .p-0{padding:0}.folio-root .p-1{padding:var(--spacing)}.folio-root .p-2{padding:calc(var(--spacing) * 2)}.folio-root .p-3{padding:calc(var(--spacing) * 3)}.folio-root .p-5{padding:calc(var(--spacing) * 5)}.folio-root .p-6{padding:calc(var(--spacing) * 6)}.folio-root .p-10{padding:calc(var(--spacing) * 10)}.folio-root .px-1{padding-inline:var(--spacing)}.folio-root .px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.folio-root .px-2{padding-inline:calc(var(--spacing) * 2)}.folio-root .px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.folio-root .px-3{padding-inline:calc(var(--spacing) * 3)}.folio-root .px-4{padding-inline:calc(var(--spacing) * 4)}.folio-root .px-5{padding-inline:calc(var(--spacing) * 5)}.folio-root .py-0\.5{padding-block:calc(var(--spacing) * .5)}.folio-root .py-1{padding-block:var(--spacing)}.folio-root .py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.folio-root .py-2{padding-block:calc(var(--spacing) * 2)}.folio-root .py-3{padding-block:calc(var(--spacing) * 3)}.folio-root .py-4{padding-block:calc(var(--spacing) * 4)}.folio-root .pt-6{padding-top:calc(var(--spacing) * 6)}.folio-root .text-center{text-align:center}.folio-root .text-start{text-align:start}.folio-root .font-\[inherit\]{font-family:inherit}.folio-root .font-mono{font-family:var(--font-mono)}.folio-root .text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.folio-root .text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.folio-root .text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.folio-root .text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.folio-root .text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.folio-root .text-\[10px\]{font-size:10px}.folio-root .text-\[11px\]{font-size:11px}.folio-root .text-\[13px\]{font-size:13px}.folio-root .leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.folio-root .leading-none{--tw-leading:1;line-height:1}.folio-root .font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.folio-root .font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.folio-root .tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.folio-root .break-words{overflow-wrap:break-word}.folio-root .whitespace-nowrap{white-space:nowrap}.folio-root .whitespace-pre-wrap{white-space:pre-wrap}.folio-root .text-\[var\(--doc-error\)\]{color:var(--doc-error)}.folio-root .text-\[var\(--doc-text\)\]{color:var(--doc-text)}.folio-root .text-\[var\(--doc-text-muted\)\]{color:var(--doc-text-muted)}.folio-root .text-\[var\(--doc-text-subtle\)\]{color:var(--doc-text-subtle)}.folio-root .text-\[var\(--primary-foreground\,var\(--doc-page\)\)\]{color:var(--primary-foreground,var(--doc-page))}.folio-root .text-accent-foreground{color:var(--accent-foreground)}.folio-root .text-card-foreground{color:var(--card-foreground)}.folio-root .text-destructive{color:var(--destructive)}.folio-root .text-foreground{color:var(--foreground)}.folio-root .text-muted-foreground{color:var(--muted-foreground)}.folio-root .text-popover-foreground{color:var(--popover-foreground)}.folio-root .text-primary{color:var(--primary)}.folio-root .text-primary-foreground{color:var(--primary-foreground)}.folio-root .uppercase{text-transform:uppercase}.folio-root .italic{font-style:italic}.folio-root .tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.folio-root .underline{text-decoration-line:underline}.folio-root .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.folio-root .opacity-60{opacity:.6}.folio-root .opacity-80{opacity:.8}.folio-root .opacity-\[0\.16\]{opacity:.16}.folio-root .shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .shadow-\[0_0_0_1px_var\(--doc-primary\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--doc-primary));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.folio-root .outline{outline-style:var(--tw-outline-style);outline-width:1px}.folio-root .blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.folio-root .filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.folio-root .transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.folio-root .transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.folio-root .duration-100{--tw-duration:.1s;transition-duration:.1s}.folio-root .outline-none{--tw-outline-style:none;outline-style:none}.folio-root .select-all{-webkit-user-select:all;user-select:all}.folio-root .block-2{block-size:calc(var(--spacing) * 2)}@media (hover:hover){.folio-root .hover\:border-\[var\(--doc-border\)\]:hover{border-color:var(--doc-border)}.folio-root .hover\:bg-\[var\(--doc-bg-hover\)\]:hover{background-color:var(--doc-bg-hover)}.folio-root .hover\:bg-\[var\(--doc-primary-light\)\]:hover{background-color:var(--doc-primary-light)}.folio-root .hover\:bg-muted:hover{background-color:var(--muted)}.folio-root .hover\:text-\[var\(--doc-text\)\]:hover{color:var(--doc-text)}.folio-root .hover\:underline:hover{text-decoration-line:underline}.folio-root .hover\:opacity-100:hover{opacity:1}}.folio-root .focus\:border-\[var\(--doc-primary\)\]:focus{border-color:var(--doc-primary)}.folio-root .focus\:border-primary:focus{border-color:var(--primary)}.folio-root .disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.folio-root .disabled\:border-transparent:disabled{border-color:#0000}.folio-root .disabled\:text-\[var\(--doc-text-subtle\)\]:disabled{color:var(--doc-text-subtle)}.folio-root .disabled\:opacity-40:disabled{opacity:.4}.folio-root .disabled\:opacity-50:disabled{opacity:.5}.folio-root .disabled\:opacity-\[0\.16\]:disabled{opacity:.16}.folio-root .disabled\:opacity-\[0\.35\]:disabled{opacity:.35}@media (hover:hover){.folio-root .disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}.folio-root .disabled\:hover\:text-\[var\(--doc-text-subtle\)\]:disabled:hover{color:var(--doc-text-subtle)}}.folio-root .data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.folio-root .data-\[pressed\]\:bg-\[var\(--doc-primary-light\)\][data-pressed]{background-color:var(--doc-primary-light)}@media (width>=40rem){.folio-root .sm\:mx-2{margin-inline:calc(var(--spacing) * 2)}.folio-root .sm\:px-4{padding-inline:calc(var(--spacing) * 4)}}.folio-root .\[\&_svg\]\:text-destructive svg{color:var(--destructive)}.folio-root .\[\&_svg\]\:text-muted-foreground svg{color:var(--muted-foreground)}.folio-root .\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}}:where(.folio-root){--background:#fff;--foreground:#262626;--card:#fff;--card-foreground:#262626;--popover:#fff;--popover-foreground:#262626;--primary:#262626;--primary-foreground:#fafafa;--secondary:#0000000a;--secondary-foreground:#262626;--muted:#0000000a;--muted-foreground:#525252;--accent:#0000000a;--accent-foreground:#262626;--destructive:#ef4444;--destructive-foreground:#b91c1c;--info:#3b82f6;--info-foreground:#1d4ed8;--success:#10b981;--success-foreground:#047857;--warning:#f59e0b;--warning-foreground:#b45309;--highlight:#fde04780;--highlight-foreground:#262626;--border:#0000001a;--input:#0000001f;--ring:#a3a3a3}:where(.folio-root.dark,.dark .folio-root){--background:#0a0a0a;--foreground:#f5f5f5;--card:#171717;--card-foreground:#f5f5f5;--popover:#171717;--popover-foreground:#f5f5f5;--primary:#f5f5f5;--primary-foreground:#262626;--secondary:#ffffff0a;--secondary-foreground:#f5f5f5;--muted:#ffffff0a;--muted-foreground:#a3a3a3;--accent:#ffffff0a;--accent-foreground:#f5f5f5;--destructive:#f87171;--destructive-foreground:#f87171;--info:#3b82f6;--info-foreground:#60a5fa;--success:#10b981;--success-foreground:#34d399;--warning:#f59e0b;--warning-foreground:#fbbf24;--highlight:#eab30833;--highlight-foreground:#f5f5f5;--border:#ffffff14;--input:#ffffff1a;--ring:#737373}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stll/folio-react",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.2",
|
|
4
4
|
"description": "React editor for folio: a Word-document (.docx) editor for the browser, built on @stll/folio-core and ProseMirror.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"document-editor",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"test": "bun test src"
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@base-ui/react": "1.
|
|
69
|
+
"@base-ui/react": "1.8.0",
|
|
70
70
|
"@fontsource/arimo": "^5.2.8",
|
|
71
71
|
"@fontsource/caladea": "^5.2.8",
|
|
72
72
|
"@fontsource/carlito": "^5.2.8",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"@fontsource/noto-sans-arabic": "^5.2.7",
|
|
76
76
|
"@fontsource/source-sans-3": "^5.2.9",
|
|
77
77
|
"@fontsource/tinos": "^5.2.7",
|
|
78
|
-
"@stll/folio-core": "^0.
|
|
78
|
+
"@stll/folio-core": "^0.54.2",
|
|
79
79
|
"better-result": "3.0.1",
|
|
80
80
|
"lucide-react": "1.24.0",
|
|
81
81
|
"prosemirror-history": "^1.5.0",
|