/* FLOW-437: AI-formatted pasted review documents.
   Numbers live in the HTML. Rules are scoped to ai-formatted-* provenance
   so historical/open e-sign documents that use document-title are not restyled. */

.preview-paper h1.document-title.ai-formatted-title,
.preview-content h1.document-title.ai-formatted-title,
.final-document-paper h1.document-title.ai-formatted-title,
.contract-document h1.document-title.ai-formatted-title,
.embed-document h1.document-title.ai-formatted-title {
  font-size: 1.55em;
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 0.55em;
  letter-spacing: 0.01em;
  overflow-wrap: anywhere;
  max-width: 100%;
}

.preview-paper .document-meta.ai-formatted-metadata,
.preview-content .document-meta.ai-formatted-metadata,
.final-document-paper .document-meta.ai-formatted-metadata,
.contract-document .document-meta.ai-formatted-metadata,
.embed-document .document-meta.ai-formatted-metadata {
  margin: 0 0 1.05em;
  font-size: 0.92em;
  opacity: 0.82;
  overflow-wrap: anywhere;
  max-width: 100%;
}

.preview-paper .preamble.ai-formatted-preamble,
.preview-content .preamble.ai-formatted-preamble,
.final-document-paper .preamble.ai-formatted-preamble,
.contract-document .preamble.ai-formatted-preamble,
.embed-document .preamble.ai-formatted-preamble {
  margin: 0 0 0.95em;
  overflow-wrap: anywhere;
  max-width: 100%;
}

.preview-paper .ai-formatted-section,
.preview-content .ai-formatted-section,
.final-document-paper .ai-formatted-section,
.contract-document .ai-formatted-section,
.embed-document .ai-formatted-section,
.preview-paper .ai-formatted-clause,
.preview-content .ai-formatted-clause,
.final-document-paper .ai-formatted-clause,
.contract-document .ai-formatted-clause,
.embed-document .ai-formatted-clause {
  padding-left: 3.4em;
  text-indent: -3.4em;
  overflow-wrap: anywhere;
  max-width: 100%;
}

.preview-paper .ai-formatted-section,
.preview-content .ai-formatted-section,
.final-document-paper .ai-formatted-section,
.contract-document .ai-formatted-section,
.embed-document .ai-formatted-section {
  margin-top: 1.15em;
  margin-bottom: 0.55em;
  break-after: avoid;
  page-break-after: avoid;
}

.preview-paper .ai-formatted-section + .ai-formatted-clause,
.preview-content .ai-formatted-section + .ai-formatted-clause,
.final-document-paper .ai-formatted-section + .ai-formatted-clause,
.contract-document .ai-formatted-section + .ai-formatted-clause,
.embed-document .ai-formatted-section + .ai-formatted-clause {
  break-before: avoid;
  page-break-before: avoid;
}

.preview-paper .ai-formatted-section .section-number,
.preview-content .ai-formatted-section .section-number,
.final-document-paper .ai-formatted-section .section-number,
.contract-document .ai-formatted-section .section-number,
.embed-document .ai-formatted-section .section-number,
.preview-paper .ai-formatted-clause .item-number,
.preview-content .ai-formatted-clause .item-number,
.final-document-paper .ai-formatted-clause .item-number,
.contract-document .ai-formatted-clause .item-number,
.embed-document .ai-formatted-clause .item-number {
  display: inline-block;
  /* min-width + margin-right must equal the 3.4em hanging indent so the first
     line of a clause starts on the same gutter as its wrapped lines. */
  min-width: 2.95em;
  margin-right: 0.45em;
  text-indent: 0;
  font-weight: 700;
}

.preview-paper .ai-formatted-list,
.preview-content .ai-formatted-list,
.final-document-paper .ai-formatted-list,
.contract-document .ai-formatted-list,
.embed-document .ai-formatted-list {
  list-style: none;
  margin-top: 0.15em;
  margin-bottom: 0.9em;
  margin-left: 3.4em;
  padding-left: 1.15em;
  overflow-wrap: anywhere;
  max-width: 100%;
}

.preview-paper .ai-formatted-clause + .ai-formatted-list,
.preview-content .ai-formatted-clause + .ai-formatted-list,
.final-document-paper .ai-formatted-clause + .ai-formatted-list,
.contract-document .ai-formatted-clause + .ai-formatted-list,
.embed-document .ai-formatted-clause + .ai-formatted-list,
.preview-paper .ai-formatted-clause + ul,
.preview-content .ai-formatted-clause + ul,
.final-document-paper .ai-formatted-clause + ul,
.contract-document .ai-formatted-clause + ul,
.embed-document .ai-formatted-clause + ul,
.preview-paper .ai-formatted-clause + ol,
.preview-content .ai-formatted-clause + ol,
.final-document-paper .ai-formatted-clause + ol,
.contract-document .ai-formatted-clause + ol,
.embed-document .ai-formatted-clause + ol {
  margin-top: 0.15em;
  margin-bottom: 0.9em;
  margin-left: 3.4em;
  padding-left: 1.15em;
}

