/* Publication-specific rules. Semantic AI-GDZ blocks are supplied by common/assets unchanged. */
.gdz-publication { min-width: 0; color: #46516a; font-size: 1rem; line-height: 1.85; overflow-wrap: anywhere; }
.gdz-publication p { margin: 0 0 1.25em; }
.gdz-publication h1, .gdz-publication h2, .gdz-publication h3, .gdz-publication h4 { margin: 1.4em 0 .7em; line-height: 1.45; color: #202b44; }
.gdz-publication h2 { font-size: 1.4em; }
.gdz-publication h3 { font-size: 1.15em; }
.gdz-publication > :first-child { margin-top: 0; }
.gdz-publication > :last-child { margin-bottom: 0; }
.gdz-publication ul, .gdz-publication ol { margin: 0 0 1.25em; padding-left: 1.7em; }
.gdz-publication li { margin: .3em 0; }
.gdz-publication li > ul, .gdz-publication li > ol { margin-bottom: 0; }
.gdz-publication blockquote { margin: 1.25em 0; padding: .7em 1.1em; border-left: 3px solid #cbdcea; background: #f6f8fc; }
.gdz-publication a { color: var(--blue-text); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.gdz-publication img { height: auto; max-width: 100%; vertical-align: middle; }
.gdz-publication audio, .gdz-publication video, .gdz-publication iframe { max-width: 100%; }
.gdz-publication figure { max-width: 100%; margin: 1.4em 0; }
.gdz-publication figcaption { margin-top: .5em; color: #8c98ac; font-size: .82em; text-align: center; }
.gdz-publication pre { max-width: 100%; padding: 17px 19px; border: 1px solid #e3e8f1; border-radius: 7px; background: #f4f6fa; color: #41506b; font-size: .875rem; line-height: 1.65; overflow-x: auto; tab-size: 4; white-space: pre; }
.gdz-publication code { font-family: 'Courier New', monospace; font-size: .95em; }
.gdz-publication pre code { padding: 0; background: none; color: inherit; font-size: inherit; }
.publication-table-scroll, .gdz-publication .table-responsive-sm { max-width: 100%; overflow-x: auto; }
.publication-table-scroll { margin: 1.25em 0; }
.gdz-publication table { border-collapse: collapse; font-size: .875rem; line-height: 1.6; }
.gdz-publication .katex { font-size: 1.04em; }
.gdz-publication .katex-display { max-width: 100%; overflow-x: auto; overflow-y: hidden; padding: 3px 0; }
.gdz-publication .katex * { box-sizing: content-box; }
.gdz-publication .ql-formula { display: inline-block; max-width: 100%; }
.gdz-publication .tiptap-math-block { display: block; }
.gdz-publication [data-role="question"] { scroll-margin-top: 24px; }
.question-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-bottom: 23px; }
.question-nav > span { margin-right: 9px; color: var(--muted); font-size: 12px; }
.question-nav button { min-width: 36px; min-height: 36px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 6px; color: var(--blue-text); font-size: 13px; }
.question-nav button:hover { border-color: var(--blue-line); background: var(--blue-soft); }

/* Published Quill formatting does not need the editor's container, toolbar or JavaScript. */
.gdz-publication .ql-align-center, .gdz-publication .text-center { text-align: center; }
.gdz-publication .ql-align-right, .gdz-publication .text-right { text-align: right; }
.gdz-publication .ql-align-justify { text-align: justify; }
.gdz-publication .ql-direction-rtl { direction: rtl; text-align: inherit; }
.gdz-publication .ql-font-serif { font-family: Georgia, 'Times New Roman', serif; }
.gdz-publication .ql-font-monospace, .gdz-publication .ql-syntax { font-family: 'Courier New', monospace; }
.gdz-publication .ql-size-small { font-size: .75em; }
.gdz-publication .ql-size-large { font-size: 1.5em; }
.gdz-publication .ql-size-huge { font-size: 2.5em; }
.gdz-publication .ql-indent-1 { padding-inline-start: 3em; }
.gdz-publication .ql-indent-2 { padding-inline-start: 6em; }
.gdz-publication .ql-indent-3 { padding-inline-start: 9em; }
.gdz-publication .ql-indent-4 { padding-inline-start: 12em; }
.gdz-publication .ql-indent-5 { padding-inline-start: 15em; }
.gdz-publication .ql-indent-6 { padding-inline-start: 18em; }
.gdz-publication .ql-indent-7 { padding-inline-start: 21em; }
.gdz-publication .ql-indent-8 { padding-inline-start: 24em; }
.gdz-publication .ql-indent-9 { padding-inline-start: 27em; }
.gdz-publication .ql-ui { display: none; }
.gdz-publication li[data-list=bullet] { list-style-type: disc; }
.gdz-publication li[data-list=checked], .gdz-publication li[data-list=unchecked] { list-style-type: none; }
.gdz-publication li[data-list=checked]::before { content: '☑'; margin-inline: -1.4em .5em; }
.gdz-publication li[data-list=unchecked]::before { content: '☐'; margin-inline: -1.4em .5em; }
.gdz-publication ol:has(> li[class*="ql-indent-"]), .gdz-publication ol:has(> li[data-list]) { counter-reset: ql-list-0 ql-list-1 ql-list-2 ql-list-3 ql-list-4 ql-list-5 ql-list-6 ql-list-7 ql-list-8 ql-list-9; }
.gdz-publication ol:has(> li[class*="ql-indent-"]) > li:not([data-list]),
.gdz-publication li[data-list=ordered] { position: relative; list-style-type: none; counter-increment: ql-list-0; counter-reset: ql-list-1 ql-list-2 ql-list-3 ql-list-4 ql-list-5 ql-list-6 ql-list-7 ql-list-8 ql-list-9; }
.gdz-publication ol:has(> li[class*="ql-indent-"]) > li:not([data-list])::before,
.gdz-publication li[data-list=ordered]::before { display: inline-block; width: 1.4em; margin-inline: -1.5em .1em; text-align: end; content: counter(ql-list-0, decimal) '. '; }
.gdz-publication ol > li.ql-indent-1:is(:not([data-list]), [data-list=ordered]) { counter-increment: ql-list-1; counter-reset: ql-list-2 ql-list-3 ql-list-4 ql-list-5 ql-list-6 ql-list-7 ql-list-8 ql-list-9; }
.gdz-publication ol > li.ql-indent-2:is(:not([data-list]), [data-list=ordered]) { counter-increment: ql-list-2; counter-reset: ql-list-3 ql-list-4 ql-list-5 ql-list-6 ql-list-7 ql-list-8 ql-list-9; }
.gdz-publication ol > li.ql-indent-3:is(:not([data-list]), [data-list=ordered]) { counter-increment: ql-list-3; counter-reset: ql-list-4 ql-list-5 ql-list-6 ql-list-7 ql-list-8 ql-list-9; }
.gdz-publication ol > li.ql-indent-4:is(:not([data-list]), [data-list=ordered]) { counter-increment: ql-list-4; counter-reset: ql-list-5 ql-list-6 ql-list-7 ql-list-8 ql-list-9; }
.gdz-publication ol > li.ql-indent-5:is(:not([data-list]), [data-list=ordered]) { counter-increment: ql-list-5; counter-reset: ql-list-6 ql-list-7 ql-list-8 ql-list-9; }
.gdz-publication ol > li.ql-indent-6:is(:not([data-list]), [data-list=ordered]) { counter-increment: ql-list-6; counter-reset: ql-list-7 ql-list-8 ql-list-9; }
.gdz-publication ol > li.ql-indent-7:is(:not([data-list]), [data-list=ordered]) { counter-increment: ql-list-7; counter-reset: ql-list-8 ql-list-9; }
.gdz-publication ol > li.ql-indent-8:is(:not([data-list]), [data-list=ordered]) { counter-increment: ql-list-8; counter-reset: ql-list-9; }
.gdz-publication ol > li.ql-indent-9:is(:not([data-list]), [data-list=ordered]) { counter-increment: ql-list-9; counter-reset: none; }
.gdz-publication ol > li.ql-indent-1:is(:not([data-list]), [data-list=ordered])::before { content: counter(ql-list-1, lower-alpha) '. '; }
.gdz-publication ol > li.ql-indent-2:is(:not([data-list]), [data-list=ordered])::before { content: counter(ql-list-2, lower-roman) '. '; }
.gdz-publication ol > li.ql-indent-3:is(:not([data-list]), [data-list=ordered])::before { content: counter(ql-list-3, decimal) '. '; }
.gdz-publication ol > li.ql-indent-4:is(:not([data-list]), [data-list=ordered])::before { content: counter(ql-list-4, lower-alpha) '. '; }
.gdz-publication ol > li.ql-indent-5:is(:not([data-list]), [data-list=ordered])::before { content: counter(ql-list-5, lower-roman) '. '; }
.gdz-publication ol > li.ql-indent-6:is(:not([data-list]), [data-list=ordered])::before { content: counter(ql-list-6, decimal) '. '; }
.gdz-publication ol > li.ql-indent-7:is(:not([data-list]), [data-list=ordered])::before { content: counter(ql-list-7, lower-alpha) '. '; }
.gdz-publication ol > li.ql-indent-8:is(:not([data-list]), [data-list=ordered])::before { content: counter(ql-list-8, lower-roman) '. '; }
.gdz-publication ol > li.ql-indent-9:is(:not([data-list]), [data-list=ordered])::before { content: counter(ql-list-9, decimal) '. '; }

/* Image controls are added around unlinked images only. Existing publication links remain links. */
.publication-image-button { display: inline-block; max-width: 100%; padding: 0; margin: 0; line-height: 0; background: none; border-radius: 5px; vertical-align: middle; cursor: zoom-in; }
.publication-image-button:focus-visible { outline: 3px solid var(--blue-focus); outline-offset: 5px; }
.publication-dialog { width: min(1180px, calc(100vw - 48px)); max-width: calc(100vw - 32px); max-height: calc(100dvh - 36px); padding: 0; border: 0; border-radius: 14px; color: var(--ink); background: #f6f8fc; box-shadow: 0 25px 90px #091c4b55; }
.publication-dialog::backdrop { background: #10203cba; }
.publication-dialog-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 22px; background: #fff; border-bottom: 1px solid #e4eaf3; }
.publication-dialog-toolbar h2 { font-size: 16px; font-weight: 550; line-height: 1.5; }
.publication-dialog-actions { display: flex; align-items: center; gap: 17px; }
.image-zoom { min-height: 38px; padding: 9px; color: var(--blue-text); font-size: 13px; }
.publication-dialog-stage { min-height: 180px; max-height: calc(100dvh - 210px); padding: 22px; overflow: auto; text-align: center; }
.publication-dialog-stage img { width: auto; height: auto; max-width: 100%; max-height: calc(100dvh - 256px); vertical-align: top; background: #fff; box-shadow: 0 3px 12px #26334e14; }
.publication-dialog-stage img.is-zoomed { max-width: none; max-height: none; width: max(1100px, 130%); cursor: zoom-out; }
.publication-dialog-stage img:not(.is-zoomed) { cursor: zoom-in; }
.publication-dialog-pagination { display: flex; justify-content: center; align-items: center; gap: 22px; padding: 14px 20px; background: #fff; border-top: 1px solid #e4eaf3; color: #7787a1; font-size: 13px; }
@media (max-width: 700px) {
    .publication-dialog { width: calc(100vw - 20px); max-width: calc(100vw - 20px); border-radius: 10px; }
    .publication-dialog-toolbar { padding: 12px 14px; gap: 10px; }
    .publication-dialog-toolbar h2 { font-size: 14px; }
    .publication-dialog-actions { gap: 7px; }
    .image-zoom { padding: 7px 3px; font-size: 12px; }
    .publication-dialog-stage { padding: 12px; }
    .gdz-publication pre { padding: 14px; }
}
