/* Finite RichTextFormats policy. Explicit classes outrank heading defaults. */
.rich-text-editor .ql-editor h2 { font: 700 2rem/1.3 Georgia, serif; }
.rich-text-editor .ql-editor h3 { font: 700 1.5rem/1.3 Georgia, serif; }
.rich-text-editor .ql-editor h4 { font: 700 1.25rem/1.3 Georgia, serif; }
.rich-text-editor .ql-editor h5 { font: 700 1.125rem/1.3 Georgia, serif; }
.rich-text-editor .ql-editor h6 { font: 700 1rem/1.3 Georgia, serif; }

:is(.prose, .rich-text-editor .ql-editor) .ql-font-arial { font-family: Arial, Helvetica, sans-serif; }
:is(.prose, .rich-text-editor .ql-editor) .ql-font-georgia { font-family: Georgia, serif; }
:is(.prose, .rich-text-editor .ql-editor) .ql-font-times { font-family: "Times New Roman", Times, serif; }
:is(.prose, .rich-text-editor .ql-editor) .ql-font-verdana { font-family: Verdana, Geneva, sans-serif; }
:is(.prose, .rich-text-editor .ql-editor) .ql-font-tahoma { font-family: Tahoma, Geneva, sans-serif; }
:is(.prose, .rich-text-editor .ql-editor) .ql-font-trebuchet { font-family: "Trebuchet MS", Helvetica, sans-serif; }
:is(.prose, .rich-text-editor .ql-editor) .ql-font-monospace { font-family: "Courier New", Courier, monospace; }

:is(.prose, .rich-text-editor .ql-editor) .ql-size-12 { font-size: 12px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-14 { font-size: 14px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-16 { font-size: 16px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-18 { font-size: 18px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-20 { font-size: 20px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-24 { font-size: 24px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-28 { font-size: 28px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-32 { font-size: 32px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-36 { font-size: 36px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-40 { font-size: 40px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-48 { font-size: 48px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-56 { font-size: 56px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-64 { font-size: 64px; }
:is(.prose, .rich-text-editor .ql-editor) .ql-size-72 { font-size: 72px; }

:is(.prose, .rich-text-editor .ql-editor) .ql-color-ink { color: #182820; }
:is(.prose, .rich-text-editor .ql-editor) .ql-color-muted { color: #647067; }
:is(.prose, .rich-text-editor .ql-editor) .ql-color-forest { color: #245c3c; }
:is(.prose, .rich-text-editor .ql-editor) .ql-color-blue { color: #1d4ed8; }
:is(.prose, .rich-text-editor .ql-editor) .ql-color-red { color: #b91c1c; }
:is(.prose, .rich-text-editor .ql-editor) .ql-color-orange { color: #c2410c; }
:is(.prose, .rich-text-editor .ql-editor) .ql-color-purple { color: #7e22ce; }
:is(.prose, .rich-text-editor .ql-editor) .ql-color-white { color: #ffffff; }
:is(.prose, .rich-text-editor .ql-editor) .ql-color-black { color: #000000; }

:is(.prose, .rich-text-editor .ql-editor) .ql-bg-yellow { background-color: #fef08a; }
:is(.prose, .rich-text-editor .ql-editor) .ql-bg-mint { background-color: #bbf7d0; }
:is(.prose, .rich-text-editor .ql-editor) .ql-bg-sky { background-color: #bae6fd; }
:is(.prose, .rich-text-editor .ql-editor) .ql-bg-pink { background-color: #fbcfe8; }
:is(.prose, .rich-text-editor .ql-editor) .ql-bg-lavender { background-color: #e9d5ff; }
:is(.prose, .rich-text-editor .ql-editor) .ql-bg-white { background-color: #ffffff; }

:is(.prose, .rich-text-editor .ql-editor) .ql-lineheight-1 { line-height: 1.0; }
:is(.prose, .rich-text-editor .ql-editor) .ql-lineheight-15 { line-height: 1.5; }
:is(.prose, .rich-text-editor .ql-editor) .ql-lineheight-17 { line-height: 1.7; }
:is(.prose, .rich-text-editor .ql-editor) .ql-lineheight-2 { line-height: 2.0; }
:is(.prose, .rich-text-editor .ql-editor) .ql-lineheight-25 { line-height: 2.5; }
:is(.prose, .rich-text-editor .ql-editor) .ql-align-center { text-align: center; }
:is(.prose, .rich-text-editor .ql-editor) .ql-align-right { text-align: right; }
:is(.prose, .rich-text-editor .ql-editor) .ql-align-justify { text-align: justify; }
:is(.prose, .rich-text-editor .ql-editor) .ql-direction-rtl { direction: rtl; }
:is(.prose, .rich-text-editor .ql-editor) .ql-indent-1 { padding-inline-start: 3em; }
:is(.prose, .rich-text-editor .ql-editor) .ql-indent-2 { padding-inline-start: 6em; }
:is(.prose, .rich-text-editor .ql-editor) .ql-indent-3 { padding-inline-start: 9em; }
:is(.prose, .rich-text-editor .ql-editor) .ql-indent-4 { padding-inline-start: 12em; }
:is(.prose, .rich-text-editor .ql-editor) .ql-indent-5 { padding-inline-start: 15em; }
:is(.prose, .rich-text-editor .ql-editor) .ql-indent-6 { padding-inline-start: 18em; }
:is(.prose, .rich-text-editor .ql-editor) .ql-indent-7 { padding-inline-start: 21em; }
:is(.prose, .rich-text-editor .ql-editor) .ql-indent-8 { padding-inline-start: 24em; }

:is(.prose, .rich-text-editor .ql-editor) :is(s, del, strike) { text-decoration: line-through; }
:is(.prose, .rich-text-editor .ql-editor) sub { vertical-align: sub; font-size: .75em; }
:is(.prose, .rich-text-editor .ql-editor) sup { vertical-align: super; font-size: .75em; }
:is(.prose, .rich-text-editor .ql-editor) :is(pre, .ql-syntax, .ql-code-block-container) { white-space: pre-wrap; overflow-wrap: anywhere; overflow-x: auto; padding: 1rem; background: #f1f4f2; border-radius: .25rem; }
:is(.prose, .rich-text-editor .ql-editor) :where(code, .ql-code-block, .ql-code-block-container) { font-family: "Courier New", Courier, monospace; }
:is(.prose, .rich-text-editor .ql-editor) .ql-code-block { white-space: pre-wrap; min-height: 1em; }
:is(.prose, .rich-text-editor .ql-editor) hr { border: 0; border-top: 1px solid #d5ddd7; margin-block: 1.5rem; }
:is(.prose, .rich-text-editor .ql-editor) img { max-width: 100%; height: auto; }
:is(.prose, .rich-text-editor .ql-editor) img[width][height] { aspect-ratio: attr(width type(<number>)) / attr(height type(<number>)); object-fit: contain; }

/* Quill 2 stores every list in ol; render its finite per-item list types. */
.prose li[data-list="ordered"] { list-style-type: decimal; }
.prose li[data-list="bullet"] { list-style-type: disc; }
.prose li[data-list="checked"], .prose li[data-list="unchecked"] { list-style-type: none; }
.prose li[data-list="checked"]::before { content: "\2611\0020"; }
.prose li[data-list="unchecked"]::before { content: "\2610\0020"; }