.preview-paper .ai-formatted-section.has-suggestion,
.preview-content .ai-formatted-section.has-suggestion,
.final-document-paper .ai-formatted-section.has-suggestion,
.contract-document .ai-formatted-section.has-suggestion,
.embed-document .ai-formatted-section.has-suggestion,
.preview-paper .ai-formatted-clause.has-suggestion,
.preview-content .ai-formatted-clause.has-suggestion,
.final-document-paper .ai-formatted-clause.has-suggestion,
.contract-document .ai-formatted-clause.has-suggestion,
.embed-document .ai-formatted-clause.has-suggestion {
  padding-left: calc(3.4em + 8px);
  text-indent: -3.4em;
}

.preview-paper .ai-formatted-clause.has-suggestion + ul,
.preview-content .ai-formatted-clause.has-suggestion + ul,
.final-document-paper .ai-formatted-clause.has-suggestion + ul,
.contract-document .ai-formatted-clause.has-suggestion + ul,
.embed-document .ai-formatted-clause.has-suggestion + ul,
.preview-paper .ai-formatted-clause.has-suggestion + ol,
.preview-content .ai-formatted-clause.has-suggestion + ol,
.final-document-paper .ai-formatted-clause.has-suggestion + ol,
.contract-document .ai-formatted-clause.has-suggestion + ol,
.embed-document .ai-formatted-clause.has-suggestion + ol,
.preview-paper .ai-formatted-clause.has-suggestion + .ai-formatted-list,
.preview-content .ai-formatted-clause.has-suggestion + .ai-formatted-list,
.final-document-paper .ai-formatted-clause.has-suggestion + .ai-formatted-list,
.contract-document .ai-formatted-clause.has-suggestion + .ai-formatted-list,
.embed-document .ai-formatted-clause.has-suggestion + .ai-formatted-list {
  margin-left: 3.4em;
}

/* FLOW-437 nested lists: a validated sub-list stays inside its owning item,
   is visibly subordinate, and keeps exactly one marker. Items whose markers
   come from the paste suppress the native marker; items the paste never
   marked keep a server-owned native marker instead. */
.preview-paper .ai-formatted-list.ai-list-source-marker,
.preview-content .ai-formatted-list.ai-list-source-marker,
.final-document-paper .ai-formatted-list.ai-list-source-marker,
.contract-document .ai-formatted-list.ai-list-source-marker,
.embed-document .ai-formatted-list.ai-list-source-marker {
  list-style: none;
}

.preview-paper .ai-formatted-list.ai-list-auto-marker,
.preview-content .ai-formatted-list.ai-list-auto-marker,
.final-document-paper .ai-formatted-list.ai-list-auto-marker,
.contract-document .ai-formatted-list.ai-list-auto-marker,
.embed-document .ai-formatted-list.ai-list-auto-marker {
  list-style: disc outside;
}

.preview-paper ol.ai-formatted-list.ai-list-auto-marker,
.preview-content ol.ai-formatted-list.ai-list-auto-marker,
.final-document-paper ol.ai-formatted-list.ai-list-auto-marker,
.contract-document ol.ai-formatted-list.ai-list-auto-marker,
.embed-document ol.ai-formatted-list.ai-list-auto-marker {
  list-style: decimal outside;
}

.preview-paper .ai-formatted-list .ai-formatted-list,
.preview-content .ai-formatted-list .ai-formatted-list,
.final-document-paper .ai-formatted-list .ai-formatted-list,
.contract-document .ai-formatted-list .ai-formatted-list,
.embed-document .ai-formatted-list .ai-formatted-list {
  margin-top: 0.3em;
  margin-bottom: 0.3em;
  margin-left: 0;
  padding-left: 1.6em;
}

.preview-paper .ai-formatted-list .ai-formatted-list.ai-list-auto-marker,
.preview-content .ai-formatted-list .ai-formatted-list.ai-list-auto-marker,
.final-document-paper .ai-formatted-list .ai-formatted-list.ai-list-auto-marker,
.contract-document .ai-formatted-list .ai-formatted-list.ai-list-auto-marker,
.embed-document .ai-formatted-list .ai-formatted-list.ai-list-auto-marker {
  list-style: circle outside;
}

.preview-paper ol.ai-formatted-list ol.ai-formatted-list.ai-list-auto-marker,
.preview-content ol.ai-formatted-list ol.ai-formatted-list.ai-list-auto-marker,
.final-document-paper ol.ai-formatted-list ol.ai-formatted-list.ai-list-auto-marker,
.contract-document ol.ai-formatted-list ol.ai-formatted-list.ai-list-auto-marker,
.embed-document ol.ai-formatted-list ol.ai-formatted-list.ai-list-auto-marker {
  list-style: lower-alpha outside;
}

