/* All application Quill rules live here. Load AFTER nuczu.css and quill.snow.css.
   .ql-editor is live Quill; public semantic HTML has no .ql-editor class. */
body :is(.upb-reader-page .upb-text-wide .upb-text.cms-richtext,
         .cms-richtext, .university-richtext, .university-quill-editor .ql-editor,
         .upb-moderator-page .ql-editor) {
  font-family: Arial, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  text-align: left;
  text-align-last: auto;
  text-justify: auto;
  word-spacing: normal;
  letter-spacing: normal;
  word-break: normal;
  overflow-wrap: break-word;
  hyphens: manual;
  white-space: pre-wrap;
  max-width: none;
}
body :is(.cms-richtext, .university-richtext) {
  min-height: 0; height: auto; padding: 0; margin: 0;
  overflow: visible; white-space: normal;
}
body :is(.upb-reader-page .upb-text-wide .cms-richtext, .university-richtext,
         .university-quill-editor .ql-editor, .upb-moderator-page .ql-editor) :is(p, li, h2, h3, h4, blockquote) {
  text-align: inherit;
  text-align-last: auto;
  text-justify: auto;
  word-spacing: normal;
  letter-spacing: normal;
  line-height: inherit;
  hyphens: manual;
}
body :is(.cms-richtext, .university-richtext, .ql-editor) p { margin: 0 0 .45em; padding: 0; }
body :is(.cms-richtext, .university-richtext, .ql-editor) p:last-child { margin-bottom: 0; }
body :is(.cms-richtext, .university-richtext) p:empty { min-height: 1.55em; }
body :is(.cms-richtext, .university-richtext, .ql-editor) h2 { font-size: 24px; margin: 1em 0 .5em; }
body :is(.cms-richtext, .university-richtext, .ql-editor) h3 { font-size: 21px; margin: 1em 0 .5em; }
body :is(.cms-richtext, .university-richtext, .ql-editor) h4 { font-size: 18px; margin: 1em 0 .5em; }
body :is(.cms-richtext, .university-richtext, .ql-editor) blockquote {
  margin: 1em 0; padding: 8px 16px;
  border-left: 3px solid #ef6603; background: #f5f8fb;
}
body :is(.cms-richtext, .university-richtext, .ql-editor) a { text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
body :is(.cms-richtext, .university-richtext) :is(ul, ol) { margin: .4em 0 .6em; padding-left: 1.5em; }
body :is(.cms-richtext, .university-richtext) ul { list-style-type: disc; }
body :is(.cms-richtext, .university-richtext) ol { list-style-type: decimal; }
body :is(.cms-richtext, .university-richtext) li { margin: 0 0 .15em; }
body :is(.cms-richtext, .university-richtext) li[data-list="bullet"] { list-style-type: disc; }
body :is(.cms-richtext, .university-richtext) pre { white-space: pre-wrap; }
/* These selectors outrank legacy layout rules and Snow's defaults.
   Inline text-align still has priority; no !important overrides the toolbar. */
body :is(.upb-reader-page .upb-text-wide .cms-richtext, .cms-richtext, .university-richtext,
         .university-quill-editor .ql-editor, .upb-moderator-page .ql-editor) .ql-align-left { text-align: left; }
body :is(.upb-reader-page .upb-text-wide .cms-richtext, .cms-richtext, .university-richtext,
         .university-quill-editor .ql-editor, .upb-moderator-page .ql-editor) .ql-align-center { text-align: center; }
body :is(.upb-reader-page .upb-text-wide .cms-richtext, .cms-richtext, .university-richtext,
         .university-quill-editor .ql-editor, .upb-moderator-page .ql-editor) .ql-align-right { text-align: right; }
body :is(.upb-reader-page .upb-text-wide .cms-richtext, .cms-richtext, .university-richtext,
         .university-quill-editor .ql-editor, .upb-moderator-page .ql-editor) .ql-align-justify { text-align: justify; }
body :is(.cms-richtext, .university-richtext, .ql-editor) .ql-font-serif { font-family: Georgia, 'Times New Roman', serif; }
body :is(.cms-richtext, .university-richtext, .ql-editor) .ql-font-monospace { font-family: Monaco, 'Courier New', monospace; }
body :is(.cms-richtext, .university-richtext, .ql-editor) .ql-size-small { font-size: .75em; }
body :is(.cms-richtext, .university-richtext, .ql-editor) .ql-size-large { font-size: 1.5em; }
body :is(.cms-richtext, .university-richtext, .ql-editor) .ql-size-huge { font-size: 2.5em; }
/* Public paragraphs need indent definitions without loading Snow on reader pages.
   Nested semantic lists already encode their indentation. */
body :is(.cms-richtext, .university-richtext) :is(p, h2, h3, h4, blockquote).ql-indent-1 { padding-left: 3em; }
body :is(.cms-richtext, .university-richtext) :is(p, h2, h3, h4, blockquote).ql-indent-2 { padding-left: 6em; }
body :is(.cms-richtext, .university-richtext) :is(p, h2, h3, h4, blockquote).ql-indent-3 { padding-left: 9em; }
body :is(.cms-richtext, .university-richtext) :is(p, h2, h3, h4, blockquote).ql-indent-4 { padding-left: 12em; }
body :is(.cms-richtext, .university-richtext) :is(p, h2, h3, h4, blockquote).ql-indent-5 { padding-left: 15em; }
body :is(.cms-richtext, .university-richtext) :is(p, h2, h3, h4, blockquote).ql-indent-6 { padding-left: 18em; }
body :is(.cms-richtext, .university-richtext) :is(p, h2, h3, h4, blockquote).ql-indent-7 { padding-left: 21em; }
body :is(.cms-richtext, .university-richtext) :is(p, h2, h3, h4, blockquote).ql-indent-8 { padding-left: 24em; }
/* Shared editor shell and controls. Tooltips must not be clipped by card shells. */
.ab-editor-shell, .quill-wrap { overflow: visible; border: 1px solid #ccd4dd; border-radius: 8px; background: #fff; }
.ab-card:has(.university-quill-editor), .editor-pane-card:has(.university-quill-editor) { overflow: visible; }
.ab-editor-shell:focus-within, .quill-wrap:focus-within { border-color: #b44700; box-shadow: 0 0 0 3px #e8913a20; }
.ab-editor-shell .ql-toolbar.ql-snow, .quill-wrap .ql-toolbar.ql-snow,
.upb-moderator-page .ql-toolbar.ql-snow { border-radius: 8px 8px 0 0; background: #f5f8fb; }
.ab-editor-shell .ql-container.ql-snow, .quill-wrap .ql-container.ql-snow { border: 0; }
.ab-editor-shell .ql-toolbar.ql-snow, .quill-wrap .ql-toolbar.ql-snow { border: 0; border-bottom: 1px solid #ccd4dd; }
#about-content-editor, .feature-quill-editor, #cmsQuillEditor { background: #fff; }
.university-quill-editor.ql-container, #cmsQuillEditor.ql-container { height: auto; }
.university-quill-editor .ql-editor, .upb-moderator-page .ql-editor { min-height: 260px; height: auto; }
.ql-toolbar button:focus-visible, .ql-toolbar .ql-picker-label:focus-visible, .ql-toolbar .ql-picker-item:focus-visible { outline: 2px solid #b44700; outline-offset: 2px; }
.ql-editor:focus-visible { outline: 2px solid #b44700; outline-offset: -2px; }
.ql-snow .ql-tooltip { z-index: 1050; max-width: calc(100vw - 40px); white-space: normal; }
.ql-snow .ql-tooltip input[type=text] { max-width: 100%; }
.ql-snow .ql-picker-options { z-index: 1051; }
@media (max-width: 576px) {
  .ql-toolbar.ql-snow { padding: 8px 4px; }
  .ql-toolbar.ql-snow .ql-formats { margin-right: 8px; }
}

/* Uploaded media: identical markup in the editor and public HTML. */
body :is(.cms-richtext, .university-richtext, .ql-editor) img { max-width: 100%; height: auto; }
body :is(.cms-richtext, .university-richtext, .ql-editor) figure.uq-figure {
  display: block; max-width: 100%; padding: 0; margin: 1em auto;
  white-space: normal; text-align: center; clear: both;
}
body :is(.cms-richtext, .university-richtext, .ql-editor) .uq-figure img {
  display: block; width: 100%; height: auto; border-radius: 8px; margin: 0;
}
body :is(.cms-richtext, .university-richtext, .ql-editor) .uq-figure figcaption {
  display: block; padding: .5em 0 0; color: #52667c; font-size: 14px;
  line-height: 1.45; text-align: center; white-space: pre-wrap; overflow-wrap: anywhere;
}
body :is(.cms-richtext, .university-richtext, .ql-editor) .uq-image-size-25 { width: 25%; }
body :is(.cms-richtext, .university-richtext, .ql-editor) .uq-image-size-50 { width: 50%; }
body :is(.cms-richtext, .university-richtext, .ql-editor) .uq-image-size-75 { width: 75%; }
body :is(.cms-richtext, .university-richtext, .ql-editor) .uq-image-size-100 { width: 100%; }
body :is(.cms-richtext, .university-richtext, .ql-editor) .uq-image-align-left { margin-left: 0; margin-right: auto; }
body :is(.cms-richtext, .university-richtext, .ql-editor) .uq-image-align-center { margin-left: auto; margin-right: auto; }
body :is(.cms-richtext, .university-richtext, .ql-editor) .uq-image-align-right { margin-left: auto; margin-right: 0; }
.ql-editor figure.uq-figure { cursor: pointer; }
.ql-editor figure.uq-figure:hover { outline: 2px solid #e8913a; outline-offset: 3px; }
.uq-editor-shell { position: relative; min-width: 0; }
.uq-status { font: 14px/1.45 Arial, sans-serif; color: #52667c; padding: 8px 12px; }
.uq-status:empty { display: none; }
.uq-editor-shell:fullscreen { background: #fff; overflow: auto; padding: 16px; width: 100%; height: 100%; }
.uq-editor-shell:fullscreen .ql-toolbar { position: sticky; top: 0; z-index: 3; }
.uq-editor-shell:fullscreen .ql-editor { min-height: calc(100vh - 130px); }
.uq-media-dialog {
  box-sizing: border-box; width: 560px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px);
  padding: 24px; border: 1px solid #ccd4dd; border-radius: 12px; background: #fff;
  color: #1a2744; overflow: auto; font: 16px/1.5 Arial, sans-serif;
}
.uq-media-dialog::backdrop { background: #15213ab3; }
.uq-media-dialog h2 { margin: 0 0 16px; font: 700 22px/1.3 Arial, sans-serif; }
.uq-media-dialog label { display: block; margin-bottom: 12px; font-size: 14px; font-weight: 600; }
.uq-media-dialog :is(input, select) { box-sizing: border-box; display: block; width: 100%; padding: 9px 10px; margin-top: 4px; border: 1px solid #ccd4dd; border-radius: 6px; background: #fff; color: #1a2744; font: inherit; }
.uq-media-dialog .uq-preview { display: block; max-width: 100%; max-height: 180px; object-fit: contain; margin: 8px auto; }
.uq-media-dialog .uq-preview:not([src]) { display: none; }
.uq-media-dialog [hidden] { display: none; }
.uq-dialog-status { margin: 8px 0; font-size: 14px; }
.uq-dialog-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; margin-top: 16px; }
.uq-dialog-actions button { padding: 9px 14px; border: 1px solid #ccd4dd; border-radius: 6px; background: #f5f8fb; color: #1a2744; cursor: pointer; font: inherit; }
.uq-dialog-actions .uq-apply { background: #b44700; border-color: #b44700; color: #fff; }
.uq-dialog-actions .uq-remove { margin-right: auto; color: #a32626; }
.uq-dialog-actions button:disabled { opacity: .5; cursor: wait; }
.uq-media-dialog :is(button,input,select):focus-visible { outline: 2px solid #b44700; outline-offset: 2px; }
@media (max-width: 576px) {
  .uq-media-dialog { padding: 16px; }
  .uq-dialog-actions button { flex: 1 1 auto; }
}
