.ProseMirror {
  position: relative;
}

.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; /* the above doesn't seem to work in Edge */
}

.ProseMirror pre {
  white-space: pre-wrap;
}

.ProseMirror li {
  position: relative;
}

.ProseMirror-hideselection *::selection { background: transparent; }
.ProseMirror-hideselection *::-moz-selection { background: transparent; }
.ProseMirror-hideselection { caret-color: transparent; }

/* See https://code.haverbeke.berlin/prosemirror/prosemirror/issues/1421#issuecomment-1759320191 */
.ProseMirror [draggable][contenteditable=false] { user-select: text }

.ProseMirror-selectednode {
  outline: 2px solid #8cf;
}

/* Make sure li selections wrap around markers */

li.ProseMirror-selectednode {
  outline: none;
}

li.ProseMirror-selectednode:after {
  content: "";
  position: absolute;
  left: -32px;
  right: -2px; top: -2px; bottom: -2px;
  border: 2px solid #8cf;
  pointer-events: none;
}

/* Protect against generic img rules */

img.ProseMirror-separator {
  display: inline !important;
  border: none !important;
  margin: 0 !important;
}

/**
 * ProseMirror Editor Styles
 *
 * Provides page-like layout similar to Word/Google Docs
 */

/* Outer wrapper - handles scrolling and background */
.prosemirror-editor-wrapper {
  min-height: 100%;
  /* overflow, background, and padding set via inline styles */
}

/* Zoom container - sized to match scaled content for proper scrolling */
.prosemirror-zoom-container {
  /* Width, height, margin set via inline styles based on zoom */
}

/* Editor container - the transform target */
.prosemirror-editor {
  /* Transform applied via inline styles for zoom */
  /* CSS variables (--page-width, etc.) set via inline styles */
  /* Width is set to page width so transform scales correctly */
  width: var(--page-width, 8.5in);
}

/* Editor content area (the actual editable content) */
.prosemirror-editor .ProseMirror {
  background: white;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  /* Use CSS variables for page layout, with fallbacks */
  width: var(--page-width, 8.5in);
  /* min-height creates a single page appearance */
  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);
  /* Remove max-width constraint - let the page be its natural size */
  outline: none;
  /* Default font - will be overridden by inline styles from DOCX */
  font-family: 'Calibri', 'Arial', sans-serif;
  font-size: 11pt;
  /* DO NOT set line-height here - it overrides inline paragraph styles */
  /* line-height is set per-paragraph via inline styles from paragraphAttrsToDOMStyle */
  color: #000;
  white-space: pre-wrap;
  word-wrap: break-word;
  /* Tab size for proper tab character rendering (0.5 inch = 48px at 96dpi) */
  tab-size: 48;
  -moz-tab-size: 48;
  /* Ensure box-sizing includes padding in width calculation */
  box-sizing: border-box;
  /* Page break behavior - show page breaks visually */
  position: relative;
}

/* ============================================================================
   PAGE BREAK STYLES - Visual page boundaries like Word/Google Docs
   ============================================================================ */

/* Page break indicator - inserted by PageBreakPlugin */
.prosemirror-editor .ProseMirror .docx-page-break {
  display: block;
  position: relative;
  height: 40px;
  margin: 0 calc(-1 * var(--margin-left, 72px));
  margin-right: calc(-1 * var(--margin-right, 72px));
  background: var(--doc-bg);
  border: none;
  pointer-events: none;
}

/* Top shadow of next page */
.prosemirror-editor .ProseMirror .docx-page-break::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 8px;
  background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.08));
}

/* Bottom shadow of previous page */
.prosemirror-editor .ProseMirror .docx-page-break::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 8px;
  background: linear-gradient(to top, transparent, rgba(0, 0, 0, 0.08));
}

/* Explicit page break (from DOCX pageBreakBefore) */
.prosemirror-editor .ProseMirror [data-page-break-before='true'] {
  break-before: page;
}

/* Page break dashed line indicator (alternative style) */
.prosemirror-editor .ProseMirror .docx-page-break-line {
  display: block;
  position: relative;
  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);
}

.prosemirror-editor .ProseMirror .docx-page-break-line::before {
  content: 'Page Break';
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--doc-bg);
  padding: 0 8px;
  font-size: 10px;
  color: var(--doc-text-muted);
  white-space: nowrap;
}

/* Focus state */
.prosemirror-editor .ProseMirror:focus {
  outline: none;
}

/* Paragraphs - ensure they display as blocks with proper spacing */
/* IMPORTANT: Do NOT set margin, line-height, or font here - use inline styles from DOCX */
.prosemirror-editor .ProseMirror p {
  display: block;
  /* Default margin only when no inline style is set */
  margin: 0;
  padding: 0;
  min-height: 1em;
  white-space: pre-wrap;
  word-wrap: break-word;
  /* Default line height - can be overridden by inline styles */
  line-height: normal;
}

/* Empty paragraph placeholder */
.prosemirror-editor .ProseMirror p:empty::before {
  content: '\00a0';
}

/* Inline spans for formatting - ensure they don't break layout */
.prosemirror-editor .ProseMirror span {
  display: inline;
  white-space: pre-wrap;
}

/* List styles */
.prosemirror-editor .ProseMirror .docx-list-bullet,
.prosemirror-editor .ProseMirror .docx-list-numbered {
  position: relative;
  /* Increased padding to accommodate longer markers like "1.1.1." */
  padding-left: 48px;
}

/* Use the computed marker from DOCX when available */
.prosemirror-editor .ProseMirror [data-list-marker]::before {
  content: attr(data-list-marker);
  position: absolute;
  /* Position marker at right edge of the marker area so it aligns with content */
  left: 0;
  width: 44px;
  text-align: right;
  white-space: nowrap;
}

/* Fallback for bullet lists without marker */
.prosemirror-editor .ProseMirror .docx-list-bullet:not([data-list-marker])::before {
  content: '•';
  position: absolute;
  left: 0;
  width: 44px;
  text-align: right;
}

/* Fallback for numbered lists without marker - use CSS counters */
.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) '.';
  position: absolute;
  left: 0;
  width: 44px;
  text-align: right;
}

.prosemirror-editor .ProseMirror .docx-list-lower-roman:not([data-list-marker])::before {
  content: counter(list-counter, lower-roman) '.';
  position: absolute;
  left: 0;
  width: 44px;
  text-align: right;
}

.prosemirror-editor .ProseMirror .docx-list-upper-roman:not([data-list-marker])::before {
  content: counter(list-counter, upper-roman) '.';
  position: absolute;
  left: 0;
  width: 44px;
  text-align: right;
}

.prosemirror-editor .ProseMirror .docx-list-lower-alpha:not([data-list-marker])::before {
  content: counter(list-counter, lower-alpha) '.';
  position: absolute;
  left: 0;
  width: 44px;
  text-align: right;
}

.prosemirror-editor .ProseMirror .docx-list-upper-alpha:not([data-list-marker])::before {
  content: counter(list-counter, upper-alpha) '.';
  position: absolute;
  left: 0;
  width: 44px;
  text-align: right;
}

/* Reset counter at level 0 for fallback */
.prosemirror-editor .ProseMirror .docx-list-level-0:not([data-list-marker]):first-of-type {
  counter-reset: list-counter;
}

/* Indent levels */
.prosemirror-editor .ProseMirror .docx-list-level-1 {
  margin-left: 0.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;
}

/* Selection styling */
.prosemirror-editor .ProseMirror ::selection {
  background: rgba(66, 133, 244, 0.3);
}

/* Placeholder styling */
.prosemirror-editor[data-placeholder]::before {
  content: attr(data-placeholder);
  color: #aaa;
  position: absolute;
  pointer-events: none;
}

/* ============================================================================
   IMAGE STYLES - Word-like image rendering
   ============================================================================

   DOCX images have three main display modes:
   1. Inline - flows with text like a character (displayMode='inline')
   2. Float - text wraps around image (displayMode='float', cssFloat='left'|'right')
   3. Block - centered on its own line (displayMode='block')
*/

/* Base image styling - all images */
.prosemirror-editor .ProseMirror img.docx-image {
  /* IMPORTANT: Override global CSS reset that sets img { display: block } */
  /* Default to inline for inline images - block/float set via inline style */
  display: inline;
  /* Dimensions set via inline styles, but constrain to page */
  max-width: 100%;
  /* Maintain aspect ratio when width-constrained */
  object-fit: contain;
  /* Vertical alignment for inline images - aligns bottom of image with text baseline */
  vertical-align: baseline;
  /* Prevent selection outline issues */
  outline: none;
}

/* Floating images - text wraps around */
.prosemirror-editor .ProseMirror img.docx-image-float {
  /* Float direction set via inline style */
  /* Margins set via inline style based on wrap distances */
}

/* Left-floated images - text wraps on right side */
.prosemirror-editor .ProseMirror img.docx-image-float-left {
  clear: left;
}

/* Right-floated images - text wraps on left side */
.prosemirror-editor .ProseMirror img.docx-image-float-right {
  clear: right;
}

/* Block images - centered on their own line */
.prosemirror-editor .ProseMirror img.docx-image-block {
  /* display:block and margin:auto set via inline style */
  clear: both;
}