.preview-paper .ai-formatted-list-item,
.preview-content .ai-formatted-list-item,
.final-document-paper .ai-formatted-list-item,
.contract-document .ai-formatted-list-item,
.embed-document .ai-formatted-list-item {
  margin-bottom: 0.3em;
  overflow-wrap: anywhere;
}

@media (max-width: 390px) {
  .preview-paper .ai-formatted-section,
  .preview-content .ai-formatted-section,
  .final-document-paper .ai-formatted-section,
  .contract-document .ai-formatted-section,
  .embed-document .ai-formatted-section,
  .preview-paper .ai-formatted-clause,
  .preview-content .ai-formatted-clause,
  .final-document-paper .ai-formatted-clause,
  .contract-document .ai-formatted-clause,
  .embed-document .ai-formatted-clause {
    padding-left: 2.45em;
    text-indent: -2.45em;
  }

  .preview-paper .ai-formatted-section .section-number,
  .preview-content .ai-formatted-section .section-number,
  .final-document-paper .ai-formatted-section .section-number,
  .contract-document .ai-formatted-section .section-number,
  .embed-document .ai-formatted-section .section-number,
  .preview-paper .ai-formatted-clause .item-number,
  .preview-content .ai-formatted-clause .item-number,
  .final-document-paper .ai-formatted-clause .item-number,
  .contract-document .ai-formatted-clause .item-number,
  .embed-document .ai-formatted-clause .item-number {
    /* 2.1em + 0.35em == the 2.45em narrow-viewport hanging indent. */
    min-width: 2.1em;
    margin-right: 0.35em;
  }

  .preview-paper .ai-formatted-list,
  .preview-content .ai-formatted-list,
  .final-document-paper .ai-formatted-list,
  .contract-document .ai-formatted-list,
  .embed-document .ai-formatted-list,
  .preview-paper .ai-formatted-clause + ul,
  .preview-content .ai-formatted-clause + ul,
  .final-document-paper .ai-formatted-clause + ul,
  .contract-document .ai-formatted-clause + ul,
  .embed-document .ai-formatted-clause + ul,
  .preview-paper .ai-formatted-clause + ol,
  .preview-content .ai-formatted-clause + ol,
  .final-document-paper .ai-formatted-clause + ol,
  .contract-document .ai-formatted-clause + ol,
  .embed-document .ai-formatted-clause + ol {
    margin-left: 2.45em;
  }


  .preview-paper .ai-formatted-list .ai-formatted-list,
  .preview-content .ai-formatted-list .ai-formatted-list,
  .final-document-paper .ai-formatted-list .ai-formatted-list,
  .contract-document .ai-formatted-list .ai-formatted-list,
  .embed-document .ai-formatted-list .ai-formatted-list {
    padding-left: 1.35em;
  }
  .preview-paper .ai-formatted-section.has-suggestion,
  .preview-content .ai-formatted-section.has-suggestion,
  .final-document-paper .ai-formatted-section.has-suggestion,
  .contract-document .ai-formatted-section.has-suggestion,
  .embed-document .ai-formatted-section.has-suggestion,
  .preview-paper .ai-formatted-clause.has-suggestion,
  .preview-content .ai-formatted-clause.has-suggestion,
  .final-document-paper .ai-formatted-clause.has-suggestion,
  .contract-document .ai-formatted-clause.has-suggestion,
  .embed-document .ai-formatted-clause.has-suggestion {
    padding-left: calc(2.45em + 8px);
    text-indent: -2.45em;
  }
}

@media print {
  .preview-paper .ai-formatted-section,
  .preview-content .ai-formatted-section,
  .final-document-paper .ai-formatted-section,
  .contract-document .ai-formatted-section,
  .embed-document .ai-formatted-section,
  .preview-paper .ai-formatted-clause,
  .preview-content .ai-formatted-clause,
  .final-document-paper .ai-formatted-clause,
  .contract-document .ai-formatted-clause,
  .embed-document .ai-formatted-clause {
    padding-left: 3.1em;
    text-indent: -3.1em;
    page-break-inside: avoid;
    break-inside: avoid;
  }
}

@media print {
  .preview-paper .ai-formatted-section .section-number,
  .preview-content .ai-formatted-section .section-number,
  .final-document-paper .ai-formatted-section .section-number,
  .contract-document .ai-formatted-section .section-number,
  .embed-document .ai-formatted-section .section-number,
  .preview-paper .ai-formatted-clause .item-number,
  .preview-content .ai-formatted-clause .item-number,
  .final-document-paper .ai-formatted-clause .item-number,
  .contract-document .ai-formatted-clause .item-number,
  .embed-document .ai-formatted-clause .item-number {
    /* 2.65em + 0.45em == the 3.1em print hanging indent. */
    min-width: 2.65em;
    margin-right: 0.45em;
  }
}


