@stll/folio-react 0.0.1-placeholder.0 → 0.1.0
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.
- package/LICENSE +202 -0
- package/NOTICE.md +29 -0
- package/README.md +64 -0
- package/dist/CommentsSidebar-BsYOInaX.js +823 -0
- package/dist/FindReplaceDialog-CG1VKA_g.js +358 -0
- package/dist/FootnotePropertiesDialog-MuW4D3gt.js +265 -0
- package/dist/ImagePositionDialog-BQnOnDf4.js +393 -0
- package/dist/ImagePropertiesDialog-Dn4N7qZv.js +196 -0
- package/dist/PageSetupDialog-CxJUEkoC.js +310 -0
- package/dist/TablePropertiesDialog-mQMnGfHu.js +157 -0
- package/dist/TextContextMenu-DzTbp2sn.js +313 -0
- package/dist/contained-handler-4uiqUVRn.js +45 -0
- package/dist/editor.css +1 -0
- package/dist/folio-ui-o_rftArH.js +483 -0
- package/dist/index.d.ts +1055 -0
- package/dist/index.js +12289 -0
- package/dist/messages.d.ts +13 -0
- package/dist/messages.js +2167 -0
- package/dist/useFindReplace-MZ8wi31A.js +354 -0
- package/package.json +83 -2
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
import { ArrowDownToLine, ArrowLeftToLine, ArrowRightToLine, ArrowUpToLine, ClipboardPaste, Copy, Grid3x3, MessageSquarePlus, Scissors, SquareDashed, TextSelect, Trash2 } from "lucide-react";
|
|
3
|
+
import { createPortal } from "react-dom";
|
|
4
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/TextContextMenu.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Text Context Menu Component
|
|
8
|
+
*
|
|
9
|
+
* Right-click context menu for text editing operations.
|
|
10
|
+
* Shows Cut, Copy, Paste, and other text editing options.
|
|
11
|
+
*/
|
|
12
|
+
const isBuiltInAction = (action) => !action.startsWith("custom:");
|
|
13
|
+
/**
|
|
14
|
+
* Default menu items
|
|
15
|
+
*/
|
|
16
|
+
const DEFAULT_MENU_ITEMS = [
|
|
17
|
+
{
|
|
18
|
+
action: "cut",
|
|
19
|
+
label: "Cut",
|
|
20
|
+
shortcut: "Ctrl+X"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
action: "copy",
|
|
24
|
+
label: "Copy",
|
|
25
|
+
shortcut: "Ctrl+C"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
action: "paste",
|
|
29
|
+
label: "Paste",
|
|
30
|
+
shortcut: "Ctrl+V"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
action: "pasteAsPlainText",
|
|
34
|
+
label: "Paste as Plain Text",
|
|
35
|
+
shortcut: "Ctrl+Alt+V",
|
|
36
|
+
dividerAfter: true
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
action: "delete",
|
|
40
|
+
label: "Delete",
|
|
41
|
+
shortcut: "Del",
|
|
42
|
+
dividerAfter: true
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
action: "acceptChange",
|
|
46
|
+
label: "Accept Change"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
action: "rejectChange",
|
|
50
|
+
label: "Reject Change",
|
|
51
|
+
dividerAfter: true
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
action: "selectAll",
|
|
55
|
+
label: "Select All",
|
|
56
|
+
shortcut: "Ctrl+A"
|
|
57
|
+
}
|
|
58
|
+
];
|
|
59
|
+
/**
|
|
60
|
+
* Get icon for action
|
|
61
|
+
*/
|
|
62
|
+
function getActionIcon(action) {
|
|
63
|
+
if (!isBuiltInAction(action)) return null;
|
|
64
|
+
const ICON_SIZE = 14;
|
|
65
|
+
switch (action) {
|
|
66
|
+
case "cut": return /* @__PURE__ */ jsx(Scissors, { size: ICON_SIZE });
|
|
67
|
+
case "copy": return /* @__PURE__ */ jsx(Copy, { size: ICON_SIZE });
|
|
68
|
+
case "paste":
|
|
69
|
+
case "pasteAsPlainText": return /* @__PURE__ */ jsx(ClipboardPaste, { size: ICON_SIZE });
|
|
70
|
+
case "delete": return /* @__PURE__ */ jsx(Trash2, { size: ICON_SIZE });
|
|
71
|
+
case "selectAll": return /* @__PURE__ */ jsx(TextSelect, { size: ICON_SIZE });
|
|
72
|
+
case "addRowAbove": return /* @__PURE__ */ jsx(ArrowUpToLine, { size: ICON_SIZE });
|
|
73
|
+
case "addRowBelow": return /* @__PURE__ */ jsx(ArrowDownToLine, { size: ICON_SIZE });
|
|
74
|
+
case "deleteRow": return /* @__PURE__ */ jsx(Trash2, { size: ICON_SIZE });
|
|
75
|
+
case "addColumnLeft": return /* @__PURE__ */ jsx(ArrowLeftToLine, { size: ICON_SIZE });
|
|
76
|
+
case "addColumnRight": return /* @__PURE__ */ jsx(ArrowRightToLine, { size: ICON_SIZE });
|
|
77
|
+
case "deleteColumn": return /* @__PURE__ */ jsx(Trash2, { size: ICON_SIZE });
|
|
78
|
+
case "tableBordersAll": return /* @__PURE__ */ jsx(Grid3x3, { size: ICON_SIZE });
|
|
79
|
+
case "tableBordersNone": return /* @__PURE__ */ jsx(SquareDashed, { size: ICON_SIZE });
|
|
80
|
+
case "addComment": return /* @__PURE__ */ jsx(MessageSquarePlus, { size: ICON_SIZE });
|
|
81
|
+
case "acceptChange":
|
|
82
|
+
case "rejectChange":
|
|
83
|
+
case "separator": return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const EMPHASIS_COLOR = "var(--primary, var(--doc-primary, #2563eb))";
|
|
87
|
+
function itemTextColor(item) {
|
|
88
|
+
if (item.disabled) return "var(--muted-foreground, var(--doc-text-subtle, #737373))";
|
|
89
|
+
if (item.emphasis) return EMPHASIS_COLOR;
|
|
90
|
+
return "var(--popover-foreground, var(--doc-text, #171717))";
|
|
91
|
+
}
|
|
92
|
+
function itemIconColor(item) {
|
|
93
|
+
if (item.disabled) return "var(--border, var(--doc-border, #d4d4d4))";
|
|
94
|
+
if (item.emphasis) return EMPHASIS_COLOR;
|
|
95
|
+
return "var(--muted-foreground, var(--doc-text-muted, #737373))";
|
|
96
|
+
}
|
|
97
|
+
const MenuItemComponent = ({ item, onClick, isHighlighted, onMouseEnter }) => {
|
|
98
|
+
if (item.action === "separator") return /* @__PURE__ */ jsx("div", {
|
|
99
|
+
className: "docx-text-context-menu-separator",
|
|
100
|
+
style: {
|
|
101
|
+
height: "1px",
|
|
102
|
+
backgroundColor: "var(--border, var(--doc-border, #e5e7eb))",
|
|
103
|
+
margin: "4px 12px"
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("button", {
|
|
107
|
+
type: "button",
|
|
108
|
+
className: `docx-text-context-menu-item ${isHighlighted ? "docx-text-context-menu-item-highlighted" : ""} ${item.disabled ? "docx-text-context-menu-item-disabled" : ""}`,
|
|
109
|
+
onClick,
|
|
110
|
+
onMouseEnter,
|
|
111
|
+
disabled: item.disabled,
|
|
112
|
+
role: "menuitem",
|
|
113
|
+
"aria-disabled": item.disabled,
|
|
114
|
+
style: {
|
|
115
|
+
display: "flex",
|
|
116
|
+
alignItems: "center",
|
|
117
|
+
gap: "10px",
|
|
118
|
+
width: "100%",
|
|
119
|
+
padding: "8px 12px",
|
|
120
|
+
border: "none",
|
|
121
|
+
background: isHighlighted && !item.disabled ? "var(--accent, var(--doc-primary-light, #f3f4f6))" : "transparent",
|
|
122
|
+
cursor: item.disabled ? "not-allowed" : "pointer",
|
|
123
|
+
fontSize: "13px",
|
|
124
|
+
color: itemTextColor(item),
|
|
125
|
+
fontWeight: item.emphasis ? 500 : 400,
|
|
126
|
+
textAlign: "left",
|
|
127
|
+
opacity: item.disabled ? .6 : 1
|
|
128
|
+
},
|
|
129
|
+
children: [
|
|
130
|
+
/* @__PURE__ */ jsx("span", {
|
|
131
|
+
style: {
|
|
132
|
+
display: "flex",
|
|
133
|
+
color: itemIconColor(item)
|
|
134
|
+
},
|
|
135
|
+
children: item.icon ?? getActionIcon(item.action)
|
|
136
|
+
}),
|
|
137
|
+
/* @__PURE__ */ jsx("span", {
|
|
138
|
+
style: { flex: 1 },
|
|
139
|
+
children: item.label
|
|
140
|
+
}),
|
|
141
|
+
item.shortcut && /* @__PURE__ */ jsx("span", {
|
|
142
|
+
style: {
|
|
143
|
+
fontSize: "11px",
|
|
144
|
+
color: "var(--muted-foreground, var(--doc-text-subtle, #737373))",
|
|
145
|
+
fontFamily: "monospace"
|
|
146
|
+
},
|
|
147
|
+
children: item.shortcut
|
|
148
|
+
})
|
|
149
|
+
]
|
|
150
|
+
}), item.dividerAfter && /* @__PURE__ */ jsx("div", {
|
|
151
|
+
className: "docx-text-context-menu-separator",
|
|
152
|
+
style: {
|
|
153
|
+
height: "1px",
|
|
154
|
+
backgroundColor: "var(--border, var(--doc-border, #e5e7eb))",
|
|
155
|
+
margin: "4px 12px"
|
|
156
|
+
}
|
|
157
|
+
})] });
|
|
158
|
+
};
|
|
159
|
+
const TextContextMenu = ({ isOpen, position, hasSelection, isEditable, hasClipboardContent = true, onAction, onClose, items, className = "" }) => {
|
|
160
|
+
const menuRef = useRef(null);
|
|
161
|
+
const [highlightedIndex, setHighlightedIndex] = useState(0);
|
|
162
|
+
const menuItems = (items ?? DEFAULT_MENU_ITEMS).map((item) => {
|
|
163
|
+
const disabled = (() => {
|
|
164
|
+
if (item.disabled !== void 0) return item.disabled;
|
|
165
|
+
if (!isBuiltInAction(item.action)) return false;
|
|
166
|
+
switch (item.action) {
|
|
167
|
+
case "cut":
|
|
168
|
+
case "copy":
|
|
169
|
+
case "delete": return !hasSelection;
|
|
170
|
+
case "paste":
|
|
171
|
+
case "pasteAsPlainText": return !isEditable || !hasClipboardContent;
|
|
172
|
+
case "acceptChange":
|
|
173
|
+
case "rejectChange":
|
|
174
|
+
case "selectAll":
|
|
175
|
+
case "separator":
|
|
176
|
+
case "addComment":
|
|
177
|
+
case "addRowAbove":
|
|
178
|
+
case "addRowBelow":
|
|
179
|
+
case "deleteRow":
|
|
180
|
+
case "addColumnLeft":
|
|
181
|
+
case "addColumnRight":
|
|
182
|
+
case "deleteColumn":
|
|
183
|
+
case "tableBordersAll":
|
|
184
|
+
case "tableBordersNone": return false;
|
|
185
|
+
}
|
|
186
|
+
})();
|
|
187
|
+
const menuItem = {
|
|
188
|
+
action: item.action,
|
|
189
|
+
disabled,
|
|
190
|
+
label: item.label
|
|
191
|
+
};
|
|
192
|
+
if (item.shortcut !== void 0) menuItem.shortcut = item.shortcut;
|
|
193
|
+
if (item.dividerAfter !== void 0) menuItem.dividerAfter = item.dividerAfter;
|
|
194
|
+
return menuItem;
|
|
195
|
+
});
|
|
196
|
+
const navigableItems = menuItems.filter((item) => item.action !== "separator");
|
|
197
|
+
useEffect(() => {
|
|
198
|
+
if (!isOpen) return;
|
|
199
|
+
const handleClickOutside = (e) => {
|
|
200
|
+
if (menuRef.current && !menuRef.current.contains(e.target)) onClose();
|
|
201
|
+
};
|
|
202
|
+
const timer = setTimeout(() => {
|
|
203
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
204
|
+
}, 0);
|
|
205
|
+
return () => {
|
|
206
|
+
clearTimeout(timer);
|
|
207
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
208
|
+
};
|
|
209
|
+
}, [isOpen, onClose]);
|
|
210
|
+
useEffect(() => {
|
|
211
|
+
if (!isOpen) return;
|
|
212
|
+
const handleKeyDown = (e) => {
|
|
213
|
+
switch (e.key) {
|
|
214
|
+
case "Escape":
|
|
215
|
+
e.preventDefault();
|
|
216
|
+
onClose();
|
|
217
|
+
break;
|
|
218
|
+
case "ArrowDown":
|
|
219
|
+
e.preventDefault();
|
|
220
|
+
setHighlightedIndex((prev) => {
|
|
221
|
+
let next = (prev + 1) % navigableItems.length;
|
|
222
|
+
while (navigableItems[next]?.disabled && next !== prev) next = (next + 1) % navigableItems.length;
|
|
223
|
+
return next;
|
|
224
|
+
});
|
|
225
|
+
break;
|
|
226
|
+
case "ArrowUp":
|
|
227
|
+
e.preventDefault();
|
|
228
|
+
setHighlightedIndex((prev) => {
|
|
229
|
+
let next = (prev - 1 + navigableItems.length) % navigableItems.length;
|
|
230
|
+
while (navigableItems[next]?.disabled && next !== prev) next = (next - 1 + navigableItems.length) % navigableItems.length;
|
|
231
|
+
return next;
|
|
232
|
+
});
|
|
233
|
+
break;
|
|
234
|
+
case "Enter": {
|
|
235
|
+
e.preventDefault();
|
|
236
|
+
const item = navigableItems[highlightedIndex];
|
|
237
|
+
if (item && !item.disabled) {
|
|
238
|
+
onAction(item.action);
|
|
239
|
+
onClose();
|
|
240
|
+
}
|
|
241
|
+
break;
|
|
242
|
+
}
|
|
243
|
+
default: break;
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
247
|
+
return () => document.removeEventListener("keydown", handleKeyDown);
|
|
248
|
+
}, [
|
|
249
|
+
isOpen,
|
|
250
|
+
highlightedIndex,
|
|
251
|
+
navigableItems,
|
|
252
|
+
onAction,
|
|
253
|
+
onClose
|
|
254
|
+
]);
|
|
255
|
+
useEffect(() => {
|
|
256
|
+
if (isOpen) setHighlightedIndex(0);
|
|
257
|
+
}, [isOpen]);
|
|
258
|
+
const getMenuStyle = useCallback(() => {
|
|
259
|
+
const menuWidth = 220;
|
|
260
|
+
const menuHeight = menuItems.length * 36 + 16;
|
|
261
|
+
let x = position.x;
|
|
262
|
+
let y = hasSelection && position.y - menuHeight - 8 >= 10 ? position.y - menuHeight - 8 : position.y;
|
|
263
|
+
if (typeof window !== "undefined") {
|
|
264
|
+
if (x + menuWidth > window.innerWidth) x = window.innerWidth - menuWidth - 10;
|
|
265
|
+
if (y + menuHeight > window.innerHeight) y = window.innerHeight - menuHeight - 10;
|
|
266
|
+
if (x < 10) x = 10;
|
|
267
|
+
if (y < 10) y = 10;
|
|
268
|
+
}
|
|
269
|
+
return {
|
|
270
|
+
backgroundColor: "var(--popover, var(--doc-bg, #ffffff))",
|
|
271
|
+
border: "1px solid var(--border, var(--doc-border, #e5e7eb))",
|
|
272
|
+
boxShadow: "0 12px 32px var(--doc-shadow-md, rgba(0,0,0,0.22)), 0 2px 8px var(--doc-shadow-sm, rgba(0,0,0,0.14))",
|
|
273
|
+
color: "var(--popover-foreground, var(--doc-text, #171717))",
|
|
274
|
+
fontFamily: "inherit",
|
|
275
|
+
left: `${x}px`,
|
|
276
|
+
minWidth: `${menuWidth}px`,
|
|
277
|
+
top: `${y}px`,
|
|
278
|
+
zIndex: 2147483647
|
|
279
|
+
};
|
|
280
|
+
}, [
|
|
281
|
+
hasSelection,
|
|
282
|
+
position,
|
|
283
|
+
menuItems.length
|
|
284
|
+
]);
|
|
285
|
+
const handleItemClick = (item) => {
|
|
286
|
+
if (item.disabled) return;
|
|
287
|
+
onAction(item.action);
|
|
288
|
+
onClose();
|
|
289
|
+
};
|
|
290
|
+
if (!isOpen) return null;
|
|
291
|
+
const menu = /* @__PURE__ */ jsx("div", {
|
|
292
|
+
ref: menuRef,
|
|
293
|
+
className: `docx-text-context-menu fixed z-[2147483647] overflow-hidden rounded-lg border py-1 shadow-lg ${className}`,
|
|
294
|
+
style: getMenuStyle(),
|
|
295
|
+
role: "menu",
|
|
296
|
+
"aria-label": "Text editing menu",
|
|
297
|
+
children: menuItems.map((item, index) => {
|
|
298
|
+
const navigableIndex = navigableItems.indexOf(item);
|
|
299
|
+
return /* @__PURE__ */ jsx(MenuItemComponent, {
|
|
300
|
+
item,
|
|
301
|
+
onClick: () => handleItemClick(item),
|
|
302
|
+
isHighlighted: navigableIndex === highlightedIndex,
|
|
303
|
+
onMouseEnter: () => {
|
|
304
|
+
if (navigableIndex !== -1 && !item.disabled) setHighlightedIndex(navigableIndex);
|
|
305
|
+
}
|
|
306
|
+
}, `${item.action}-${index}`);
|
|
307
|
+
})
|
|
308
|
+
});
|
|
309
|
+
if (typeof document === "undefined") return menu;
|
|
310
|
+
return createPortal(menu, document.body);
|
|
311
|
+
};
|
|
312
|
+
//#endregion
|
|
313
|
+
export { TextContextMenu };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//#region src/utils/contained-handler.ts
|
|
2
|
+
/**
|
|
3
|
+
* Wrap a React event handler so it only fires when the event target
|
|
4
|
+
* is a DOM descendant of the given ref.
|
|
5
|
+
*
|
|
6
|
+
* React forwards synthetic events through the parent React tree even
|
|
7
|
+
* when descendants are rendered via createPortal. That makes it unsafe
|
|
8
|
+
* for a parent element to attach `onMouseDown`, `onClick`, `onFocus`,
|
|
9
|
+
* etc. that side-effect (focus steal, preventDefault, selection changes)
|
|
10
|
+
* under the assumption "the target lives inside me" — a portaled popup
|
|
11
|
+
* (Dialog, Combobox, Tooltip) silently bypasses the DOM boundary and
|
|
12
|
+
* triggers the side effect, dismissing itself.
|
|
13
|
+
*
|
|
14
|
+
* Only use for event types whose `target` is the meaningful subject of
|
|
15
|
+
* the event: pointer/mouse/touch/click and `focus`. Do **not** wrap
|
|
16
|
+
* `onBlur`: blur's `target` is the element losing focus, not the new
|
|
17
|
+
* focus destination, so the containment test cannot answer "is focus
|
|
18
|
+
* leaving for a portaled child?". For that case test `relatedTarget`
|
|
19
|
+
* directly inside the handler.
|
|
20
|
+
*
|
|
21
|
+
* The `require-contained-handler` oxlint rule enforces this on any JSX
|
|
22
|
+
* element carrying both `ref={…}` and one of the watched handler props.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* const barRef = useRef<HTMLDivElement>(null);
|
|
26
|
+
* return (
|
|
27
|
+
* <div
|
|
28
|
+
* ref={barRef}
|
|
29
|
+
* onMouseDown={containedHandler(barRef, (e) => {
|
|
30
|
+
* e.preventDefault();
|
|
31
|
+
* focusEditor();
|
|
32
|
+
* })}
|
|
33
|
+
* >
|
|
34
|
+
* ...
|
|
35
|
+
* </div>
|
|
36
|
+
* );
|
|
37
|
+
*/
|
|
38
|
+
const containedHandler = (ref, handler) => (event) => {
|
|
39
|
+
if (handler === void 0) return;
|
|
40
|
+
const container = ref?.current ?? null;
|
|
41
|
+
if (container !== null && event.target instanceof Node && !container.contains(event.target)) return;
|
|
42
|
+
handler(event);
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
export { containedHandler as t };
|
package/dist/editor.css
ADDED
|
@@ -0,0 +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/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-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-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;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-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-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}.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 .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}.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}.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,.folio-root--original .docx-insertion{display:none!important}.folio-root--original .docx-deletion,.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}.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--editing-header .layout-page-header,.paged-editor--editing-footer .layout-page-footer{opacity:1!important}.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-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,.folio-template-directive--if,.folio-template-directive--elseif,.folio-template-directive--else,.folio-template-directive--endif,.folio-template-directive--each,.folio-template-directive--endeach{background:#0000ff3d}.folio-template-band-rail{background:#0000ff80;border-radius:2px;position:absolute}.folio-template-preview-original{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-default-outline-rail{max-height:100%;padding:.25rem 0;position:absolute;inset-inline-end:0;overflow-y:auto}.folio-default-outline-list{margin:0;padding:0;list-style:none}.folio-default-outline-item{text-align:start;cursor:pointer;width:100%;color:var(--doc-text-muted,inherit);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;padding-block:.25rem;padding-inline-end:.5rem;font-size:.8125rem;display:block;overflow:hidden}.folio-default-outline-item--active{color:var(--doc-text,inherit);font-weight:500}.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;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}}
|