/* Paragraphs containing only a block image: remove text-indent and center */
.prosemirror-editor .ProseMirror p:has(> img.docx-image-block:only-child) {
  text-indent: 0 !important;
  text-align: center;
}

/* Clear floats after paragraphs containing floated images */
.prosemirror-editor .ProseMirror p:has(img.docx-image-float)::after {
  content: '';
  display: table;
  clear: both;
}

/* Selected image indicator */
.prosemirror-editor .ProseMirror img.docx-image.ProseMirror-selectednode {
  outline: 2px solid var(--doc-primary, #4285f4);
  outline-offset: 2px;
  cursor: grab;
}

/* Image dragging state */
.prosemirror-editor .ProseMirror.pm-image-dragging img.docx-image.ProseMirror-selectednode {
  opacity: 0.4;
  outline: 2px dashed var(--doc-primary, #4285f4);
  cursor: grabbing;
}

/* Fallback for images without docx-image class */
.prosemirror-editor .ProseMirror img:not(.docx-image) {
  max-width: 100%;
  height: auto;
}

/* Shapes */
.prosemirror-editor .ProseMirror .docx-shape {
  display: inline-block;
  vertical-align: middle;
  line-height: 0;
  cursor: pointer;
}

.prosemirror-editor .ProseMirror .docx-shape.ProseMirror-selectednode {
  outline: 2px solid var(--doc-primary, #4285f4);
  outline-offset: 2px;
}

/* Text boxes */
.prosemirror-editor .ProseMirror .docx-textbox {
  border-radius: 2px;
  margin: 4px 0;
  cursor: text;
}

.prosemirror-editor .ProseMirror .docx-textbox.ProseMirror-selectednode {
  outline: 2px solid var(--doc-primary, #4285f4);
  outline-offset: 2px;
}

/* Links */
.prosemirror-editor .ProseMirror a {
  color: var(--doc-link);
  text-decoration: underline;
}

.prosemirror-editor .ProseMirror a:hover {
  color: var(--doc-primary-hover);
}

/* Footnote/Endnote references */
.prosemirror-editor .ProseMirror .docx-footnote-ref,
.prosemirror-editor .ProseMirror .docx-endnote-ref {
  color: var(--doc-link, #0066cc);
  cursor: pointer;
  vertical-align: super;
  font-size: smaller;
}

.prosemirror-editor .ProseMirror .docx-footnote-ref:hover,
.prosemirror-editor .ProseMirror .docx-endnote-ref:hover {
  text-decoration: underline;
}

/* Horizontal rule */
.prosemirror-editor .ProseMirror hr {
  border: none;
  border-top: 1px solid #000;
  margin: 12pt 0;
  height: 0;
}

/* ============================================================================
   TABLE STYLES
   ============================================================================ */

/* Table container */
.prosemirror-editor .ProseMirror table.docx-table {
  border-collapse: collapse;
  margin: 12pt 0;
  /* Constrain table to fit within the page - prevent overflow */
  max-width: 100%;
}

/* Table cells */
.prosemirror-editor .ProseMirror td.docx-table-cell,
.prosemirror-editor .ProseMirror th.docx-table-header {
  /* Borders are set via inline styles from DOCX - no default border here */
  /* to avoid conflicting with per-side border styling */
  padding: 4px 8px;
  vertical-align: top;
  min-width: 30px;
  /* Text wrapping handled via inline styles based on noWrap attribute */
}

/* Table header cells are structural; DOCX text formatting comes from marks/styles. */
.prosemirror-editor .ProseMirror th.docx-table-header {
  font-weight: inherit;
  text-align: inherit;
}

/* Cell content - paragraphs inside cells */
.prosemirror-editor .ProseMirror td p,
.prosemirror-editor .ProseMirror th p {
  margin: 0;
  padding: 0;
  min-height: auto;
}

/* First paragraph in cell shouldn't have top margin */
.prosemirror-editor .ProseMirror td p:first-child,
.prosemirror-editor .ProseMirror th p:first-child {
  margin-top: 0;
}

/* Last paragraph in cell shouldn't have bottom margin */
.prosemirror-editor .ProseMirror td p:last-child,
.prosemirror-editor .ProseMirror th p:last-child {
  margin-bottom: 0;
}

/* Active cell (cursor is inside this cell) — subtle outline so user knows which cell will be affected */
.prosemirror-editor .ProseMirror .activeCell {
  outline: 2px solid rgba(66, 133, 244, 0.5);
  outline-offset: -2px;
}

/* Selected cell highlight (multi-cell CellSelection) */
.prosemirror-editor .ProseMirror .selectedCell {
  background-color: rgba(66, 133, 244, 0.15);
}

/* Table selection */
.prosemirror-editor .ProseMirror .selectedCell::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(66, 133, 244, 0.1);
  pointer-events: none;
}

/* Nested tables */
.prosemirror-editor .ProseMirror table table {
  margin: 4px 0;
}

/* ============================================================================
   TABLE COLUMN RESIZE
   ============================================================================ */

/* Column resize handle - visible on hover */
.prosemirror-editor .ProseMirror .column-resize-handle {
  position: absolute;
  right: -2px;
  top: 0;
  bottom: 0;
  width: 4px;
  background-color: rgba(66, 133, 244, 0.5);
  cursor: col-resize;
  z-index: 20;
}

/* Make cells position relative for resize handle positioning */
.prosemirror-editor .ProseMirror td.docx-table-cell,
.prosemirror-editor .ProseMirror th.docx-table-header {
  position: relative;
}

/* Cursor change when resizing */
.prosemirror-editor .ProseMirror.resize-cursor {
  cursor: col-resize;
}

/* Hide resize handle when not hovering the table, show on hover */
.prosemirror-editor .ProseMirror table:not(:hover) .column-resize-handle {
  background-color: transparent;
}

.prosemirror-editor .ProseMirror table:hover .column-resize-handle {
  background-color: rgba(66, 133, 244, 0.3);
}

/* Highlight resize handle on direct hover */
.prosemirror-editor .ProseMirror .column-resize-handle:hover {
  background-color: rgba(66, 133, 244, 0.7);
}

/* ============================================================================
   TAB STYLES
   ============================================================================ */

/* Tab character - renders as inline block with minimum width */
.prosemirror-editor .ProseMirror span.docx-tab {
  display: inline-block;
  min-width: 48px; /* 0.5 inch default tab stop */
  white-space: pre;
  /* Align to tab grid using CSS */
  background: transparent;
}

/* Tab leader styles (for future enhancement) */
.prosemirror-editor .ProseMirror span.docx-tab[data-leader='dot']::before {
  content: '...........';
  position: absolute;
  color: inherit;
  white-space: nowrap;
  overflow: hidden;
}

.prosemirror-editor .ProseMirror span.docx-tab[data-leader='hyphen']::before {
  content: '-----------';
  position: absolute;
  color: inherit;
  white-space: nowrap;
  overflow: hidden;
}

.prosemirror-editor .ProseMirror span.docx-tab[data-leader='underscore']::before {
  content: '___________';
  position: absolute;
  color: inherit;
  white-space: nowrap;
  overflow: hidden;
}

/* ============================================================================
   TEXT TRANSFORM STYLES - All caps, small caps
   ============================================================================ */

/* All caps (w:caps) - transforms text to uppercase */
.prosemirror-editor .ProseMirror .docx-run-all-caps {
  text-transform: uppercase;
}

/* Small caps (w:smallCaps) - displays lowercase as smaller capitals */
.prosemirror-editor .ProseMirror .docx-run-small-caps {
  font-variant: small-caps;
}

/* Section break indicator */
.docx-section-break {
  position: relative;
}
.docx-section-break::after {
  content: 'Section Break (' attr(data-section-break) ')';
  display: block;
  text-align: center;
  font-size: 9px;
  color: var(--doc-text-muted, #9ca3af);
  border-top: 1px dashed var(--doc-border, #d1d5db);
  margin-top: 4px;
  padding-top: 2px;
  pointer-events: none;
}

/* ============================================================================
   IMAGE DROP INDICATOR - Shows where a dragged image will land
   ============================================================================ */

/* Custom drop indicator (from ImageDragExtension) */
.prosemirror-editor .ProseMirror .pm-drop-indicator {
  position: absolute;
  width: 2px;
  background: var(--doc-primary, #4285f4);
  pointer-events: none;
  z-index: 50;
}

/* prosemirror-dropcursor styling */
.prosemirror-editor .ProseMirror .ProseMirror-dropcursor {
  z-index: 50;
}

/* Page content area — show text cursor when hovering over editable content */
.layout-page-content {
  cursor: text;
}

/* Header/footer areas — double-click hint */
.layout-page-header,
.layout-page-footer {
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.layout-page-header:hover,
.layout-page-footer:hover {
  background-color: rgba(37, 99, 235, 0.06);
}
/* Show "Double-click to edit" hint on hover when area is empty */
.layout-page-header:empty:hover::after {
  content: 'Double-click to add header';
  display: block;
  text-align: center;
  color: #9ca3af;
  font-size: 11px;
  padding: 4px 0;
}
.layout-page-footer:empty:hover::after {
  content: 'Double-click to add footer';
  display: block;
  text-align: center;
  color: #9ca3af;
  font-size: 11px;
  padding: 4px 0;
}

/*
 * Phase 5 of HF editing unification (openspec/changes/unify-hf-editing/):
 * the inline overlay no longer mounts its own EditorView — the painter is
 * the visible HF renderer and the persistent hidden HF PM is the sole
 * editor. The entire `.hf-editor-pm` rule block that lived here existed
 * only to make PM's `toDOM` table match the painter's flex layout; with
 * the renderer unified, those workarounds (font-strut zeroing, `top:
 * 0.4em` shim, table-layout overrides, line-height resets) are deleted
 * by construction. Issue #468's class of bug is gone.
 */

/* ============================================================================
   INLINE HEADER/FOOTER EDITING — Dim body, separator bar, dotted borders
   ============================================================================ */

/* Header/footer CONTENT is non-interactive in normal mode: a single click on a
   header/footer is already a no-op (Word parity), and — crucially — a page- or
   margin-anchored shape (e.g. a full-page letterhead in a header) overflows the
   band and would otherwise sit on top of the body and swallow clicks meant for
   the document text (#856). The band element itself keeps pointer events so it
   stays the double-click-to-edit target; only its content is passed through. */
.layout-page-header > *,
.layout-page-footer > * {
  pointer-events: none;
}

/* While editing a region, its content must be hittable again so clicks map to
   header/footer caret positions. */
.paged-editor--editing-header .layout-page-header > *,
.paged-editor--editing-footer .layout-page-footer > * {
  pointer-events: auto;
}

/* Dim body content when editing header/footer */
.paged-editor--hf-editing .layout-page-content {
  opacity: 0.4;
  pointer-events: none;
  transition: opacity 0.15s ease;
}

/* While editing one HF region, the sibling region (and the non-edited area)
   shows a normal arrow, not the double-click "pointer" hint. The active
   region's `cursor: text` below wins via later source order. */
.paged-editor--hf-editing .layout-page-header,
.paged-editor--hf-editing .layout-page-footer {
  cursor: default;
}

/* Dotted border on active header area; text caret since it's being edited */
.paged-editor--editing-header .layout-page-header {
  border-bottom: 1px dotted #4285f4;
  cursor: text;
}

/* Dotted border on active footer area; text caret since it's being edited */
.paged-editor--editing-footer .layout-page-footer {
  border-top: 1px dotted #4285f4;
  cursor: text;
}

/*
 * HF editing unification phase 2 (openspec/changes/unify-hf-editing/):
 * we used to hide the painter's HF region during edit and show the inline
 * overlay's PM-rendered `<table>` on top. Now the painter is the sole
 * visible renderer in both modes — the overlay's PM container moves
 * off-screen instead (see InlineHeaderFooterEditor.tsx). Keeping the
 * dotted-border affordance above; everything painter-related stays visible.
 */

/* Remove hover effect on header/footer when in editing mode */
.paged-editor--hf-editing .layout-page-header:hover,
.paged-editor--hf-editing .layout-page-footer:hover {
  background-color: transparent;
}

/* =============================================================================
 * Tracked structural revisions — painter + ProseMirror DOM cues
 *
 * Lives in core because both React and Vue painters/PM trees emit the same
 * class set via toDOM and renderParagraph. Color palette matches the
 * insertion/deletion mark colors (#2e7d32 green, #c62828 red) used by
 * InsertionExtension / DeletionExtension.
 * ============================================================================= */

/* Paragraph mark — painter fragment (renderParagraph.ts) */
.layout-revision-pmark {
  position: relative;
}
.layout-revision-pmark::before {
  content: '';
  position: absolute;
  left: -10px;
  top: 0;
  bottom: 0;
  width: 2px;
  pointer-events: none;
}
.layout-revision-ins.layout-revision-pmark::before {
  background-color: #2e7d32;
}
.layout-revision-del.layout-revision-pmark::before {
  background-color: #c62828;
}
/* Pilcrow glyph — appended into the last line element by the painter so it
   sits inline with the text instead of as a ::after pseudo on the fragment
   (which would render as its own block row below the line). */
.layout-revision-pmark-glyph {
  display: inline;
  margin-left: 2px;
  font-weight: normal;
  opacity: 0.75;
  pointer-events: none;
}
.layout-revision-pmark-glyph.layout-revision-ins {
  color: #2e7d32;
}
.layout-revision-pmark-glyph.layout-revision-del {
  color: #c62828;
  text-decoration: line-through;
}

/* Paragraph mark — hidden ProseMirror DOM (ParagraphExtension toDOM) */
.ep-revision-pmark {
  padding-left: 6px;
  box-shadow: inset 2px 0 0 currentColor;
}
.ep-revision-pmark.ep-revision-ins {
  color: #2e7d32;
}
.ep-revision-pmark.ep-revision-del {
  color: #c62828;
}

/* Tracked row — colored left margin bar. Hidden ProseMirror table uses
   normal block flow so we paint on the per-cell child (one bar per row).
   The painted layout uses absolutely-positioned cells inside a relative
   `.layout-table-row`, so a single ::before pseudo on the row draws one
   continuous bar on the left edge — much cleaner than stamping a bar on
   every cell child. */
.ep-revision-row {
  position: relative;
}
.layout-table-row.ep-revision-row::before {
  content: '';
  position: absolute;
  left: -10px;
  top: 0;
  bottom: 0;
  width: 2px;
  pointer-events: none;
}
.layout-table-row.ep-revision-row.ep-revision-ins::before {
  background-color: #2e7d32;
}
.layout-table-row.ep-revision-row.ep-revision-del::before {
  background-color: #c62828;
}

/* Whole-table tracked insertion / deletion — one tall bar in the page
   margin to the LEFT of the table. Matches the paragraph change-bar
   visual (`.layout-revision-pmark::before`) so the user sees a
   consistent margin indicator for any tracked block. The painter sets
   `overflow: visible` on tracked tables so this pseudo can extend
   beyond the table's own bounds into the page padding area. */
.layout-table.ep-revision-table::before {
  content: '';
  position: absolute;
  left: -10px;
  top: 0;
  bottom: 0;
  width: 2px;
  pointer-events: none;
}
.layout-table.ep-revision-table.ep-revision-ins::before {
  background-color: #2e7d32;
}
.layout-table.ep-revision-table.ep-revision-del::before {
  background-color: #c62828;
}
/* Hidden PM DOM path — kept for the off-screen editing surface. */
.ep-revision-row:not(.layout-table-row).ep-revision-ins > * {
  box-shadow: inset 3px 0 0 #2e7d32;
}
.ep-revision-row:not(.layout-table-row).ep-revision-del > * {
  box-shadow: inset 3px 0 0 #c62828;
  text-decoration: line-through;
  text-decoration-color: rgba(198, 40, 40, 0.6);
}

/* Tracked cell — colored top border + faint background tint */
.ep-revision-cell.ep-revision-ins {
  box-shadow: inset 0 3px 0 #2e7d32;
  background-color: rgba(46, 125, 50, 0.05);
}
.ep-revision-cell.ep-revision-del {
  box-shadow: inset 0 3px 0 #c62828;
  background-color: rgba(198, 40, 40, 0.05);
  text-decoration: line-through;
  text-decoration-color: rgba(198, 40, 40, 0.6);
}
.ep-revision-cell.ep-revision-merge {
  box-shadow: inset 0 3px 0 #5f6368;
  background-color: rgba(95, 99, 104, 0.05);
}

/* Property-change paragraphs/blocks — quiet left margin bar in a neutral
   color so the change is visible without being loud. */
.ep-revision-prop-change {
  box-shadow: inset 2px 0 0 #5f6368;
  padding-left: 6px;
}

/* Block-level Structured Document Tag (content control) boundary.
   The painter lays body fragments as flat absolutely-positioned siblings, so
   the boundary is a single overlay box per control (see renderSdtBoundaryBoxes)
   spanning its fragments at content width — drawn as one rounded rectangle
   like Word, with a corner label chip revealed on hover/focus. The box is
   non-interactive so it never steals clicks from the editable content under it.
   Nested controls each draw their own (slightly inset) box. */
.layout-block-sdt-box {
  pointer-events: none;
  border: 1px solid transparent;
  border-radius: 4px;
  box-sizing: border-box;
  transition: border-color 0.1s ease;
  z-index: 1;
}
.layout-block-sdt-box.is-active,
.layout-block-sdt-box.is-focused {
  border-color: rgba(25, 103, 210, 0.5);
}
/* Corner label chip — hidden until its control is hovered/active. */
.layout-block-sdt-label {
  position: absolute;
  left: -1px;
  bottom: 100%;
  max-width: 160px;
  height: 16px;
  padding: 0 6px;
  font-size: 10px;
  line-height: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #fff;
  background-color: rgba(25, 103, 210, 0.92);
  border-radius: 4px 4px 0 0;
  display: none;
}
.layout-block-sdt-box.is-active .layout-block-sdt-label,
.layout-block-sdt-box.is-focused .layout-block-sdt-label {
  display: block;
}

/* Interactive trigger for typed controls (checkbox/dropdown/date). The box is
   pointer-events:none; the trigger re-enables them so it is clickable. Sits at
   the top-right corner of the control box. */
.layout-sdt-widget {
  position: absolute;
  top: 1px;
  right: 1px;
  min-width: 18px;
  height: 18px;
  padding: 0 3px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  line-height: 1;
  color: #1967d2;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(25, 103, 210, 0.5);
  border-radius: 3px;
  cursor: pointer;
  pointer-events: auto;
  opacity: 0.55;
  transition: opacity 0.1s ease;
}
.layout-block-sdt-box.is-active .layout-sdt-widget,
.layout-block-sdt-box.is-focused .layout-sdt-widget,
.layout-sdt-widget:focus {
  opacity: 1;
}
.layout-sdt-widget:hover {
  background: #e8f0fe;
}

.layout-inline-sdt-widget {
  cursor: pointer;
  pointer-events: auto;
  border-radius: 2px;
  outline-offset: 1px;
  user-select: none;
}
.layout-inline-sdt-widget:hover,
.layout-inline-sdt-widget:focus {
  background: #e8f0fe;
  outline: 1px solid rgba(25, 103, 210, 0.55);
}

/* Popup for dropdown/date content-control widgets (rendered by the adapter). */
.layout-sdt-widget-popup {
  min-width: 120px;
  max-height: 240px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid #dadce0;
  border-radius: 6px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
  padding: 4px;
  font-size: 13px;
}
.layout-sdt-widget-option {
  display: block;
  width: 100%;
  text-align: left;
  padding: 6px 10px;
  border: 0;
  background: transparent;
  border-radius: 4px;
  cursor: pointer;
  color: #202124;
}
.layout-sdt-widget-option:hover {
  background: #e8f0fe;
}
.layout-sdt-widget-empty {
  padding: 6px 10px;
  color: #5f6368;
}
.layout-sdt-widget-date {
  font: inherit;
  padding: 4px 6px;
  border: 1px solid #dadce0;
  border-radius: 4px;
}
.layout-sdt-widget-option.is-selected {
  font-weight: 600;
  background: #f1f3f4;
}

/* Repeating-section item add/remove affordances (bottom-right of the item box). */
.layout-sdt-repeat-controls {
  position: absolute;
  bottom: 1px;
  right: 1px;
  display: flex;
  gap: 2px;
  opacity: 0.55;
  pointer-events: none;
}
.layout-block-sdt-box.is-active .layout-sdt-repeat-controls,
.layout-block-sdt-box.is-focused .layout-sdt-repeat-controls {
  opacity: 1;
}
.layout-sdt-repeat-btn {
  min-width: 16px;
  height: 16px;
  padding: 0 3px;
  font-size: 11px;
  line-height: 1;
  color: #1967d2;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(25, 103, 210, 0.5);
  border-radius: 3px;
  cursor: pointer;
  pointer-events: auto;
}
.layout-sdt-repeat-btn:hover {
  background: #e8f0fe;
}

.ep-root .visible{visibility:visible}.ep-root .invisible{visibility:hidden}.ep-root .collapse{visibility:collapse}.ep-root .static{position:static}.ep-root .fixed{position:fixed}.ep-root .absolute{position:absolute}.ep-root .relative{position:relative}.ep-root .sticky{position:sticky}.ep-root .right-2{right:.5rem}.ep-root .z-50{z-index:50}.ep-root .-mx-1{margin-left:-.25rem;margin-right:-.25rem}.ep-root .mx-1\.5{margin-left:.375rem;margin-right:.375rem}.ep-root .mx-2{margin-left:.5rem;margin-right:.5rem}.ep-root .my-1{margin-bottom:.25rem;margin-top:.25rem}.ep-root .-ml-1{margin-left:-.25rem}.ep-root .mb-1{margin-bottom:.25rem}.ep-root .ml-auto{margin-left:auto}.ep-root .block{display:block}.ep-root .inline-block{display:inline-block}.ep-root .\!inline{display:inline!important}.ep-root .inline{display:inline}.ep-root .flex{display:flex}.ep-root .inline-flex{display:inline-flex}.ep-root .\!table{display:table!important}.ep-root .table{display:table}.ep-root .table-cell{display:table-cell}.ep-root .grid{display:grid}.ep-root .inline-grid{display:inline-grid}.ep-root .contents{display:contents}.ep-root .hidden{display:none}.ep-root .h-10{height:2.5rem}.ep-root .h-11{height:2.75rem}.ep-root .h-3\.5{height:.875rem}.ep-root .h-4{height:1rem}.ep-root .h-5{height:1.25rem}.ep-root .h-6{height:1.5rem}.ep-root .h-7{height:1.75rem}.ep-root .h-8{height:2rem}.ep-root .h-9{height:2.25rem}.ep-root .h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.ep-root .h-px{height:1px}.ep-root .max-h-72{max-height:18rem}.ep-root .max-h-\[300px\]{max-height:300px}.ep-root .max-h-\[400px\]{max-height:400px}.ep-root .min-h-\[36px\]{min-height:36px}.ep-root .w-10{width:2.5rem}.ep-root .w-3\.5{width:.875rem}.ep-root .w-4{width:1rem}.ep-root .w-5{width:1.25rem}.ep-root .w-7{width:1.75rem}.ep-root .w-8{width:2rem}.ep-root .w-9{width:2.25rem}.ep-root .w-full{width:100%}.ep-root .w-px{width:1px}.ep-root .min-w-0{min-width:0}.ep-root .min-w-\[100px\]{min-width:100px}.ep-root .min-w-\[260px\]{min-width:260px}.ep-root .min-w-\[55px\]{min-width:55px}.ep-root .min-w-\[64px\]{min-width:64px}.ep-root .min-w-\[8rem\]{min-width:8rem}.ep-root .min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.ep-root .max-w-\[300px\]{max-width:300px}.ep-root .flex-1{flex:1 1 0%}.ep-root .flex-shrink{flex-shrink:1}.ep-root .flex-shrink-0{flex-shrink:0}.ep-root .shrink{flex-shrink:1}.ep-root .shrink-0{flex-shrink:0}.ep-root .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ep-root .cursor-not-allowed{cursor:not-allowed}.ep-root .cursor-pointer{cursor:pointer}.ep-root .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ep-root .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.ep-root .resize{resize:both}.ep-root .flex-col{flex-direction:column}.ep-root .flex-wrap{flex-wrap:wrap}.ep-root .items-center{align-items:center}.ep-root .items-stretch{align-items:stretch}.ep-root .justify-center{justify-content:center}.ep-root .justify-between{justify-content:space-between}.ep-root .gap-0{gap:0}.ep-root .gap-0\.5{gap:.125rem}.ep-root .gap-1{gap:.25rem}.ep-root .gap-2{gap:.5rem}.ep-root .gap-px{gap:1px}.ep-root .overflow-hidden{overflow:hidden}.ep-root .overflow-x-auto{overflow-x:auto}.ep-root .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ep-root .whitespace-nowrap{white-space:nowrap}.ep-root .rounded{border-radius:.25rem}.ep-root .rounded-full{border-radius:9999px}.ep-root .rounded-lg{border-radius:var(--radius)}.ep-root .rounded-md{border-radius:calc(var(--radius) - 2px)}.ep-root .rounded-none{border-radius:0}.ep-root .rounded-l-none{border-bottom-left-radius:0;border-top-left-radius:0}.ep-root .rounded-r-none{border-bottom-right-radius:0;border-top-right-radius:0}.ep-root .rounded-br-2xl{border-bottom-right-radius:1rem}.ep-root .\!border{border-width:1px!important}.ep-root .border{border-width:1px}.ep-root .border-0{border-width:0}.ep-root .border-r{border-right-width:1px}.ep-root .border-border{--tw-border-opacity:1;border-color:hsl(var(--border)/var(--tw-border-opacity,1))}.ep-root .border-border\/50{border-color:hsl(var(--border)/.5)}.ep-root .border-input{--tw-border-opacity:1;border-color:hsl(var(--input)/var(--tw-border-opacity,1))}.ep-root .bg-background{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity,1))}.ep-root .bg-border{--tw-bg-opacity:1;background-color:hsl(var(--border)/var(--tw-bg-opacity,1))}.ep-root .bg-destructive{--tw-bg-opacity:1;background-color:hsl(var(--destructive)/var(--tw-bg-opacity,1))}.ep-root .bg-doc-bg{background-color:var(--doc-bg)}.ep-root .bg-doc-bg-input{background-color:var(--doc-bg-input)}.ep-root .bg-doc-surface{background-color:var(--doc-surface)}.ep-root .bg-foreground{--tw-bg-opacity:1;background-color:hsl(var(--foreground)/var(--tw-bg-opacity,1))}.ep-root .bg-muted{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.ep-root .bg-popover{--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity,1))}.ep-root .bg-primary{--tw-bg-opacity:1;background-color:hsl(var(--primary)/var(--tw-bg-opacity,1))}.ep-root .bg-secondary{--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity,1))}.ep-root .bg-transparent{background-color:transparent}.ep-root .p-1{padding:.25rem}.ep-root .px-1{padding-left:.25rem;padding-right:.25rem}.ep-root .px-1\.5{padding-left:.375rem;padding-right:.375rem}.ep-root .px-2{padding-left:.5rem;padding-right:.5rem}.ep-root .px-3{padding-left:.75rem;padding-right:.75rem}.ep-root .px-4{padding-left:1rem;padding-right:1rem}.ep-root .px-8{padding-left:2rem;padding-right:2rem}.ep-root .py-0{padding-bottom:0;padding-top:0}.ep-root .py-1{padding-bottom:.25rem;padding-top:.25rem}.ep-root .py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.ep-root .py-2{padding-bottom:.5rem;padding-top:.5rem}.ep-root .py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.ep-root .pb-1{padding-bottom:.25rem}.ep-root .pl-3{padding-left:.75rem}.ep-root .pr-1{padding-right:.25rem}.ep-root .pt-2{padding-top:.5rem}.ep-root .text-left{text-align:left}.ep-root .text-center{text-align:center}.ep-root .text-base{font-size:1rem;line-height:1.5rem}.ep-root .text-sm{font-size:.875rem;line-height:1.25rem}.ep-root .text-xs{font-size:.75rem;line-height:1rem}.ep-root .font-medium{font-weight:500}.ep-root .font-normal{font-weight:400}.ep-root .uppercase{text-transform:uppercase}.ep-root .capitalize{text-transform:capitalize}.ep-root .italic{font-style:italic}.ep-root .leading-tight{line-height:1.25}.ep-root .text-destructive{--tw-text-opacity:1;color:hsl(var(--destructive)/var(--tw-text-opacity,1))}.ep-root .text-destructive-foreground{--tw-text-opacity:1;color:hsl(var(--destructive-foreground)/var(--tw-text-opacity,1))}.ep-root .text-doc-text{color:var(--doc-text)}.ep-root .text-foreground{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.ep-root .text-muted-foreground{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.ep-root .text-popover-foreground{--tw-text-opacity:1;color:hsl(var(--popover-foreground)/var(--tw-text-opacity,1))}.ep-root .text-primary{--tw-text-opacity:1;color:hsl(var(--primary)/var(--tw-text-opacity,1))}.ep-root .text-primary-foreground{--tw-text-opacity:1;color:hsl(var(--primary-foreground)/var(--tw-text-opacity,1))}.ep-root .text-secondary-foreground{--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity,1))}.ep-root .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.ep-root .underline{text-decoration-line:underline}.ep-root .line-through{text-decoration-line:line-through}.ep-root .underline-offset-4{text-underline-offset:4px}.ep-root .opacity-30{opacity:.3}.ep-root .opacity-50{opacity:.5}.ep-root .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.ep-root .shadow-lg,.ep-root .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ep-root .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.ep-root .outline-none{outline:2px solid transparent;outline-offset:2px}.ep-root .outline{outline-style:solid}.ep-root .ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ep-root .ring-offset-background{--tw-ring-offset-color:hsl(var(--background)/1)}.ep-root .blur{--tw-blur:blur(8px)}.ep-root .blur,.ep-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)}.ep-root .transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ep-root .transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ep-root .duration-150{transition-duration:.15s}.ep-root .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ep-root .ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.ep-root .zoom-in{--tw-enter-scale:0}.ep-root .zoom-out{--tw-exit-scale:0}.ep-root .duration-150{animation-duration:.15s}.ep-root .ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ep-root .ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.ep-root .running{animation-play-state:running}.ep-root{--background:0 0% 100%;--foreground:222.2 84% 4.9%;--card:0 0% 100%;--card-foreground:222.2 84% 4.9%;--popover:0 0% 100%;--popover-foreground:222.2 84% 4.9%;--primary:221.2 83.2% 53.3%;--primary-foreground:210 40% 98%;--secondary:210 40% 96.1%;--secondary-foreground:222.2 47.4% 11.2%;--muted:210 40% 96.1%;--muted-foreground:215.4 16.3% 46.9%;--accent:210 40% 96.1%;--accent-foreground:222.2 47.4% 11.2%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:214.3 31.8% 91.4%;--input:214.3 31.8% 91.4%;--ring:221.2 83.2% 53.3%;--radius:0.5rem;--doc-surface:#fff;--doc-card:#f8fbff;--doc-bg:#f8f9fa;--doc-bg-subtle:#f5f5f5;--doc-bg-hover:#f1f3f4;--doc-bg-input:#f8f9fa;--doc-primary:#1a73e8;--doc-primary-hover:#1557b0;--doc-primary-light:#e8f0fe;--doc-accent:#6366f1;--doc-accent-bg:#eef2ff;--doc-on-primary:#fff;--doc-toggle-active-bg:hsl(var(--foreground));--doc-toggle-active-fg:#fff;--doc-text:#202124;--doc-text-muted:#5f6368;--doc-text-subtle:#9aa0a6;--doc-text-placeholder:#999;--doc-border:#e0e0e0;--doc-border-light:#dadce0;--doc-border-dark:#d0d0d0;--doc-border-input:#ccc;--doc-error:#c5221f;--doc-error-bg:#fce8e6;--doc-success:#34a853;--doc-success-bg:#e8f5e9;--doc-warning:#f9a825;--doc-warning-bg:#fff8e1;--doc-warning-text:#856404;--doc-link:#0563c1;--doc-shadow:rgba(0,0,0,.15);--doc-shadow-strong:rgba(0,0,0,.3);--doc-shadow-subtle:rgba(0,0,0,.06);--doc-overlay:rgba(0,0,0,.5);--doc-card-shadow:0 1px 3px rgba(60,64,67,.2),0 2px 6px rgba(60,64,67,.08);--doc-card-shadow-strong:0 1px 3px rgba(60,64,67,.3),0 4px 8px 3px rgba(60,64,67,.15);--doc-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--doc-focus-ring:rgba(26,115,232,.4);--doc-selection:rgba(26,115,232,.3);--doc-scrollbar-size:14px;--doc-scrollbar-thumb:color-mix(in srgb,var(--doc-text-muted) 45%,transparent);--doc-scrollbar-thumb-hover:color-mix(in srgb,var(--doc-text-muted) 65%,transparent);--doc-scrollbar-track:transparent}.ep-root.dark,.ep-root.dark .ep-root{--background:0 0% 12%;--foreground:0 0% 91%;--card:0 0% 18%;--card-foreground:0 0% 91%;--popover:0 0% 18%;--popover-foreground:0 0% 91%;--primary:212 100% 65%;--primary-foreground:0 0% 12%;--secondary:0 0% 20%;--secondary-foreground:0 0% 91%;--muted:0 0% 20%;--muted-foreground:0 0% 63%;--accent:0 0% 23%;--accent-foreground:212 100% 65%;--destructive:0 72% 60%;--destructive-foreground:0 0% 98%;--border:0 0% 24%;--input:0 0% 24%;--ring:212 100% 60%;--doc-surface:#1f1f1f;--doc-card:#2d2d2d;--doc-bg:#262626;--doc-bg-subtle:#2d2d2d;--doc-bg-hover:#3a3a3a;--doc-bg-input:#333;--doc-primary:#4e9dff;--doc-primary-hover:#6cb0ff;--doc-primary-light:rgba(78,157,255,.18);--doc-accent:#4e9dff;--doc-accent-bg:#1f3047;--doc-on-primary:#1f1f1f;--doc-toggle-active-bg:var(--doc-primary-light);--doc-toggle-active-fg:var(--doc-primary);--doc-text:#e8e8e8;--doc-text-muted:#a0a0a0;--doc-text-subtle:#6e6e6e;--doc-text-placeholder:#6e6e6e;--doc-border:#3c3c3c;--doc-border-light:#353535;--doc-border-dark:#555;--doc-border-input:#4a4a4a;--doc-error:#f28b82;--doc-error-bg:#3c1f1d;--doc-success:#81c995;--doc-success-bg:#1f2e22;--doc-warning:#fdd663;--doc-warning-bg:#332a1a;--doc-warning-text:#fdd663;--doc-link:#6eb9ff;--doc-shadow:rgba(0,0,0,.4);--doc-shadow-strong:rgba(0,0,0,.6);--doc-shadow-subtle:rgba(0,0,0,.2);--doc-card-shadow:0 1px 3px rgba(0,0,0,.4),0 2px 6px rgba(0,0,0,.2);--doc-card-shadow-strong:0 1px 3px rgba(0,0,0,.5),0 4px 8px 3px rgba(0,0,0,.3);--doc-shadow-lg:0 10px 15px -3px rgba(0,0,0,.5),0 4px 6px -4px rgba(0,0,0,.5);--doc-overlay:rgba(0,0,0,.7);--doc-focus-ring:rgba(78,157,255,.45);--doc-selection:rgba(78,157,255,.32);--doc-page-bg:#ccc;--doc-caret:#e8e8e8}.ep-root.dark .layout-page{box-shadow:0 0 0 1px rgba(0,0,0,.18)!important;filter:invert(1) hue-rotate(180deg) contrast(.92)}.ep-root.dark .layout-page [data-no-color-invert],.ep-root.dark .layout-page canvas,.ep-root.dark .layout-page img,.ep-root.dark .layout-page svg,.ep-root.dark .layout-page video{filter:invert(1) hue-rotate(180deg)}@media print{.ep-root.dark{--doc-page-bg:#fff}.ep-root.dark .layout-page,.ep-root.dark .layout-page canvas,.ep-root.dark .layout-page img,.ep-root.dark .layout-page svg,.ep-root.dark .layout-page video{filter:none}}.ep-root .docx-editor-vue__pages-viewport,.ep-root .docx-editor__scroll-container{scrollbar-color:var(--doc-scrollbar-thumb) var(--doc-scrollbar-track);scrollbar-width:auto}.ep-root .docx-editor__scroll-container{scrollbar-gutter:stable both-edges}.ep-root .docx-editor-vue__pages-viewport::-webkit-scrollbar,.ep-root .docx-editor__scroll-container::-webkit-scrollbar{height:var(--doc-scrollbar-size);width:var(--doc-scrollbar-size)}.ep-root .docx-editor-vue__pages-viewport::-webkit-scrollbar-track,.ep-root .docx-editor__scroll-container::-webkit-scrollbar-track{background:var(--doc-scrollbar-track)}.ep-root .docx-editor-vue__pages-viewport::-webkit-scrollbar-thumb,.ep-root .docx-editor__scroll-container::-webkit-scrollbar-thumb{background:var(--doc-scrollbar-thumb);background-clip:content-box;border:3px solid transparent;border-radius:9999px}.ep-root .docx-editor-vue__pages-viewport:hover::-webkit-scrollbar-thumb,.ep-root .docx-editor__scroll-container:hover::-webkit-scrollbar-thumb{background:var(--doc-scrollbar-thumb-hover);background-clip:content-box;border:3px solid transparent;border-radius:9999px}[contenteditable=true]{caret-color:#000;outline:none;caret-shape:bar}.docx-run-editable[contenteditable=true]{caret-color:#000;display:inline;min-height:1em}.docx-paragraph-empty [contenteditable=true]{display:inline-block;min-height:1em;min-width:1px}.docx-paragraph-editable{cursor:text}.docx-run-editable[contenteditable=true]:focus{outline:none}.docx-paragraph-editable:focus-within{outline:none}.docx-run ::selection,.docx-run-editable ::selection,.docx-run-editable::selection,.docx-run::selection,[contenteditable=true] ::selection,[contenteditable=true]::selection{background-color:rgba(26,115,232,.3)!important;color:inherit!important}.docx-run ::-moz-selection,.docx-run-editable ::-moz-selection,.docx-run-editable::-moz-selection,.docx-run::-moz-selection,[contenteditable=true] ::-moz-selection,[contenteditable=true]::-moz-selection{background-color:rgba(26,115,232,.3)!important;color:inherit!important}.docx-paragraph ::selection,.docx-paragraph-editable ::selection,.docx-paragraph-editable::selection,.docx-paragraph::selection{background-color:rgba(26,115,232,.3)!important;color:inherit!important}.docx-paragraph ::-moz-selection,.docx-paragraph-editable ::-moz-selection,.docx-paragraph-editable::-moz-selection,.docx-paragraph::-moz-selection{background-color:rgba(26,115,232,.3)!important;color:inherit!important}.docx-hyperlink ::selection,.docx-hyperlink::selection{background-color:rgba(26,115,232,.3)!important;color:inherit!important}.docx-hyperlink ::-moz-selection,.docx-hyperlink::-moz-selection{background-color:rgba(26,115,232,.3)!important;color:inherit!important}.docx-run-highlighted ::selection,.docx-run-highlighted::selection{background-color:rgba(26,115,232,.5)!important;color:inherit!important}.docx-run-highlighted ::-moz-selection,.docx-run-highlighted::-moz-selection{background-color:rgba(26,115,232,.5)!important;color:inherit!important}.docx-run-dark-bg ::selection,.docx-run-dark-bg::selection{background-color:rgba(100,181,246,.5)!important;color:inherit!important}.docx-run-dark-bg ::-moz-selection,.docx-run-dark-bg::-moz-selection{background-color:rgba(100,181,246,.5)!important;color:inherit!important}.docx-run-bold ::selection,.docx-run-bold::selection{background-color:rgba(26,115,232,.3)!important;color:inherit!important}.docx-run-bold ::-moz-selection,.docx-run-bold::-moz-selection{background-color:rgba(26,115,232,.3)!important;color:inherit!important}.docx-run-italic ::selection,.docx-run-italic::selection{background-color:rgba(26,115,232,.3)!important;color:inherit!important}.docx-run-italic ::-moz-selection,.docx-run-italic::-moz-selection{background-color:rgba(26,115,232,.3)!important;color:inherit!important}.docx-find-highlight{background-color:rgba(255,235,59,.5)!important;border-radius:2px}.docx-find-highlight-current{background-color:rgba(255,152,0,.6)!important;border-radius:2px;outline:2px solid rgba(255,152,0,.8)}.docx-ai-selection-preview{background-color:rgba(156,39,176,.2);border-bottom:2px dashed rgba(156,39,176,.6)}.layout-paragraph.docx-paragraph-flash{animation:docx-paragraph-flash-fade var(--docx-paragraph-flash-duration,1.2s) ease-out both}@keyframes docx-paragraph-flash-fade{0%,70%{box-shadow:inset 0 0 0 9999px var(--docx-paragraph-flash-color,rgba(255,235,59,.55))}to{box-shadow:inset 0 0 0 9999px transparent}}.docx-selection-overlay-container{height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.docx-selection-overlay-rect{background-color:rgba(66,133,244,.25);pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.docx-run-highlighted[contenteditable=true]{caret-color:#333}.docx-run-dark-bg[contenteditable=true]{caret-color:#fff}.docx-editor{cursor:default}.docx-editor-page{cursor:text}.docx-bookmark-end,.docx-bookmark-start,.docx-drawing-placeholder,.docx-field,.docx-list-marker,.docx-shape-placeholder{cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.docx-run-has-variable [contenteditable=false]{cursor:default;-webkit-user-select:all;-moz-user-select:all;user-select:all}.layout-table-cell-selected{outline:2px solid rgba(66,133,244,.6);outline-offset:-2px;position:relative}.layout-table-cell-selected:after{background-color:rgba(66,133,244,.15);content:"";inset:0;pointer-events:none;position:absolute}.layout-table-resize-handle{background-color:transparent;transition:background-color .15s}.layout-table-resize-handle.dragging,.layout-table-resize-handle:hover{background-color:rgba(66,133,244,.6)}.layout-table-edge-handle-bottom,.layout-table-row-resize-handle{background-color:transparent;transition:background-color .15s}.layout-table-edge-handle-bottom.dragging,.layout-table-edge-handle-bottom:hover,.layout-table-row-resize-handle.dragging,.layout-table-row-resize-handle:hover{background-color:rgba(66,133,244,.6)}.layout-table-edge-handle-right{background-color:transparent;transition:background-color .15s}.layout-table-edge-handle-right.dragging,.layout-table-edge-handle-right:hover{background-color:rgba(66,133,244,.6)}.paged-editor--readonly .layout-table-edge-handle-bottom,.paged-editor--readonly .layout-table-edge-handle-right,.paged-editor--readonly .layout-table-resize-handle,.paged-editor--readonly .layout-table-row-resize-handle{display:none!important}.paged-editor--readonly .layout-page-footer,.paged-editor--readonly .layout-page-header{cursor:default;pointer-events:none}.paged-editor--readonly .layout-page-content{cursor:default}.docx-outline-heading-btn:hover,.ep-root .ep-toolbar-toggle:hover{background-color:var(--doc-bg-hover)}.ep-root .ep-toolbar-toggle:hover{color:var(--doc-text)}.ep-root .ep-toolbar-toggle[data-active=true],.ep-root .ep-toolbar-toggle[data-active=true]:hover{background-color:var(--doc-toggle-active-bg);color:var(--doc-toggle-active-fg)}.docx-outline-toggle{align-items:center;background:var(--doc-bg-hover);border:1px solid var(--doc-border-light);border-radius:50%;color:var(--doc-text-muted);cursor:pointer;display:flex;height:36px;justify-content:center;transition:background-color .12s ease,color .12s ease,box-shadow .12s ease;width:36px}.docx-outline-toggle:hover{background:var(--doc-border);box-shadow:0 1px 3px rgba(60,64,67,.18);color:var(--doc-text)}.docx-outline-toggle:focus-visible{outline:2px solid var(--doc-primary);outline-offset:2px}.layout-page-content{cursor:text}.layout-block-sdt-box{border:1px solid transparent;border-radius:4px;box-sizing:border-box;pointer-events:none;transition:border-color .1s ease;z-index:1}.layout-block-sdt-box.is-active,.layout-block-sdt-box.is-focused{border-color:rgba(25,103,210,.5)}.layout-block-sdt-label{background-color:rgba(25,103,210,.92);border-radius:4px 4px 0 0;bottom:100%;color:#fff;display:none;font-size:10px;height:16px;left:-1px;line-height:16px;max-width:160px;overflow:hidden;padding:0 6px;position:absolute;text-overflow:ellipsis;white-space:nowrap}.layout-block-sdt-box.is-active .layout-block-sdt-label,.layout-block-sdt-box.is-focused .layout-block-sdt-label{display:block}.layout-page-footer,.layout-page-header{cursor:pointer;transition:background-color .15s ease}.layout-page-footer:hover,.layout-page-header:hover{background-color:rgba(37,99,235,.06)}.layout-page-header:empty:hover:after{content:"Double-click to add header"}.layout-page-footer:empty:hover:after,.layout-page-header:empty:hover:after{color:var(--doc-text-subtle);display:block;font-size:11px;padding:4px 0;text-align:center}.layout-page-footer:empty:hover:after{content:"Double-click to add footer"}.paged-editor--hf-editing .layout-page-content{opacity:.4;pointer-events:none;transition:opacity .15s ease}.paged-editor--hf-editing .layout-page-footer,.paged-editor--hf-editing .layout-page-header{cursor:default}.paged-editor--editing-header .layout-page-header{border-bottom:1px dotted var(--doc-primary);cursor:text}.paged-editor--editing-footer .layout-page-footer{border-top:1px dotted var(--doc-primary);cursor:text}.paged-editor--hf-editing .layout-page-footer:hover,.paged-editor--hf-editing .layout-page-header:hover{background-color:transparent}@keyframes hf-caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.docx-section-break{position:relative}.docx-section-break:after{border-top:1px dashed var(--doc-border);color:var(--doc-text-muted);content:"Section Break (" attr(data-section-break) ")";display:block;font-size:9px;margin-top:4px;padding-top:2px;pointer-events:none;text-align:center}.ep-hyperlink-popup__icon-btn:hover{background:var(--doc-bg-hover)}.paged-editor__decoration-overlay{inset:0;pointer-events:none;position:absolute;z-index:11}.ProseMirror-yjs-cursor{border-left:1px solid;border-right:1px solid;margin-left:-1px;margin-right:-1px;pointer-events:none;position:relative;word-break:normal}.ProseMirror-yjs-cursor>div{border-radius:3px 3px 3px 0;color:#fff;font-size:11px;font-weight:600;left:-1px;line-height:1;padding:2px 4px;pointer-events:none;position:absolute;top:-1.05em;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.layout-sdt-widget{align-items:center;background:hsla(0,0%,100%,.9);border:1px solid rgba(25,103,210,.5);border-radius:3px;color:var(--doc-primary);cursor:pointer;display:inline-flex;font-size:12px;height:18px;justify-content:center;line-height:1;min-width:18px;opacity:.55;padding:0 3px;pointer-events:auto;position:absolute;right:1px;top:1px;transition:opacity .1s ease}.layout-block-sdt-box.is-active .layout-sdt-widget,.layout-block-sdt-box.is-focused .layout-sdt-widget,.layout-sdt-widget:focus{opacity:1}.layout-sdt-widget:hover{background:var(--doc-primary-light)}.layout-inline-sdt-widget{border-radius:2px;cursor:pointer;outline-offset:1px;pointer-events:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}.layout-inline-sdt-widget:focus,.layout-inline-sdt-widget:hover{background:var(--doc-primary-light);outline:1px solid rgba(25,103,210,.55)}.layout-sdt-widget-popup{background:var(--doc-surface);border:1px solid var(--doc-border-light);border-radius:6px;box-shadow:0 2px 10px var(--doc-shadow);font-size:13px;max-height:240px;min-width:120px;overflow-y:auto;padding:4px}.layout-sdt-widget-option{background:transparent;border:0;border-radius:4px;color:var(--doc-text);cursor:pointer;display:block;padding:6px 10px;text-align:left;width:100%}.layout-sdt-widget-option:hover{background:var(--doc-primary-light)}.layout-sdt-widget-empty{color:var(--doc-text-muted);padding:6px 10px}.layout-sdt-widget-date{border:1px solid var(--doc-border-light);border-radius:4px;font:inherit;padding:4px 6px}.layout-sdt-widget-option.is-selected{background:var(--doc-bg-hover);font-weight:600}.layout-sdt-repeat-controls{bottom:1px;display:flex;gap:2px;opacity:.55;pointer-events:none;position:absolute;right:1px}.layout-block-sdt-box.is-active .layout-sdt-repeat-controls,.layout-block-sdt-box.is-focused .layout-sdt-repeat-controls{opacity:1}.layout-sdt-repeat-btn{background:hsla(0,0%,100%,.9);border:1px solid rgba(25,103,210,.5);border-radius:3px;color:var(--doc-primary);cursor:pointer;font-size:11px;height:16px;line-height:1;min-width:16px;padding:0 3px;pointer-events:auto}.layout-sdt-repeat-btn:hover{background:var(--doc-primary-light)}.ep-root .first\:pl-0:first-child{padding-left:0}.ep-root .last\:border-r-0:last-child{border-right-width:0}.ep-root .hover\:border-input:hover{--tw-border-opacity:1;border-color:hsl(var(--input)/var(--tw-border-opacity,1))}.ep-root .hover\:bg-accent:hover{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity,1))}.ep-root .hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.ep-root .hover\:bg-doc-bg-hover:hover{background-color:var(--doc-bg-hover)}.ep-root .hover\:bg-muted:hover{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.ep-root .hover\:bg-muted\/80:hover{background-color:hsl(var(--muted)/.8)}.ep-root .hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.ep-root .hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.ep-root .hover\:text-accent-foreground:hover{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity,1))}.ep-root .hover\:text-foreground:hover{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.ep-root .hover\:underline:hover{text-decoration-line:underline}.ep-root .focus\:bg-doc-bg-input:focus{background-color:var(--doc-bg-input)}.ep-root .focus\:bg-muted:focus{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.ep-root .focus\:bg-muted\/80:focus{background-color:hsl(var(--muted)/.8)}.ep-root .focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.ep-root .focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ep-root .focus\:ring-ring:focus{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--ring)/var(--tw-ring-opacity,1))}.ep-root .focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.ep-root .focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ep-root .focus-visible\:ring-ring:focus-visible{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--ring)/var(--tw-ring-opacity,1))}.ep-root .focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.ep-root .disabled\:pointer-events-none:disabled{pointer-events:none}.ep-root .disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.ep-root .disabled\:opacity-50:disabled{opacity:.5}.ep-root .data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.ep-root .data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.ep-root .data-\[side\=bottom\]\:translate-y-1[data-side=bottom],.ep-root .data-\[side\=top\]\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ep-root .data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.ep-root .data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.ep-root .data-\[state\=open\]\:animate-in[data-state=open]{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.ep-root .data-\[state\=closed\]\:animate-out[data-state=closed]{animation-duration:.15s;animation-name:exit;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.ep-root .data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.ep-root .data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.ep-root .data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.ep-root .data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.ep-root .data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.ep-root .data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.ep-root .dark\:bg-muted:is(.dark *){--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.ep-root .dark\:text-foreground:is(.dark *){--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.ep-root :is(.\[\&\>span\]\:truncate>span){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root, :host {
  --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free';
  --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free';
  --fa-font-light: normal 300 1em/1 'Font Awesome 6 Pro';
  --fa-font-thin: normal 100 1em/1 'Font Awesome 6 Pro';
  --fa-font-duotone: normal 900 1em/1 'Font Awesome 6 Duotone';
  --fa-font-duotone-regular: normal 400 1em/1 'Font Awesome 6 Duotone';
  --fa-font-duotone-light: normal 300 1em/1 'Font Awesome 6 Duotone';
  --fa-font-duotone-thin: normal 100 1em/1 'Font Awesome 6 Duotone';
  --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands';
  --fa-font-sharp-solid: normal 900 1em/1 'Font Awesome 6 Sharp';
  --fa-font-sharp-regular: normal 400 1em/1 'Font Awesome 6 Sharp';
  --fa-font-sharp-light: normal 300 1em/1 'Font Awesome 6 Sharp';
  --fa-font-sharp-thin: normal 100 1em/1 'Font Awesome 6 Sharp';
  --fa-font-sharp-duotone-solid: normal 900 1em/1 'Font Awesome 6 Sharp Duotone';
  --fa-font-sharp-duotone-regular: normal 400 1em/1 'Font Awesome 6 Sharp Duotone';
  --fa-font-sharp-duotone-light: normal 300 1em/1 'Font Awesome 6 Sharp Duotone';
  --fa-font-sharp-duotone-thin: normal 100 1em/1 'Font Awesome 6 Sharp Duotone'; }

svg.svg-inline--fa:not(:root), svg.svg-inline--fa:not(:host) {
  overflow: visible;
  box-sizing: content-box; }

.svg-inline--fa {
  display: var(--fa-display, inline-block);
  height: 1em;
  overflow: visible;
  vertical-align: -.125em; }
  .svg-inline--fa.fa-2xs {
    vertical-align: 0.1em; }
  .svg-inline--fa.fa-xs {
    vertical-align: 0em; }
  .svg-inline--fa.fa-sm {
    vertical-align: -0.07143em; }
  .svg-inline--fa.fa-lg {
    vertical-align: -0.2em; }
  .svg-inline--fa.fa-xl {
    vertical-align: -0.25em; }
  .svg-inline--fa.fa-2xl {
    vertical-align: -0.3125em; }
  .svg-inline--fa.fa-pull-left {
    margin-right: var(--fa-pull-margin, 0.3em);
    width: auto; }
  .svg-inline--fa.fa-pull-right {
    margin-left: var(--fa-pull-margin, 0.3em);
    width: auto; }
  .svg-inline--fa.fa-li {
    width: var(--fa-li-width, 2em);
    top: 0.25em; }
  .svg-inline--fa.fa-fw {
    width: var(--fa-fw-width, 1.25em); }

.fa-layers svg.svg-inline--fa {
  bottom: 0;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0; }

.fa-layers-counter, .fa-layers-text {
  display: inline-block;
  position: absolute;
  text-align: center; }

.fa-layers {
  display: inline-block;
  height: 1em;
  position: relative;
  text-align: center;
  vertical-align: -.125em;
  width: 1em; }
  .fa-layers svg.svg-inline--fa {
    transform-origin: center center; }

.fa-layers-text {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  transform-origin: center center; }

.fa-layers-counter {
  background-color: var(--fa-counter-background-color, #ff253a);
  border-radius: var(--fa-counter-border-radius, 1em);
  box-sizing: border-box;
  color: var(--fa-inverse, #fff);
  line-height: var(--fa-counter-line-height, 1);
  max-width: var(--fa-counter-max-width, 5em);
  min-width: var(--fa-counter-min-width, 1.5em);
  overflow: hidden;
  padding: var(--fa-counter-padding, 0.25em 0.5em);
  right: var(--fa-right, 0);
  text-overflow: ellipsis;
  top: var(--fa-top, 0);
  transform: scale(var(--fa-counter-scale, 0.25));
  transform-origin: top right; }

.fa-layers-bottom-right {
  bottom: var(--fa-bottom, 0);
  right: var(--fa-right, 0);
  top: auto;
  transform: scale(var(--fa-layers-scale, 0.25));
  transform-origin: bottom right; }

.fa-layers-bottom-left {
  bottom: var(--fa-bottom, 0);
  left: var(--fa-left, 0);
  right: auto;
  top: auto;
  transform: scale(var(--fa-layers-scale, 0.25));
  transform-origin: bottom left; }

.fa-layers-top-right {
  top: var(--fa-top, 0);
  right: var(--fa-right, 0);
  transform: scale(var(--fa-layers-scale, 0.25));
  transform-origin: top right; }

.fa-layers-top-left {
  left: var(--fa-left, 0);
  right: auto;
  top: var(--fa-top, 0);
  transform: scale(var(--fa-layers-scale, 0.25));
  transform-origin: top left; }

.fa-1x {
  font-size: 1em; }

.fa-2x {
  font-size: 2em; }

.fa-3x {
  font-size: 3em; }

.fa-4x {
  font-size: 4em; }

.fa-5x {
  font-size: 5em; }

.fa-6x {
  font-size: 6em; }

.fa-7x {
  font-size: 7em; }

.fa-8x {
  font-size: 8em; }

.fa-9x {
  font-size: 9em; }

.fa-10x {
  font-size: 10em; }

.fa-2xs {
  font-size: 0.625em;
  line-height: 0.1em;
  vertical-align: 0.225em; }

.fa-xs {
  font-size: 0.75em;
  line-height: 0.08333em;
  vertical-align: 0.125em; }

.fa-sm {
  font-size: 0.875em;
  line-height: 0.07143em;
  vertical-align: 0.05357em; }

.fa-lg {
  font-size: 1.25em;
  line-height: 0.05em;
  vertical-align: -0.075em; }

.fa-xl {
  font-size: 1.5em;
  line-height: 0.04167em;
  vertical-align: -0.125em; }

.fa-2xl {
  font-size: 2em;
  line-height: 0.03125em;
  vertical-align: -0.1875em; }

.fa-fw {
  text-align: center;
  width: 1.25em; }

.fa-ul {
  list-style-type: none;
  margin-left: var(--fa-li-margin, 2.5em);
  padding-left: 0; }
  .fa-ul > li {
    position: relative; }

.fa-li {
  left: calc(-1 * var(--fa-li-width, 2em));
  position: absolute;
  text-align: center;
  width: var(--fa-li-width, 2em);
  line-height: inherit; }

.fa-border {
  border-color: var(--fa-border-color, #eee);
  border-radius: var(--fa-border-radius, 0.1em);
  border-style: var(--fa-border-style, solid);
  border-width: var(--fa-border-width, 0.08em);
  padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }

.fa-pull-left {
  float: left;
  margin-right: var(--fa-pull-margin, 0.3em); }

.fa-pull-right {
  float: right;
  margin-left: var(--fa-pull-margin, 0.3em); }

.fa-beat {
  animation-name: fa-beat;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, ease-in-out); }

.fa-bounce {
  animation-name: fa-bounce;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }

.fa-fade {
  animation-name: fa-fade;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }

.fa-beat-fade {
  animation-name: fa-beat-fade;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }

.fa-flip {
  animation-name: fa-flip;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, ease-in-out); }

.fa-shake {
  animation-name: fa-shake;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, linear); }

.fa-spin {
  animation-name: fa-spin;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 2s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, linear); }