/* FLOW-409: equity schedules (cap table / option grant) in generated documents.
   Fixed layout + colgroup widths (set inline, total 100%) so a long name wraps
   inside its column instead of pushing the table off a narrow viewport. */
.preview-paper .equity-schedule-block,
.preview-content .equity-schedule-block,
.final-document-paper .equity-schedule-block,
.contract-document .equity-schedule-block,
.embed-document .equity-schedule-block {
  margin: 0.75em 0 1em;
  max-width: 100%;
}

.preview-paper .equity-schedule,
.preview-content .equity-schedule,
.final-document-paper .equity-schedule,
.contract-document .equity-schedule,
.embed-document .equity-schedule {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  margin: 0.5em 0 1em;
  font-size: 0.92em;
}

.preview-paper .equity-schedule caption,
.preview-content .equity-schedule caption,
.final-document-paper .equity-schedule caption,
.contract-document .equity-schedule caption,
.embed-document .equity-schedule caption {
  caption-side: top;
  text-align: left;
  font-weight: 700;
  padding: 0 0 0.35em;
}

.preview-paper .equity-schedule th,
.preview-paper .equity-schedule td,
.preview-content .equity-schedule th,
.preview-content .equity-schedule td,
.final-document-paper .equity-schedule th,
.final-document-paper .equity-schedule td,
.contract-document .equity-schedule th,
.contract-document .equity-schedule td,
.embed-document .equity-schedule th,
.embed-document .equity-schedule td {
  border: 1px solid rgba(127, 127, 127, 0.45);
  padding: 0.35em 0.5em;
  vertical-align: top;
  text-align: left;
  overflow-wrap: break-word;
  word-break: normal;
  white-space: normal;
}

.preview-paper .equity-schedule th,
.preview-content .equity-schedule th,
.final-document-paper .equity-schedule th,
.contract-document .equity-schedule th,
.embed-document .equity-schedule th {
  font-weight: 700;
  font-size: 0.85em;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.preview-paper .equity-schedule .equity-num,
.preview-content .equity-schedule .equity-num,
.final-document-paper .equity-schedule .equity-num,
.contract-document .equity-schedule .equity-num,
.embed-document .equity-schedule .equity-num {
  text-align: right;
}

.preview-paper .equity-schedule--grant th[scope="row"],
.preview-content .equity-schedule--grant th[scope="row"],
.final-document-paper .equity-schedule--grant th[scope="row"],
.contract-document .equity-schedule--grant th[scope="row"],
.embed-document .equity-schedule--grant th[scope="row"] {
  text-transform: none;
  font-size: inherit;
}

.preview-paper .equity-schedule-empty,
.preview-content .equity-schedule-empty,
.final-document-paper .equity-schedule-empty,
.contract-document .equity-schedule-empty,
.embed-document .equity-schedule-empty {
  margin: 0.5em 0 1em;
  padding: 0.5em 0.75em;
  border: 1px solid rgba(127, 127, 127, 0.45);
}

/* FLOW-409: the schedule's horizontal scroll on a phone.
   `.contract-document table { display: block; overflow-x: auto }` already lets
   any wide generated table scroll below 390px, but an unnamed scrolling table
   is invisible to a screen reader and unreachable by keyboard, and losing
   `display: table` also throws away the fixed layout. The schedule therefore
   scrolls inside a named region while the table stays a table. */
.preview-paper .equity-schedule-scroll,
.preview-content .equity-schedule-scroll,
.final-document-paper .equity-schedule-scroll,
.contract-document .equity-schedule-scroll,
.embed-document .equity-schedule-scroll {
  max-width: 100%;
}

@media screen and (max-width: 640px) {
  .preview-paper .equity-schedule-scroll,
  .preview-content .equity-schedule-scroll,
  .final-document-paper .equity-schedule-scroll,
  .contract-document .equity-schedule-scroll,
  .embed-document .equity-schedule-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .preview-paper .equity-schedule-scroll .equity-schedule,
  .preview-content .equity-schedule-scroll .equity-schedule,
  .final-document-paper .equity-schedule-scroll .equity-schedule,
  .contract-document .equity-schedule-scroll .equity-schedule,
  .embed-document .equity-schedule-scroll .equity-schedule {
    display: table;
    /* Narrower than this and the columns break mid-word. */
    min-width: 34em;
  }

  .preview-paper .equity-schedule-scroll:focus-visible,
  .preview-content .equity-schedule-scroll:focus-visible,
  .final-document-paper .equity-schedule-scroll:focus-visible,
  .contract-document .equity-schedule-scroll:focus-visible,
  .embed-document .equity-schedule-scroll:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
  }
}