.fa-spin-reverse {
  --fa-animation-direction: reverse; }

.fa-pulse,
.fa-spin-pulse {
  animation-name: fa-spin;
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, steps(8)); }

@media (prefers-reduced-motion: reduce) {
  .fa-beat,
  .fa-bounce,
  .fa-fade,
  .fa-beat-fade,
  .fa-flip,
  .fa-pulse,
  .fa-shake,
  .fa-spin,
  .fa-spin-pulse {
    animation-delay: -1ms;
    animation-duration: 1ms;
    animation-iteration-count: 1;
    transition-delay: 0s;
    transition-duration: 0s; } }

@keyframes fa-beat {
  0%, 90% {
    transform: scale(1); }
  45% {
    transform: scale(var(--fa-beat-scale, 1.25)); } }

@keyframes fa-bounce {
  0% {
    transform: scale(1, 1) translateY(0); }
  10% {
    transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
  30% {
    transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
  50% {
    transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
  57% {
    transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
  64% {
    transform: scale(1, 1) translateY(0); }
  100% {
    transform: scale(1, 1) translateY(0); } }

@keyframes fa-fade {
  50% {
    opacity: var(--fa-fade-opacity, 0.4); } }

@keyframes fa-beat-fade {
  0%, 100% {
    opacity: var(--fa-beat-fade-opacity, 0.4);
    transform: scale(1); }
  50% {
    opacity: 1;
    transform: scale(var(--fa-beat-fade-scale, 1.125)); } }

@keyframes fa-flip {
  50% {
    transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }

@keyframes fa-shake {
  0% {
    transform: rotate(-15deg); }
  4% {
    transform: rotate(15deg); }
  8%, 24% {
    transform: rotate(-18deg); }
  12%, 28% {
    transform: rotate(18deg); }
  16% {
    transform: rotate(-22deg); }
  20% {
    transform: rotate(22deg); }
  32% {
    transform: rotate(-12deg); }
  36% {
    transform: rotate(12deg); }
  40%, 100% {
    transform: rotate(0deg); } }

@keyframes fa-spin {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }

.fa-rotate-90 {
  transform: rotate(90deg); }

.fa-rotate-180 {
  transform: rotate(180deg); }

.fa-rotate-270 {
  transform: rotate(270deg); }

.fa-flip-horizontal {
  transform: scale(-1, 1); }

.fa-flip-vertical {
  transform: scale(1, -1); }

.fa-flip-both,
.fa-flip-horizontal.fa-flip-vertical {
  transform: scale(-1, -1); }

.fa-rotate-by {
  transform: rotate(var(--fa-rotate-angle, 0)); }

.fa-stack {
  display: inline-block;
  vertical-align: middle;
  height: 2em;
  position: relative;
  width: 2.5em; }

.fa-stack-1x,
.fa-stack-2x {
  bottom: 0;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  z-index: var(--fa-stack-z-index, auto); }

.svg-inline--fa.fa-stack-1x {
  height: 1em;
  width: 1.25em; }

.svg-inline--fa.fa-stack-2x {
  height: 2em;
  width: 2.5em; }

.fa-inverse {
  color: var(--fa-inverse, #fff); }

.sr-only,
.fa-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0; }

.sr-only-focusable:not(:focus),
.fa-sr-only-focusable:not(:focus) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0; }

.svg-inline--fa .fa-primary {
  fill: var(--fa-primary-color, currentColor);
  opacity: var(--fa-primary-opacity, 1); }

.svg-inline--fa .fa-secondary {
  fill: var(--fa-secondary-color, currentColor);
  opacity: var(--fa-secondary-opacity, 0.4); }

.svg-inline--fa.fa-swap-opacity .fa-primary {
  opacity: var(--fa-secondary-opacity, 0.4); }

.svg-inline--fa.fa-swap-opacity .fa-secondary {
  opacity: var(--fa-primary-opacity, 1); }

.svg-inline--fa mask .fa-primary,
.svg-inline--fa mask .fa-secondary {
  fill: black; }

