/* generated by scripts/build-document-content-css.ts — do not edit by hand */
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_AMS-Regular.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/vendor/katex/fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Main-Bold.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Main-Italic.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Main-Regular.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Math-Italic.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Script-Regular.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Size1-Regular.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Size2-Regular.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Size3-Regular.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Size4-Regular.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(/vendor/katex/fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.45"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}

/* Extracted from globals.css — document/article styles */
/*
 * Форум и короткие HTML-фрагменты (.article-content): без kvadrat-document-html / prose
 * явно задаём семантику, чтобы жирный, курсив, списки и ссылки совпадали с редактором.
 */
.article-content strong,
.article-content b {
  font-weight: 700;
}

.article-content em,
.article-content i {
  font-style: italic;
}

.article-content u {
  text-decoration: underline;
}

.article-content s,
.article-content strike,
.article-content del {
  text-decoration: line-through;
}

.article-content code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.9em;
  background: #f1f5f9;
  padding: 0.1em 0.35em;
  border-radius: 0.25rem;
}

.article-content pre {
  margin: 0.5em 0;
  padding: 0.65em 0.85em;
  overflow-x: auto;
  font-size: 0.85em;
  line-height: 1.45;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 0.375rem;
}

.article-content pre code {
  background: transparent;
  padding: 0;
  font-size: inherit;
}

.article-content ul,
.article-content ol {
  /*
   * outside + padding: маркер чуть левее текста (читаемый «ступень»),
   * но внутри контейнера статьи — не вылезает за край.
   */
  list-style-position: outside;
  padding-left: 1.4em;
  margin: 0.65em 0;
}

.article-content ul:not([style*="list-style-type"]) {
  list-style-type: disc;
}

.article-content ol:not([style*="list-style-type"]) {
  list-style-type: decimal;
}

.article-content li {
  margin: 0.4em 0;
  padding-left: 0.35em;
  text-indent: 0;
  list-style-position: outside;
}

.article-content li::marker {
  color: #0f172a;
  font-size: 1.2em;
  font-weight: 700;
}

.article-content ol > li::marker {
  font-size: 0.95em;
  font-weight: 600;
  font-variant-numeric: lining-nums tabular-nums;
}

/* Сломанный HTML из CMS: <li> без <ul>/<ol> */
.article-content > li {
  list-style-position: outside;
  list-style-type: disc;
  margin-left: 1.4em;
  padding-left: 0.35em;
}

.article-content li > ul,
.article-content li > ol {
  margin: 0.25em 0;
}

.article-content li > ul:not([style*="list-style-type"]) {
  list-style-type: circle;
}

.article-content li > ul > li > ul:not([style*="list-style-type"]) {
  list-style-type: square;
}

.article-content li > ol:not([style*="list-style-type"]) {
  list-style-type: lower-alpha;
}

.article-content li > ol > li > ol:not([style*="list-style-type"]) {
  list-style-type: lower-roman;
}

.article-content li > p:not([style*="text-indent"]):not([style*="padding-left"]) {
  text-indent: 0;
  margin: 0.15em 0;
}

.article-content li > p[style*="text-indent"] {
  text-indent: 0 !important;
  margin: 0.15em 0;
}

.article-content p {
  margin: 0.5em 0;
}

/* Переносы из редактора (<br>, breaks в marked) */
.article-content br {
  line-height: inherit;
}

.article-content p:first-child {
  margin-top: 0;
}

.article-content p:last-child {
  margin-bottom: 0;
}

.article-content dl,
.kvadrat-document-html dl,
.kvadrat-doc dl {
  margin: 1.25em 0;
  display: grid;
  gap: 0.35em 0;
}

.article-content dt,
.kvadrat-document-html dt,
.kvadrat-doc dt {
  font-weight: 600;
  color: #0f172a;
}

.article-content dt:not(.sr-only) + dd,
.kvadrat-document-html dt:not(.sr-only) + dd,
.kvadrat-doc dt:not(.sr-only) + dd {
  margin-top: 0.15em;
}

.article-content dd,
.kvadrat-document-html dd,
.kvadrat-doc dd {
  margin: 0 0 0.65em;
  padding-left: 1rem;
  border-left: 2px solid #e2e8f0;
  color: #1e293b;
  line-height: 1.7;
}

.article-content dd:last-child,
.kvadrat-document-html dd:last-child,
.kvadrat-doc dd:last-child {
  margin-bottom: 0;
}

/*
 * Block display formulas — SELF-CONTAINED centering that works in EVERY context
 * (Plate editor, public articles, AI diff / DocumentRichContent, Word import) without
 * depending on ancestor wrapper classes. The recurring "left-aligned" bug was caused by
 * the previous ancestor-scoped selectors (.article-content, .kvadrat-document-html, …):
 * the AI diff renders `.kv-equation-block` inside a container with none of those classes,
 * so the rule never matched and KaTeX fell back to left/shrink layout.
 *
 * Alignment is driven by the serialized `data-kv-equation-align` attribute (default center),
 * so the editor, serializer, article and diff all agree. Inline `.kv-equation-inline` is
 * intentionally left untouched so inline math keeps flowing with the surrounding text.
 */
.kv-equation-block {
  display: flex;
  /*
   * Plain value first as a fallback; the `safe` variant (ignored by older engines that
   * would otherwise drop the whole declaration and fall back to flex-start) keeps wide
   * formulas flush to the start and scrollable instead of clipped on the left edge.
   */
  justify-content: center;
  justify-content: safe center;
  align-items: center;
  width: 100%;
  max-width: 100%;
  margin: 1em 0;
  /* overflow-x on flex wrapper forces overflow-y:auto (vertical scrollbar). */
  overflow: visible;
  text-align: center;
  text-indent: 0;
}

.kv-equation-block[data-kv-equation-align="left"] {
  justify-content: flex-start;
  justify-content: safe flex-start;
  text-align: left;
}

.kv-equation-block[data-kv-equation-align="center"] {
  justify-content: center;
  justify-content: safe center;
  text-align: center;
}

.kv-equation-block[data-kv-equation-align="right"] {
  justify-content: flex-end;
  justify-content: safe flex-end;
  text-align: right;
}

.kv-equation-block > .katex-display {
  margin: 0;
  /*
   * Shrink-wrap to the formula width. A full-width scrollport with overflow-x:auto
   * showed a horizontal scrollbar even for short formulas (subpixel / MathML).
   * Scroll appears only when the formula is wider than the column (max-width: 100%).
   */
  flex: 0 1 auto;
  width: fit-content;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
}

/* Bare display KaTeX without our wrapper (legacy HTML / Word import): center in any context. */
.katex-display:not(.kv-equation-block .katex-display):not(.kv-equation-inline .katex-display) {
  display: block;
  margin: 1em 0;
  text-align: center;
  text-indent: 0;
}

.article-content h2,
.article-content h3 {
  font-weight: 700;
  margin: 0.75em 0 0.35em;
  line-height: 1.25;
  color: #0f172a;
}

.article-content h2 {
  font-size: 1.15em;
}

.article-content h3 {
  font-size: 1.05em;
}

.article-content blockquote {
  border-left: 3px solid #cbd5e1;
  padding-left: 0.75em;
  margin: 0.5em 0;
  color: #475569;
}

.article-content a {
  color: #0369a1;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.article-content a:hover {
  color: #0c4a6e;
}

.article-content hr {
  margin: 0.75em 0;
  border: 0;
  border-top: 1px solid #e2e8f0;
}

/*
 * Горизонтальный скролл широких таблиц: overflow на обёртке, не на <table>.
 * Excel-листы (.kv-table-excel) прокручиваются через kv-excel-scroll-shell.
 *
 * overflow-y ДОЛЖЕН быть clip/hidden, не visible: иначе overflow-x:auto
 * вычисляется в overflow-y:auto, жест колеса/пальца остаётся в обёртке
 * (у НПА таблицы 10–30 тыс. px в высоту и ширину) и страница не скроллится.
 */
.article-table-scroll {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: clip;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  touch-action: pan-x pan-y;
  margin: 2rem 0;
}

/*
 * Mobile tap-to-activate оверлей таблиц отключён.
 * Старый класс kv-mobile-scroll-capture в HTML статей не блокирует скролл.
 */
.kv-mobile-scroll-capture-overlay,
.kv-mobile-scroll-capture-done {
  display: none !important;
  pointer-events: none !important;
}

/*
 * Mobile full-bleed: таблица на всю ширину viewport.
 * Desktop: .article-table-wide — умеренный breakout (см. ниже).
 */
@media (max-width: 767px) {
  .article-table-full-bleed,
  .fin-gov-article-view .kv-excel-viewer.article-table-full-bleed,
  .article-content .kv-excel-viewer.article-table-full-bleed,
  .kv-article-has-excel .kv-excel-viewer.article-table-full-bleed {
    box-sizing: border-box;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }

  .fin-gov-article-view .article-table-scroll.article-table-full-bleed,
  .article-content .article-table-scroll.article-table-full-bleed,
  .article-content.prose .article-table-scroll.article-table-full-bleed,
  .fin-gov-article-view .kv-excel-viewer.article-table-full-bleed,
  .article-content .kv-excel-viewer.article-table-full-bleed {
    padding-left: max(1rem, env(safe-area-inset-left, 0px));
    padding-right: max(1rem, env(safe-area-inset-right, 0px));
  }
}

/*
 * Desktop: чуть шире колонки статьи (max-w-5xl), не на весь viewport.
 */
@media (min-width: 768px) {
  .article-table-wide,
  .fin-gov-article-view .kv-excel-viewer.article-table-wide,
  .article-content .kv-excel-viewer.article-table-wide,
  .kv-article-has-excel .kv-excel-viewer.article-table-wide,
  .fin-gov-article-view .article-table-scroll.article-table-wide,
  .article-content .article-table-scroll.article-table-wide,
  .article-content.prose .article-table-scroll.article-table-wide {
    --article-table-breakout: 4rem;
    box-sizing: border-box;
    width: min(80rem, calc(100% + 2 * var(--article-table-breakout)));
    max-width: min(80rem, calc(100% + 2 * var(--article-table-breakout)));
    margin-left: calc(-1 * var(--article-table-breakout));
    margin-right: calc(-1 * var(--article-table-breakout));
  }
}

.fin-gov-article-view .article-table-scroll,
.article-content .article-table-scroll {
  margin: 2rem 0;
}

.fin-gov-article-view .kv-article-has-excel,
.fin-gov-article-view .article-content.kv-article-has-excel {
  overflow: visible;
}

.article-table-scroll > table:not(.kv-table-excel),
.fin-gov-article-view .article-table-scroll > table:not(.kv-table-excel),
.fin-gov-article-view .kvadrat-doc .article-table-scroll > table:not(.kv-table-excel),
.article-content.prose .article-table-scroll > table:not(.kv-table-excel),
.kvadrat-document-html .article-table-scroll > table:not(.kv-table-excel),
.kvadrat-doc-shell .kvadrat-doc .article-table-scroll > table:not(.kv-table-excel) {
  display: table;
  width: max-content;
  min-width: 100%;
  max-width: none;
  margin: 0;
  overflow: visible;
  table-layout: auto;
}

/* Legacy: таблицы без обёртки — подстраховка для старых статей */
.fin-gov-article-view .article-content.prose > table:not(.kv-table-excel),
.fin-gov-article-view .article-content.prose table:not(.kv-table-excel):not(.article-table-scroll table),
.fin-gov-article-view .kvadrat-doc > table:not(.kv-table-excel),
.article-content.prose > table:not(.kv-table-excel) {
  display: table;
  width: max-content;
  min-width: 100%;
  max-width: none;
  table-layout: auto;
}

.fin-gov-article-view .article-content.prose,
.fin-gov-article-view .article-content,
.fin-gov-article-view .kvadrat-doc {
  min-width: 0;
  max-width: 100%;
}

.fin-gov-article-view .kvadrat-doc .article-table-scroll table.kv-table-gost,
.fin-gov-article-view .kvadrat-doc .article-table-scroll table.kv-table-grid:not(.kv-table-excel) {
  width: max-content;
  min-width: 100%;
}

/*
 * Широкие таблицы в статьях (TipTap / Word в kvadrat-doc): горизонтальный скролл
 * на уровне таблицы, как в Plate table-node-static. Excel-листы в .kv-excel-viewer
 * прокручиваются своим scroll-shell — их не трогаем (:not(.kv-table-excel)).
 * @deprecated — используйте .article-table-scroll; оставлено для старых статей.
 */
.fin-gov-article-view .article-content.prose table:not(.kv-table-excel):not(.article-table-scroll table),
.fin-gov-article-view .kvadrat-doc table:not(.kv-table-excel):not(.article-table-scroll table),
.article-content.prose table:not(.kv-table-excel):not(.article-table-scroll table) {
  display: table;
  width: max-content;
  min-width: 100%;
  max-width: none;
  table-layout: auto;
}

/*
 * Вид «как в Word» для импорта .doc/.docx/.rtf и превью в админке.
 * Селекторы: .kvadrat-document-html и .kvadrat-doc (внутри .kvadrat-doc-shell).
 * Inline-стили из Word имеют приоритет; ниже — типичные значения по умолчанию.
 */
.kvadrat-document-html,
.kvadrat-doc-shell .kvadrat-doc,
.kvadrat-editor-document {
  /* --font-article-serif = Noto Serif из next/font (layout.tsx); без него на проде часто Georgia. */
  font-family: var(--font-article-serif), "Times New Roman", "Noto Serif", Georgia, serif;
  font-size: 12pt;
  line-height: 1.5;
  color: #0f172a;
  /* Noto Serif / Georgia по умолчанию дают old-style figures — цифры «прыгают». */
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  -webkit-font-smoothing: antialiased;
}

/*
 * Документ всегда рендерится в светлой теме — даже когда вокруг dark-mode админки или сайта.
 * Word-документы должны выглядеть как в Word: белый лист, чёрный текст, без тёмных перекосов.
 * Это убирает синий фон у таблиц/thead в dark-mode на публичной статье и в редакторе.
 */
.kvadrat-doc-shell,
.kvadrat-doc-shell .kvadrat-doc,
.kvadrat-document-html,
.kvadrat-editor-document-shell,
.kvadrat-editor-document {
  color-scheme: light;
  background-color: #ffffff;
  color: #0f172a;
}

.kvadrat-doc-shell *,
.kvadrat-document-html *,
.kvadrat-editor-document * {
  border-color: inherit;
}

@media (max-width: 639px) {
  .kvadrat-document-html,
  .kvadrat-doc-shell .kvadrat-doc {
    font-size: 11pt;
    line-height: 1.45;
  }
}

/* «Лист» А4 по ширине, поля как в документе */
.kvadrat-doc-shell .kvadrat-doc.kvadrat-document-html,
.kvadrat-doc-shell .kvadrat-doc {
  box-sizing: border-box;
  max-width: 210mm;
  margin-left: auto;
  margin-right: auto;
  padding: 1.4cm 1.5cm 1.6cm;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06), 0 4px 24px rgba(15, 23, 42, 0.06);
}

/*
 * Альбомная ориентация — два способа сигнализирования:
 *   1) data-page-orient="landscape" на самом .kvadrat-doc (от импорта DOCX)
 *   2) класс .is-landscape на родительском shell (применяется в editor/preview/public,
 *      где turndown→Markdown→Slate теряет data-атрибуты на root-div'е)
 * лист А4 297×210mm, поля из документа применяются через CSS-переменные --doc-mt/mr/mb/ml.
 *
 * ВАЖНО: shell для public-view (.kvadrat-doc-shell.is-landscape) НЕ должен
 * иметь max-width: 297mm — иначе доку негде центрироваться. Только сам
 * лист (.kvadrat-doc) ограничивается 297mm и центрируется через margin: auto.
 * Shell заполняет ширину article.
 */
.kvadrat-doc-shell .kvadrat-doc[data-page-orient="landscape"],
.kvadrat-document-html[data-page-orient="landscape"],
.kvadrat-doc-shell.is-landscape .kvadrat-doc,
.kvadrat-editor-document-shell.is-landscape,
.kvadrat-editor-document-shell.is-landscape .kvadrat-editor-document,
.kvadrat-editor-document.is-landscape,
.kvadrat-editor-document.is-landscape .kvadrat-doc {
  max-width: 297mm;
}

/* Shell в public-view landscape: заполняет ширину article, без ограничения 297mm. */
.kvadrat-doc-shell.is-landscape {
  width: 100%;
  max-width: 100%;
}

/*
 * ВАЖНО для public-view: внутренний лист landscape имеет ФИКСИРОВАННУЮ ширину
 * 297mm (а не max-width). Это даёт:
 *   1) на десктопе — точная ширина 297mm = ~1122px как в редакторе
 *   2) на мобилке — лист не сжимается, shell даёт горизонтальный скролл
 *      (свойство overflow-x: auto на shell + width: 297mm на doc).
 * Center via margin: auto чтобы 297mm-лист был в середине shell на широких экранах.
 */
.kvadrat-doc-shell.is-landscape .kvadrat-doc,
.kvadrat-doc-shell .kvadrat-doc[data-page-orient="landscape"] {
  width: 297mm;
  max-width: 297mm;
  margin-left: auto;
  margin-right: auto;
  flex-shrink: 0;
}

/*
 * Центрирование "листа" в редакторе и preview.
 *
 * SHELL имеет `max-width: 297mm` (landscape) или дефолтный max (portrait), но
 * без `margin: auto` остаётся прибит к левому краю своего родителя — Tailwind
 * не ставит `margin: auto` сам. Внутри shell `.kvadrat-editor-document`
 * (PlateContent) с `w-full` занимает всю доступную ширину shell, поэтому
 * центрирование самого editor через margin: auto не работает (нет свободного
 * места). Центрировать нужно ИМЕННО shell.
 */
.kvadrat-editor-document-shell {
  margin-left: auto;
  margin-right: auto;
}

/* Дополнительно: PlateContent внутри shell с margin: auto (на случай если
 * shell узкий и editor с max-width имеет свободное место). */
.kvadrat-editor-document-shell .kvadrat-editor-document {
  margin-left: auto;
  margin-right: auto;
}

/* Скролл по горизонтали для landscape на узких экранах — оба способа сигналинга */
.kvadrat-doc-shell.is-landscape,
.kvadrat-editor-document-shell.is-landscape {
  overflow-x: auto;
  overflow-y: clip;
}

/* Применяем поля документа из data-атрибутов через CSS-переменные (если заданы) */
.kvadrat-doc[data-page-orient] {
  padding-top: var(--doc-mt, 1.4cm);
  padding-right: var(--doc-mr, 1.5cm);
  padding-bottom: var(--doc-mb, 1.6cm);
  padding-left: var(--doc-ml, 1.5cm);
}

/* Контейнер должен прокручиваться по горизонтали при landscape на узких экранах */
.kvadrat-doc-shell:has(.kvadrat-doc[data-page-orient="landscape"]) {
  overflow-x: auto;
  overflow-y: clip;
}

@media (max-width: 639px) {
  .kvadrat-doc-shell .kvadrat-doc {
    padding: 0.5rem 0 1rem;
    max-width: 100%;
    box-shadow: none;
    border-radius: 0;
  }

  /*
   * Публичная читалка (fin-gov): секция без px — поля только у текста документа.
   */
  .kvadrat-doc-shell.kvadrat-doc-shell--reader {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
    max-width: none;
  }

  .kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    background: transparent;
    font-family: var(--font-article-serif), "Noto Serif", "Times New Roman", Georgia, serif;
    font-size: 1.0625rem;
    line-height: 1.68;
    letter-spacing: 0.01em;
    color: #1e293b;
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
  }

  /*
   * Читалка: не затирать text-indent !important — иначе теряется красная строка из inline-стилей Word.
   * Без inline text-indent задаём типичный отступ; на узком экране убираем для читаемости.
   */
  .kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc p {
    margin-bottom: 0.85em;
    hyphens: auto;
    overflow-wrap: anywhere;
    word-wrap: break-word;
  }

  /* В мобильной читалке без inline-отступа — без красной строки (читаемость) */
  .kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc p:not([style*="text-indent"]):not([style*="padding-left"]) {
    text-indent: 0;
  }

  /* Читалка: ровный правый край (justify + переносы), см. блок «Мобильная читалка» ниже. */
  .kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc p:not([style*="text-align"]):not([align]):not(.kv-center):not(.kv-right) {
    text-align: justify;
    text-align-last: left;
  }

  .kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc table p,
  .kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc td p,
  .kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc th p {
    margin-bottom: 0.15em !important;
  }

  .kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc h1,
  .kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc h2,
  .kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc h3 {
    text-align: center;
    text-wrap: balance;
    padding-left: 0;
    padding-right: 0;
  }
}

/*
 * Публичная статья: страница скроллится целиком.
 * overflow-x на широком/Excel-листе иначе вычисляется в overflow-y:auto
 * и запирает колесо внутри блока нулевой/экранной высоты.
 */
.fin-gov-article-view,
.fin-gov-article-view .article-content,
.fin-gov-article-view .kvadrat-doc,
.fin-gov-article-view .kvadrat-document-html {
  overflow: visible;
  max-height: none;
  height: auto;
}

.fin-gov-article-view .fin-gov-article-doc--wide {
  overflow-x: auto;
  overflow-y: clip;
  max-height: none;
  height: auto;
}

/*
 * Публичная статья fin-gov: один слой контента на фоне страницы,
 * без серой подложки редактора и без «листа А4» внутри карточки.
 */
.fin-gov-article-view .kvadrat-doc.kvadrat-document-html,
.fin-gov-article-view .kvadrat-document-html,
.fin-gov-article-view .kvadrat-doc {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  min-height: 0;
  background: transparent;
  box-shadow: none;
  font-family: var(--font-article-serif), "Noto Serif", "Times New Roman", Georgia, serif;
  font-size: 1.0625rem;
  line-height: 1.75;
  color: #334155;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}

/* Inline font-family из Word не должен оставлять old-style figures (Georgia/system serif). */
.fin-gov-article-view .kvadrat-doc,
.fin-gov-article-view .kvadrat-doc *,
.kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc,
.kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc * {
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}

@media (min-width: 768px) {
  .fin-gov-article-view .kvadrat-doc.kvadrat-document-html,
  .fin-gov-article-view .kvadrat-document-html,
  .fin-gov-article-view .kvadrat-doc {
    font-size: 1.125rem;
    line-height: 1.8;
  }
}

.fin-gov-article-view .fin-gov-article-doc--wide .kvadrat-doc[data-page-orient="landscape"],
.fin-gov-article-view .fin-gov-article-doc--wide .kvadrat-doc {
  width: 297mm;
  max-width: 297mm;
  margin-left: auto;
  margin-right: auto;
  flex-shrink: 0;
}

/* Мобильная типографика документов собрана в конце файла — см. «Мобильная читалка». */

.kvadrat-document-html p,
.kvadrat-doc-shell .kvadrat-doc p {
  margin: 0 0 0.65em;
  orphans: 3;
  widows: 3;
}

/* Красная строка и выравнивание по ширине — только для «обычных» абзацев */
.kvadrat-document-html p:not([style*="text-align"]):not([align]),
.kvadrat-doc-shell .kvadrat-doc p:not([style*="text-align"]):not([align]) {
  text-align: justify;
}

/* Абзацы внутри центрированного блока (Word часто задаёт center на div, не на p) */
.kvadrat-document-html [style*="text-align:center"] p:not([style*="text-align"]),
.kvadrat-document-html [style*="text-align: center"] p:not([style*="text-align"]),
.kvadrat-document-html [style*="text-align: center;"] p:not([style*="text-align"]),
.kvadrat-doc-shell .kvadrat-doc [style*="text-align:center"] p:not([style*="text-align"]),
.kvadrat-doc-shell .kvadrat-doc [style*="text-align: center"] p:not([style*="text-align"]),
.kvadrat-document-html [align="center"] p:not([style*="text-align"]),
.kvadrat-doc-shell .kvadrat-doc [align="center"] p:not([style*="text-align"]),
.kvadrat-document-html center p:not([style*="text-align"]),
.kvadrat-doc-shell .kvadrat-doc center p:not([style*="text-align"]) {
  text-align: center;
  text-indent: 0;
}

.kvadrat-document-html p[align="center"],
.kvadrat-doc-shell .kvadrat-doc p[align="center"] {
  text-align: center;
  text-indent: 0;
}

/* Величина красной строки — через переменную: мобильный блок в конце файла
 * переопределяет только её, а все исключения (`text-indent: 0`) продолжают работать. */
.kvadrat-document-html p:not([style*="text-indent"]):not([style*="padding-left"]),
.kvadrat-doc-shell .kvadrat-doc p:not([style*="text-indent"]):not([style*="padding-left"]) {
  text-indent: var(--kv-doc-indent, 1.25cm);
}

/* Таблицы: без «красной строки» и без лишней верстикальной «ямы» перед первым абзацев */
.kvadrat-document-html table td p:not([style*="text-indent"]):not([style*="padding-left"]),
.kvadrat-document-html table th p:not([style*="text-indent"]):not([style*="padding-left"]),
.kvadrat-doc-shell .kvadrat-doc table td p:not([style*="text-indent"]):not([style*="padding-left"]),
.kvadrat-doc-shell .kvadrat-doc table th p:not([style*="text-indent"]):not([style*="padding-left"]) {
  text-indent: 0;
}

/*
 * Списки: красная строка ломает нумерацию — первая строка уезжает вправо,
 * а переносы идут под маркер. Специфичность должна быть ≥ общего правила p
 * (там два :not([...])), иначе сброс не срабатывает.
 */
.kvadrat-document-html li > p:not([style*="text-indent"]):not([style*="padding-left"]),
.kvadrat-doc-shell .kvadrat-doc li > p:not([style*="text-indent"]):not([style*="padding-left"]) {
  text-indent: 0;
  margin: 0.1em 0;
}

.kvadrat-document-html li > p[style*="text-indent"],
.kvadrat-doc-shell .kvadrat-doc li > p[style*="text-indent"] {
  text-indent: 0 !important;
}

/* Параграфы и списки ВНУТРИ ячеек таблицы — по левому краю (default Word).
 * Без этого сброса они наследуют `text-align: center` от `<th>` (который
 * всегда center, чтобы заголовочные ячейки были центрированы). Inline
 * `style="text-align:..."` из enrichParagraphMetaInHtml (явный w:jc из docx) побеждает. */
.kvadrat-document-html table td p:not([style*="text-align"]):not([align]),
.kvadrat-document-html table th p:not([style*="text-align"]):not([align]),
.kvadrat-document-html table td li:not([style*="text-align"]):not([align]),
.kvadrat-document-html table th li:not([style*="text-align"]):not([align]),
.kvadrat-doc-shell .kvadrat-doc table td p:not([style*="text-align"]):not([align]),
.kvadrat-doc-shell .kvadrat-doc table th p:not([style*="text-align"]):not([align]),
.kvadrat-doc-shell .kvadrat-doc table td li:not([style*="text-align"]):not([align]),
.kvadrat-doc-shell .kvadrat-doc table th li:not([style*="text-align"]):not([align]) {
  text-align: left;
}

.kvadrat-document-html table td p,
.kvadrat-document-html table th p,
.kvadrat-doc-shell .kvadrat-doc table td p,
.kvadrat-doc-shell .kvadrat-doc table th p {
  margin-top: 0;
  margin-bottom: 0.2em;
}

.kvadrat-document-html table td p:last-child,
.kvadrat-document-html table th p:last-child,
.kvadrat-doc-shell .kvadrat-doc table td p:last-child,
.kvadrat-doc-shell .kvadrat-doc table th p:last-child {
  margin-bottom: 0;
}

/* У центрированных абзацев без отступа первой строки */
.kvadrat-document-html [style*="text-align:center"] p,
.kvadrat-document-html [style*="text-align: center"] p,
.kvadrat-document-html p[align="center"],
.kvadrat-doc-shell .kvadrat-doc [style*="text-align:center"] p,
.kvadrat-doc-shell .kvadrat-doc [style*="text-align: center"] p,
.kvadrat-doc-shell .kvadrat-doc p[align="center"] {
  text-indent: 0;
}

.kvadrat-document-html h1,
.kvadrat-document-html h2,
.kvadrat-document-html h3,
.kvadrat-doc-shell .kvadrat-doc h1,
.kvadrat-doc-shell .kvadrat-doc h2,
.kvadrat-doc-shell .kvadrat-doc h3 {
  font-family: var(--font-article-serif), "Times New Roman", "Noto Serif", Georgia, serif;
  font-weight: 700;
  margin: 0.9em 0 0.5em;
  line-height: 1.25;
}

.kvadrat-document-html h1:not([style*="text-align"]),
.kvadrat-document-html h2:not([style*="text-align"]),
.kvadrat-doc-shell .kvadrat-doc h1:not([style*="text-align"]),
.kvadrat-doc-shell .kvadrat-doc h2:not([style*="text-align"]) {
  text-align: center;
}

/* Жирный как в Word: теги и типичные классы экспорта */
.kvadrat-document-html strong,
.kvadrat-document-html b,
.kvadrat-doc-shell .kvadrat-doc strong,
.kvadrat-doc-shell .kvadrat-doc b {
  font-weight: 700;
}

.kvadrat-document-html .Strong,
.kvadrat-document-html span.Strong,
.kvadrat-doc-shell .kvadrat-doc .Strong,
.kvadrat-doc-shell .kvadrat-doc span.Strong {
  font-weight: 700;
}

.kvadrat-document-html th,
.kvadrat-doc-shell .kvadrat-doc th {
  font-weight: 600;
}

/* Текст вместо ссылок после санитайзера */
.kvadrat-document-html .kvadrat-doc-text-only,
.kvadrat-doc-shell .kvadrat-doc .kvadrat-doc-text-only {
  color: inherit;
  text-decoration: none;
}

/* НПА / Word-импорт: ссылки отображаются как plain text */
.kvadrat-document-html:not(.kv-links-enabled) a,
.kvadrat-doc-shell:not(.kv-links-enabled) .kvadrat-doc:not(.kv-links-enabled) a {
  color: inherit;
  text-decoration: none;
  pointer-events: none;
  cursor: default;
}

/* Статьи редактора и форум: явные кликабельные ссылки */
.kvadrat-document-html.kv-links-enabled a,
.kvadrat-doc-shell.kv-links-enabled .kvadrat-doc a,
.kvadrat-doc.kv-links-enabled a,
.kvadrat-editor-document.kv-links-enabled a,
.fin-gov-article-view.kv-article-links-enabled .kvadrat-doc a,
.fin-gov-article-view.kv-article-links-enabled .kvadrat-document-html a {
  color: #2563eb;
  text-decoration: underline;
  text-decoration-color: rgba(37, 99, 235, 0.45);
  text-underline-offset: 3px;
  pointer-events: auto;
  cursor: pointer;
  transition: color 0.15s ease, text-decoration-color 0.15s ease;
}

.kvadrat-document-html.kv-links-enabled a:hover,
.kvadrat-doc-shell.kv-links-enabled .kvadrat-doc a:hover,
.kvadrat-doc.kv-links-enabled a:hover,
.kvadrat-editor-document.kv-links-enabled a:hover,
.fin-gov-article-view.kv-article-links-enabled .kvadrat-doc a:hover,
.fin-gov-article-view.kv-article-links-enabled .kvadrat-document-html a:hover {
  color: #1d4ed8;
  text-decoration-color: rgba(29, 78, 216, 0.75);
}

.kvadrat-editor-document.kv-links-enabled a:visited,
.fin-gov-article-view.kv-article-links-enabled a:visited {
  color: #4f46e5;
}

/* Скрываем битые изображения (формулы из Word) */
.kvadrat-document-html img[src=""],
.kvadrat-document-html img:not([src]),
.kvadrat-doc-shell .kvadrat-doc img[src=""],
.kvadrat-doc-shell .kvadrat-doc img:not([src]) {
  display: none;
}

.kvadrat-document-html center,
.kvadrat-doc-shell .kvadrat-doc center {
  display: block;
  text-align: center;
}

/* Классы из пост-процессора data-custom-style (КонсультантПлюс и др.).
 * `:not([style*="text-indent"])` уступает inline-стилям документа и заодно
 * добирает специфичность до общего правила красной строки выше — без него
 * центрированный kv-title получал отступ первой строки и уезжал влево. */
.kvadrat-document-html p.kv-title:not([style*="text-indent"]),
.kvadrat-document-html h1.kv-title:not([style*="text-indent"]),
.kvadrat-document-html h2.kv-title:not([style*="text-indent"]),
.kvadrat-document-html .kv-title,
.kvadrat-doc-shell .kvadrat-doc p.kv-title:not([style*="text-indent"]),
.kvadrat-doc-shell .kvadrat-doc h1.kv-title:not([style*="text-indent"]),
.kvadrat-doc-shell .kvadrat-doc h2.kv-title:not([style*="text-indent"]),
.kvadrat-doc-shell .kvadrat-doc .kv-title {
  text-align: center;
  font-weight: 700;
  text-indent: 0;
  margin-bottom: 0.35em;
}

/* Титульный h1 в начале НПА (часто без class/style). */
.kvadrat-document-html > h1:first-child,
.kvadrat-doc.kvadrat-document-html > h1:first-child,
.kvadrat-doc-shell .kvadrat-doc > h1:first-child {
  text-align: center;
  text-indent: 0;
  font-weight: 700;
}

@media (max-width: 639px) {
  .kvadrat-document-html p.kv-title,
  .kvadrat-document-html h1.kv-title,
  .kvadrat-document-html .kv-title,
  .kvadrat-document-html > h1:first-child,
  .kvadrat-doc-shell .kvadrat-doc p.kv-title,
  .kvadrat-doc-shell .kvadrat-doc .kv-title,
  .kvadrat-doc-shell .kvadrat-doc > h1:first-child {
    text-align: center;
    text-indent: 0;
    hyphens: manual;
  }
}

.kvadrat-document-html .kv-center,
.kvadrat-document-html p.kv-center:not([style*="text-indent"]),
.kvadrat-doc-shell .kvadrat-doc .kv-center,
.kvadrat-doc-shell .kvadrat-doc p.kv-center:not([style*="text-indent"]) {
  text-align: center;
  text-indent: 0;
}

.kvadrat-document-html .kv-right,
.kvadrat-document-html p.kv-right:not([style*="text-indent"]),
.kvadrat-doc-shell .kvadrat-doc .kv-right,
.kvadrat-doc-shell .kvadrat-doc p.kv-right:not([style*="text-indent"]) {
  text-align: right;
  text-indent: 0;
}

/* Таблицы: видимая сетка (как в типовых НПА); inline border:none у ячейки перебивает при необходимости */
.kvadrat-document-html table,
.kvadrat-doc-shell .kvadrat-doc table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.75em 0;
  table-layout: auto;
  border: 1px solid #64748b;
}

.kvadrat-document-html .article-table-scroll,
.kvadrat-doc-shell .kvadrat-doc .article-table-scroll,
.fin-gov-article-view .article-table-scroll {
  margin: 0.75em 0;
  max-width: 100%;
}

.kvadrat-document-html .article-table-scroll > table,
.kvadrat-doc-shell .kvadrat-doc .article-table-scroll > table,
.fin-gov-article-view .article-table-scroll > table {
  width: max-content;
  min-width: 100%;
  margin: 0;
}

.kvadrat-document-html td,
.kvadrat-document-html th,
.kvadrat-doc-shell .kvadrat-doc td,
.kvadrat-doc-shell .kvadrat-doc th {
  vertical-align: middle;
  padding: 0.25em 0.45em;
  border: 1px solid #94a3b8;
}

.kvadrat-document-html table p,
.kvadrat-doc-shell .kvadrat-doc table p {
  text-indent: 0;
  margin: 0.12em 0;
}

/* Таблицы без видимой сетки (отчётность, формы) — класс ставит импорт (normalizeDocumentHtml) */
.kvadrat-document-html table.kv-table-gost,
.kvadrat-doc-shell .kvadrat-doc table.kv-table-gost {
  border: none;
  box-shadow: none;
  table-layout: auto;
}

.kvadrat-document-html table.kv-table-gost td,
.kvadrat-document-html table.kv-table-gost th,
.kvadrat-doc-shell .kvadrat-doc table.kv-table-gost td,
.kvadrat-doc-shell .kvadrat-doc table.kv-table-gost th {
  border: none;
  vertical-align: top;
  padding: 0.12em 0.35em;
}

.kvadrat-document-html table.kv-table-gost p,
.kvadrat-doc-shell .kvadrat-doc table.kv-table-gost p {
  margin: 0.08em 0;
}

.kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc table:not(.kv-table-grid):not(.kv-table-gost) {
  border: 0.75pt solid #000000 !important;
  border-collapse: collapse !important;
  table-layout: fixed;
  width: 100%;
  background-color: #ffffff !important;
  color: #0f172a !important;
  font-family: var(--font-article-serif), "Times New Roman", "Noto Serif", Georgia, serif;
}

.kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc table:not(.kv-table-grid):not(.kv-table-gost) td,
.kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc table:not(.kv-table-grid):not(.kv-table-gost) th {
  border: 0.75pt solid #000000 !important;
  vertical-align: top;
  padding: 0.18em 0.4em;
  word-wrap: break-word;
  overflow-wrap: break-word;
  background-color: #ffffff;
  color: #0f172a;
}

.kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc table:not(.kv-table-grid):not(.kv-table-gost) thead th,
.kvadrat-doc-shell.kvadrat-doc-shell--reader .kvadrat-doc table:not(.kv-table-grid):not(.kv-table-gost) > thead > tr > th {
  background-color: transparent !important;
  font-weight: bold;
  text-align: center;
  color: #0f172a !important;
}

/* Явная сетка: пометьте таблицу class="kv-table-grid" в Word/HTML при необходимости.
 * Класс автоматически проставляется DOCX-импортом (convert-document), если в w:tblPr был w:tblBorders.
 * Inline-стили (border, width) от импорта переопределяют значения по умолчанию.
 * Цель — рендерить таблицы 1:1 как в Word: чёрная сетка, серый thead, Times New Roman, vertical-align:top. */
.kvadrat-document-html table.kv-table-grid:not(.kv-table-excel),
.kvadrat-doc-shell .kvadrat-doc table.kv-table-grid:not(.kv-table-excel),
.kvadrat-editor-document table.kv-table-grid:not(.kv-table-excel),
.kvadrat-editor-document .kvadrat-doc table.kv-table-grid:not(.kv-table-excel),
.fin-gov-article-view .kvadrat-doc table.kv-table-grid:not(.kv-table-excel),
.fin-gov-article-view .article-content table.kv-table-grid:not(.kv-table-excel) {
  border: 0.75pt solid #000000;
  border-collapse: collapse;
  /* Без colgroup — auto (контент сам распределяет колонки). */
  table-layout: auto;
  width: 100%;
  min-width: 100%;
  font-family: var(--font-article-serif), "Times New Roman", "Noto Serif", Georgia, serif;
  background-color: #ffffff;
  color: #0f172a;
}

/*
 * Word-like ширины: при наличии <colgroup> и editor, и public используют
 * table-layout: fixed + %/px на <col>. Иначе Tailwind table-fixed в админке
 * конфликтовал с auto здесь — ресайз колонок «ломал» сетку.
 */
.kvadrat-document-html table.kv-table-grid:not(.kv-table-excel):has(> colgroup),
.kvadrat-doc-shell .kvadrat-doc table.kv-table-grid:not(.kv-table-excel):has(> colgroup),
.kvadrat-editor-document table.kv-table-grid:not(.kv-table-excel):has(> colgroup),
.kvadrat-editor-document .kvadrat-doc table.kv-table-grid:not(.kv-table-excel):has(> colgroup),
.fin-gov-article-view .kvadrat-doc table.kv-table-grid:not(.kv-table-excel):has(> colgroup),
.fin-gov-article-view .article-content table.kv-table-grid:not(.kv-table-excel):has(> colgroup) {
  table-layout: fixed;
}

/* Scroll-shell: fixed только когда есть colgroup; иначе auto для «сырых» таблиц. */
.fin-gov-article-view .article-table-scroll > table.kv-table-grid:not(:has(> colgroup)) {
  table-layout: auto !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
}

.fin-gov-article-view .article-table-scroll > table.kv-table-grid:has(> colgroup) {
  table-layout: fixed !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
}

.kvadrat-document-html table.kv-table-grid:not(.kv-table-excel) td,
.kvadrat-document-html table.kv-table-grid:not(.kv-table-excel) th,
.kvadrat-doc-shell .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) td,
.kvadrat-doc-shell .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) th,
.kvadrat-editor-document table.kv-table-grid:not(.kv-table-excel) td,
.kvadrat-editor-document table.kv-table-grid:not(.kv-table-excel) th,
.kvadrat-editor-document .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) td,
.kvadrat-editor-document .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) th,
.fin-gov-article-view .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) td,
.fin-gov-article-view .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) th,
.fin-gov-article-view .article-content table.kv-table-grid:not(.kv-table-excel) td,
.fin-gov-article-view .article-content table.kv-table-grid:not(.kv-table-excel) th {
  border: 0.75pt solid #000000;
  vertical-align: top;
  padding: 0.35em 0.55em;
  word-wrap: break-word;
  overflow-wrap: break-word;
  background-color: #ffffff;
  color: #0f172a;
}

/* <thead>/<th> — bold + center, лёгкая заливка как в разобранных бухгалтерских таблицах. */
.kvadrat-document-html table.kv-table-grid:not(.kv-table-excel) thead th,
.kvadrat-document-html table.kv-table-grid:not(.kv-table-excel) > thead > tr > th,
.kvadrat-doc-shell .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) thead th,
.kvadrat-doc-shell .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) > thead > tr > th,
.kvadrat-editor-document table.kv-table-grid:not(.kv-table-excel) thead th,
.kvadrat-editor-document table.kv-table-grid:not(.kv-table-excel) > thead > tr > th,
.kvadrat-editor-document .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) thead th,
.kvadrat-editor-document .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) > thead > tr > th,
.fin-gov-article-view .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) thead th,
.fin-gov-article-view .article-content table.kv-table-grid:not(.kv-table-excel) thead th {
  background-color: #f3f4f6;
  font-weight: bold;
  font-style: italic;
  text-align: center;
  vertical-align: middle;
}

/* Если ячейка имеет inline background-color — он побеждает (через cascading specificity). */
.kvadrat-document-html table.kv-table-grid:not(.kv-table-excel) th[style*="background-color"],
.kvadrat-document-html table.kv-table-grid:not(.kv-table-excel) td[style*="background-color"],
.kvadrat-doc-shell .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) th[style*="background-color"],
.kvadrat-doc-shell .kvadrat-doc table.kv-table-grid:not(.kv-table-excel) td[style*="background-color"],
.kvadrat-editor-document table.kv-table-grid:not(.kv-table-excel) th[style*="background-color"],
.kvadrat-editor-document table.kv-table-grid:not(.kv-table-excel) td[style*="background-color"] {
  background-color: revert-layer; /* inline style wins */
}

/* BREAKOUT FOR EXCEL WORKBOOKS: when the document contains an Excel workbook,
   it shouldn't be constrained as an A4 sheet. It must be full-width (100%) and fill the entire space,
   just like the Yandex Document Viewer. */
.kvadrat-editor-document-shell:has(.kv-excel-workbook-editor),
.kvadrat-editor-document-shell:has(.kv-excel-workbook),
.kvadrat-editor-document-shell:has(.kv-excel-viewer) {
  padding: 0 !important;
  background: #f8fafc !important;
  width: 100% !important;
  max-width: 100% !important;
}

.kvadrat-editor-document-shell:has(.kv-excel-workbook-editor) .kvadrat-editor-document,
.kvadrat-editor-document-shell:has(.kv-excel-workbook) .kvadrat-editor-document,
.kvadrat-editor-document-shell:has(.kv-excel-viewer) .kvadrat-editor-document {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Also for public/preview document shells containing Excel workbooks. */
.kvadrat-doc-shell:has(.kv-excel-workbook) {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
}

.kvadrat-doc-shell:has(.kv-excel-workbook) .kvadrat-doc {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}

.kvadrat-editor-document > .kv-excel-workbook-editor,
.kvadrat-editor-document > .kv-excel-workbook,
.kvadrat-editor-document .kvadrat-doc > .kv-excel-workbook-editor,
.kvadrat-editor-document .kvadrat-doc > .kv-excel-workbook {
  display: flex;
  width: 100%;
  margin: 0;
}

.kvadrat-editor-document .kv-excel-workbook,
.kvadrat-editor-document .kvadrat-doc .kv-excel-workbook,
.kvadrat-editor-document .kv-excel-workbook-editor,
.kvadrat-editor-document .kvadrat-doc .kv-excel-workbook-editor {
  min-width: 0;
}

.kvadrat-editor-document .kv-excel-workbook-editor,
.kvadrat-editor-document .kvadrat-doc .kv-excel-workbook-editor {
  /* Высота подстраивается под содержимое листа (а не фиксированные 720px),
     поэтому маленькие листы занимают мало места, а большие скроллятся внутри. */
  display: flex;
  flex-direction: column;
  border: 1px solid #e2e8f0;
  border-radius: 0.85rem;
  background: #f8fafc;
  box-shadow: 0 1px 2px rgb(15 23 42 / 0.04);
}

.kvadrat-editor-document .kv-excel-workbook-panel,
.kvadrat-editor-document .kvadrat-doc .kv-excel-workbook-panel {
  /* flex:0 1 auto — высота по содержимому без принудительного растягивания на 100% */
  flex: 0 1 auto;
  height: auto;
  min-height: 0;
}

.kvadrat-editor-document .kv-excel-workbook-panel[hidden] {
  display: none !important;
}

/*
 * Переключатель листов Excel — зелёный underline у активного.
 * Полосу скролла не показываем: при переполнении — стрелки ◀ ▶.
 */
.kv-excel-workbook-tabs {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  margin-top: 0;
  padding: 0;
  border-top: 1px solid #e2e8f0;
  background: #ffffff;
}

.kv-excel-workbook-tabs-label {
  display: none;
}

.kv-excel-workbook-tabs-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  gap: 0.5rem;
  padding: 0 0.5rem 0 0.35rem;
  overflow: hidden;
}

.kv-excel-workbook-tabs-row--with-source {
  /* Табы занимают остаток; ссылка всегда целиком в правой колонке. */
  grid-template-columns: minmax(0, 1fr) max-content;
}

.kv-excel-workbook-tabs-main {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  gap: 0.2rem;
}

.kv-excel-viewer-source-link--footer {
  justify-self: end;
  max-width: 11rem;
  padding: 0.15rem 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #0369a1;
  font-size: 0.7rem;
  font-weight: 500;
  line-height: 1.25;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: rgb(14 165 233 / 0.45);
}

.kv-excel-viewer-source-link--footer:hover {
  color: #0c4a6e;
  text-decoration-color: #0284c7;
}

@media (min-width: 640px) {
  .kv-excel-viewer-source-link--footer {
    max-width: 15rem;
    font-size: 0.75rem;
  }
}

.kv-excel-tab-nav {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  margin: 0.25rem 0;
  border: 1px solid #e2e8f0;
  border-radius: 0.35rem;
  background: #f8fafc;
  color: #475569;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.kv-excel-tab-nav:hover {
  background: #ecfdf5;
  border-color: #a7f3d0;
  color: #047857;
}

.kv-excel-workbook-tablist {
  display: flex;
  flex: 1 1 0%;
  flex-wrap: nowrap;
  min-width: 0;
  max-width: 100%;
  align-items: stretch;
  gap: 0.65rem;
  padding: 0 0.15rem;
  border: none;
  border-radius: 0;
  background: transparent;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.kv-excel-workbook-tablist::-webkit-scrollbar {
  display: none;
  height: 0;
  width: 0;
}

/* Листы как в статье: серый текст, активный — зелёный + тонкий underline. */
.kv-excel-viewer .kv-excel-tab,
.kv-excel-tab {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  box-sizing: border-box;
  height: 2.15rem;
  max-width: 14rem;
  margin: 0;
  padding: 0 0.55rem;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #64748b;
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: normal;
  white-space: nowrap;
  cursor: pointer;
  text-align: left;
  text-decoration: none;
  text-transform: none;
  appearance: none;
  box-shadow: none;
  transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}

.kv-excel-tab-label {
  display: inline-block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kv-excel-viewer .kv-excel-tab:hover,
.kv-excel-tab:hover {
  color: #047857;
  background: #f0fdf4;
}

.kv-excel-viewer .kv-excel-tab:focus,
.kv-excel-tab:focus {
  outline: none;
}

.kv-excel-viewer .kv-excel-tab:focus-visible,
.kv-excel-tab:focus-visible {
  outline: 2px solid #34d399;
  outline-offset: -2px;
}

.kv-excel-viewer .kv-excel-tab[aria-selected="true"],
.kv-excel-tab[aria-selected="true"] {
  background: transparent;
  color: #047857;
  border-bottom: 1px solid #059669;
  box-shadow: none;
  font-weight: 600;
}

.kv-excel-viewer .kv-excel-tab[aria-selected="true"]:hover,
.kv-excel-tab[aria-selected="true"]:hover {
  background: #f0fdf4;
  color: #065f46;
  border-bottom-color: #047857;
  box-shadow: none;
}

/* В редакторе таб-бар примыкает к сетке без верхнего внешнего отступа. */
.kvadrat-editor-document .kv-excel-workbook-tabs,
.kvadrat-editor-document .kvadrat-doc .kv-excel-workbook-tabs {
  margin-top: 0;
}

.kvadrat-editor-document .kv-excel-workbook-editor [role="tabpanel"],
.kvadrat-editor-document .kvadrat-doc .kv-excel-workbook-editor [role="tabpanel"] {
  outline: none;
}

.kvadrat-editor-document .kv-excel-sheet,
.kvadrat-editor-document .kvadrat-doc .kv-excel-sheet {
  margin: 0;
  height: auto;
  min-width: 0;
  min-height: 0;
}

.kvadrat-editor-document .kv-excel-sheet-title,
.kvadrat-editor-document .kvadrat-doc .kv-excel-sheet-title {
  margin: 0;
  padding: 0.75rem 0.5rem 0.6rem;
  font-family: Inter, Arial, sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
  color: #334155;
}

/* Статья / чат: имя листа только слева в тулбаре, не второй строкой над сеткой. */
.kv-excel-viewer--readonly .kv-excel-sheet-title,
.kv-excel-viewer--article .kv-excel-sheet-title,
.kv-excel-viewer--readonly .kv-excel-html-fallback .kv-excel-sheet-title,
.kv-excel-viewer--article .kv-excel-html-fallback .kv-excel-sheet-title {
  display: none !important;
}

.kvadrat-editor-document .kv-excel-sheet > .group\/table,
.kvadrat-editor-document .kvadrat-doc .kv-excel-sheet > .group\/table {
  /* по содержимому, без растягивания на всю высоту контейнера */
  flex: 0 1 auto;
  min-height: 0;
}

.kvadrat-editor-document .kv-excel-scroll-shell,
.kvadrat-editor-document .kvadrat-doc .kv-excel-scroll-shell {
  /* Область прокрутки таблицы фитится под её содержимое, но не выше лимита —
     тогда включается внутренний скролл (по аналогии с просмотрщиком документов). */
  flex: 0 1 auto;
  min-height: 0;
  max-height: var(--kv-excel-sheet-max-height, 78vh);
  scrollbar-gutter: stable both-edges;
  overscroll-behavior: contain;
  /* Пропускаем отрисовку таблицы, пока она вне вьюпорта — рендер не блокируется
     огромными листами на слабых устройствах. contain-intrinsic-size держит
     стабильную раскладку скролла до первой отрисовки. */
  content-visibility: auto;
  contain-intrinsic-size: auto 600px;
}

/* Просмотр Excel на публичной странице статьи — как в редакторе / Yandex Docs Viewer. */
.kv-excel-viewer {
  --kv-excel-sheet-max-height: calc(100vh - 260px);
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  min-height: 0;
}

.kv-excel-viewer.kv-excel-viewer--article {
  --kv-excel-sheet-max-height: min(90vh, calc(100dvh - 7rem));
  min-height: 0;
  height: auto;
  border: 1px solid #e2e8f0;
  border-radius: 0.5rem;
  background: #ffffff;
  color-scheme: light;
  color: #0f172a;
  overflow: visible;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.kv-excel-viewer.kv-excel-viewer--article .kv-excel-viewer-canvas-wrap {
  flex: 0 1 auto;
  min-height: 0;
}

.kv-excel-viewer.kv-excel-viewer--article .kv-excel-viewer-toolbar {
  margin-bottom: 0;
  border-radius: 0.5rem 0.5rem 0 0;
  border-bottom: 1px solid #e2e8f0;
  background: #ffffff;
  box-shadow: none;
}


.kv-excel-viewer.kv-excel-viewer--article .kv-excel-viewer-canvas {
  border-radius: 0;
  background: #ffffff;
}

.kv-excel-viewer.kv-excel-viewer--article .kv-excel-viewer-stage-align {
  align-items: flex-start;
}

.kv-excel-viewer.kv-excel-viewer--article .kv-excel-viewer-stage-spacer {
  margin-inline: 0;
}

/*
 * Fullscreen: белый холст как в article.
 * Важно: article-table-wide / full-bleed дают отрицательные margin и width > 100%
 * с более высокой специфичностью — в FS их надо жёстко сбросить, иначе вокруг
 * остаётся чёрный UA-backdrop и «ломается» светлая тема.
 */
.kv-excel-viewer:fullscreen,
.kv-excel-viewer:-webkit-full-screen,
.kv-excel-viewer.kv-excel-viewer--fullscreen,
.kv-excel-viewer.article-table-wide:fullscreen,
.kv-excel-viewer.article-table-full-bleed:fullscreen,
.kv-excel-viewer.article-table-wide:-webkit-full-screen,
.kv-excel-viewer.article-table-full-bleed:-webkit-full-screen,
.kv-article-has-excel .kv-excel-viewer.article-table-wide:fullscreen,
.kv-article-has-excel .kv-excel-viewer.article-table-full-bleed:fullscreen,
.kv-article-has-excel .kv-excel-viewer.article-table-wide:-webkit-full-screen,
.kv-article-has-excel .kv-excel-viewer.article-table-full-bleed:-webkit-full-screen,
.fingov-chat-excel-shell .kv-excel-viewer:fullscreen,
.fingov-chat-excel-shell .kv-excel-viewer:-webkit-full-screen,
.fingov-chat-excel-shell .kv-excel-viewer.kv-excel-viewer--fullscreen {
  /* Жёстко 100vh — иначе article max-height схлопывает оболочку до контента. */
  --kv-excel-sheet-max-height: calc(100vh - 3rem);
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  inset: auto !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  width: 100vw !important;
  max-width: 100vw !important;
  min-width: 0 !important;
  height: 100vh !important;
  max-height: 100vh !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  color-scheme: light !important;
  color: #0f172a !important;
  overflow: hidden !important;
}

.kv-excel-viewer:fullscreen::backdrop,
.kv-excel-viewer:-webkit-full-screen::backdrop {
  background: #ffffff;
}

.kv-excel-viewer:fullscreen .kv-excel-viewer-toolbar,
.kv-excel-viewer:-webkit-full-screen .kv-excel-viewer-toolbar,
.kv-excel-viewer.kv-excel-viewer--fullscreen .kv-excel-viewer-toolbar {
  flex: 0 0 auto;
  margin: 0 !important;
  padding: 0.5rem 0.75rem !important;
  background: #ffffff !important;
  border: none !important;
  border-bottom: 1px solid #e2e8f0 !important;
  border-radius: 0 !important;
  color: #0f172a;
}

.kv-excel-viewer:fullscreen .kv-excel-viewer-canvas-wrap,
.kv-excel-viewer:fullscreen .kv-excel-scroll-shell,
.kv-excel-viewer:fullscreen .kv-excel-workbook-editor,
.kv-excel-viewer:fullscreen .kv-excel-workbook-tabs,
.kv-excel-viewer:fullscreen .kv-excel-viewer-canvas,
.kv-excel-viewer:fullscreen .kv-excel-viewer-stage-align,
.kv-excel-viewer:fullscreen .kv-excel-sheet,
.kv-excel-viewer:-webkit-full-screen .kv-excel-viewer-canvas-wrap,
.kv-excel-viewer:-webkit-full-screen .kv-excel-scroll-shell,
.kv-excel-viewer:-webkit-full-screen .kv-excel-workbook-editor,
.kv-excel-viewer:-webkit-full-screen .kv-excel-workbook-tabs,
.kv-excel-viewer:-webkit-full-screen .kv-excel-viewer-canvas,
.kv-excel-viewer:-webkit-full-screen .kv-excel-viewer-stage-align,
.kv-excel-viewer:-webkit-full-screen .kv-excel-sheet,
.kv-excel-viewer.kv-excel-viewer--fullscreen .kv-excel-viewer-canvas-wrap,
.kv-excel-viewer.kv-excel-viewer--fullscreen .kv-excel-scroll-shell,
.kv-excel-viewer.kv-excel-viewer--fullscreen .kv-excel-workbook-editor,
.kv-excel-viewer.kv-excel-viewer--fullscreen .kv-excel-workbook-tabs,
.kv-excel-viewer.kv-excel-viewer--fullscreen .kv-excel-viewer-canvas,
.kv-excel-viewer.kv-excel-viewer--fullscreen .kv-excel-viewer-stage-align,
.kv-excel-viewer.kv-excel-viewer--fullscreen .kv-excel-sheet {
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #0f172a;
  color-scheme: light;
}

/* Забираем всю высоту под тулбаром — даже если строк мало. */
.kv-excel-viewer:fullscreen .kv-excel-viewer-canvas-wrap,
.kv-excel-viewer:-webkit-full-screen .kv-excel-viewer-canvas-wrap,
.kv-excel-viewer.kv-excel-viewer--fullscreen .kv-excel-viewer-canvas-wrap {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

.kv-excel-viewer:fullscreen .kv-excel-scroll-shell,
.kv-excel-viewer:-webkit-full-screen .kv-excel-scroll-shell,
.kv-excel-viewer.kv-excel-viewer--fullscreen .kv-excel-scroll-shell,
.kv-excel-viewer.kv-excel-viewer--article:fullscreen .kv-excel-scroll-shell,
.kv-excel-viewer.kv-excel-viewer--article:-webkit-full-screen .kv-excel-scroll-shell,
.kv-excel-viewer.kv-excel-viewer--article.kv-excel-viewer--fullscreen .kv-excel-scroll-shell {
  content-visibility: visible;
  contain-intrinsic-size: none;
  flex: 1 1 0 !important;
  min-height: calc(100vh - 3rem) !important;
  height: calc(100vh - 3rem) !important;
  max-height: calc(100vh - 3rem) !important;
  overflow: auto !important;
  overflow-x: auto !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.kv-excel-viewer:fullscreen .kv-excel-viewer-stage-align,
.kv-excel-viewer:-webkit-full-screen .kv-excel-viewer-stage-align,
.kv-excel-viewer.kv-excel-viewer--fullscreen .kv-excel-viewer-stage-align {
  align-items: flex-start;
  min-height: 100%;
}

@media (min-width: 768px) {
  .kv-excel-viewer:fullscreen .kv-excel-scroll-shell,
  .kv-excel-viewer:-webkit-full-screen .kv-excel-scroll-shell,
  .kv-excel-viewer.kv-excel-viewer--fullscreen .kv-excel-scroll-shell {
    touch-action: pan-x pan-y;
  }
}

.kv-excel-viewer .kv-excel-workbook-editor {
  flex: 0 1 auto;
  min-height: 0;
}

.kv-excel-viewer .kv-excel-scroll-shell {
  max-height: var(--kv-excel-sheet-max-height, calc(100vh - 260px));
  min-height: 0;
  height: auto;
  flex: 0 1 auto;
  min-width: 0;
  overflow: auto;
  overflow-x: auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  /* Тонкий серый скролл (не системный ярко-синий). */
  scrollbar-width: thin;
  scrollbar-color: #94a3b8 transparent;
}

.kv-excel-viewer .kv-excel-scroll-shell::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.kv-excel-viewer .kv-excel-scroll-shell::-webkit-scrollbar-track {
  background: transparent;
}

.kv-excel-viewer .kv-excel-scroll-shell::-webkit-scrollbar-thumb {
  background: #94a3b8;
  border-radius: 9999px;
}

.kv-excel-viewer .kv-excel-scroll-shell::-webkit-scrollbar-thumb:hover {
  background: #64748b;
}

@media (min-width: 768px) {
  .kv-excel-viewer .kv-excel-scroll-shell {
    touch-action: pan-x;
  }
}

.kv-excel-viewer.kv-excel-viewer--article .kv-excel-scroll-shell {
  min-height: 0;
  max-height: var(--kv-excel-sheet-max-height, min(90vh, calc(100dvh - 7rem)));
  background: #ffffff;
}

.kv-excel-viewer.kv-excel-viewer--article .kv-excel-sheet {
  flex: 0 1 auto;
}

.kv-excel-viewer.kv-excel-viewer--article .kv-excel-workbook-panel {
  flex: 0 1 auto;
}

/*
 * Центрирование узкого листа: min-width 100% трека + flex; широкий лист — трек растёт по max-content,
 * скролл с начала (без «прыжка влево» при смене вкладки из-за неверного contentSize).
 */
.kv-excel-viewer-stage-align {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  width: max-content;
  min-width: 100%;
}

.kv-excel-viewer-stage-spacer {
  vertical-align: top;
  max-width: none;
  display: block;
  margin-inline: auto;
}

/* Смена листа: плавная высота, без тяжёлого JS. */
.kv-excel-viewer-stage-spacer--smooth-h {
  transition: height 0.22s ease-out;
  will-change: height;
}

@media (prefers-reduced-motion: reduce) {
  .kv-excel-viewer-stage-spacer--smooth-h {
    transition: none;
    will-change: auto;
  }
  mark.fingov-cite-mark {
    animation: none;
    background-color: #ffff00;
  }
  td.fingov-cite-cell,
  th.fingov-cite-cell {
    animation: none;
    background-size: 100% 100% !important;
  }
}

.kv-excel-viewer-stage {
  transform-origin: top left;
}

.kv-excel-viewer-toolbar {
  backdrop-filter: blur(6px);
}

.kv-excel-viewer--plate .kv-excel-plate-readonly {
  width: 100%;
}

.kv-excel-viewer--plate .kv-excel-viewer-canvas {
  scrollbar-gutter: stable both-edges;
}

.kv-excel-viewer--plate .kvadrat-editor-document-shell {
  padding: 0 !important;
  background: transparent !important;
}

.kv-excel-viewer--plate .kvadrat-editor-document {
  padding: 0 !important;
  margin: 0 !important;
}

/* На публичной странице не даём .article-content менять отступы внутри Excel-ячеек */
.kv-article-has-excel .article-content table.kv-table-excel p,
.kv-excel-viewer table.kv-table-excel p {
  margin: 0 !important;
}

.kvadrat-editor-document.is-excel-workbook,
.kvadrat-editor-document-shell.is-excel-workbook {
  width: 100% !important;
  max-width: 100% !important;
}

.kv-excel-viewer--readonly .kv-excel-workbook-v2-wrapper {
  width: 100%;
}

.kv-excel-viewer--editable table.kv-table-excel td.kv-excel-cell-editable:hover {
  outline: 1px dashed rgb(16 185 129 / 0.55);
  outline-offset: -1px;
}

.kv-excel-viewer--editable .kv-excel-cell-input {
  box-sizing: border-box;
}

.kv-excel-v2 table.kv-table-excel td p,
.kv-excel-v2 table.kv-table-excel th p,
.kv-excel-viewer.kv-excel-v2 table.kv-table-excel p {
  margin: 0;
  text-align: inherit;
  vertical-align: inherit;
}

/*
 * LaTeX внутри ячеек таблиц (Excel и обычных HTML-таблиц): inline-формулы текут в
 * строке ячейки, блочные ($$…$$ в обычных таблицах) — компактные, чтобы не распирать
 * строку. В Excel-ячейках формулы всегда inline (см. excel-cell-content.ts).
 */
.kv-table-grid td .kv-equation-block,
.kv-table-grid th .kv-equation-block,
.article-content table td .kv-equation-block,
.article-content table th .kv-equation-block,
.kvadrat-doc table td .kv-equation-block,
.kvadrat-doc table th .kv-equation-block {
  margin-block: 0.2em;
}

.kv-table-excel td .kv-equation-inline,
.kv-table-excel th .kv-equation-inline,
.kv-excel-cell-rich .kv-equation-inline {
  white-space: normal;
}

.kv-excel-v2 .kv-excel-html-fallback section.kv-excel-sheet {
  display: block;
}

table.kv-table-excel {
  background-color: #ffffff !important;
  color: #0f172a !important;
  box-shadow: 0 1px 2px rgb(15 23 42 / 0.04);
  /* Set default Excel Calibri look for unstyled cells */
  font-family: Calibri, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  font-size: 11pt !important;
  border-collapse: collapse !important;
  table-layout: fixed !important;
  width: auto !important; /* let inline style width win */
  max-width: none !important;
}

table.kv-table-excel td,
table.kv-table-excel th {
  /* Узкие отступы как в Excel (~2px по бокам, минимум сверху/снизу), чтобы строка
     по высоте совпадала с заданной в файле, а не растягивалась лишним паддингом. */
  padding: 1px 3px !important;
  /* vertical-align БЕЗ !important — вертикальное выравнивание из файла
     (vertical-align:middle/bottom на самой ячейке) ДОЛЖНО побеждать. `top` —
     лишь дефолт для ячеек без явного выравнивания. Раньше `!important` затирал
     центрирование из xlsx, и текст «прилипал» к верху объединённых ячеек. */
  vertical-align: top;
  line-height: 1.2 !important;
  /* Светлая сетка Excel ПО УМОЛЧАНИЮ — БЕЗ !important, чтобы инлайн-границы из файла
     (цвет/толщина/стиль из w:border) ПОБЕЖДАЛИ. Ячейки без явных границ показывают
     эту светло-серую сетку, как в Excel. */
  border: 1px solid #d1d5db;
  overflow: hidden;
  white-space: nowrap;
  word-wrap: normal !important;
  overflow-wrap: normal !important;
  background-color: #ffffff;
}

/* Статья / чат (readonly): чуть больше воздуха по высоте, как «красивые» ячейки в чате. */
.kv-excel-viewer--readonly table.kv-table-excel td,
.kv-excel-viewer--readonly table.kv-table-excel th,
.kv-excel-viewer--article table.kv-table-excel td,
.kv-excel-viewer--article table.kv-table-excel th {
  padding: 6px 8px !important;
  line-height: 1.35 !important;
}

/* Ячейки с переносом строк (wrapText из Excel или длинный текст при импорте) */
table.kv-table-excel td[style*="white-space:pre-wrap"],
table.kv-table-excel td[style*="white-space:normal"],
table.kv-table-excel th[style*="white-space:pre-wrap"] {
  white-space: pre-wrap !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
  overflow: visible !important;
}

table.kv-table-excel td > div,
table.kv-table-excel th > div {
  padding: 0 !important;
}

/* Скрытые столбцы Excel (state hidden) полностью схлопнуты — как в самом Excel.
   Перебиваем !important-бордеры/паддинги ячеек, чтобы не оставалось видимой полоски. */
table.kv-table-excel col.kv-x-hidden {
  width: 0 !important;
}

table.kv-table-excel td.kv-x-hidden,
table.kv-table-excel th.kv-x-hidden {
  width: 0 !important;
  max-width: 0 !important;
  padding: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  overflow: hidden !important;
}

table.kv-table-excel p {
  margin: 0 !important;
  padding: 0 !important;
  font-size: inherit !important;
  font-family: inherit !important;
  font-weight: inherit !important;
  font-style: inherit !important;
  line-height: inherit !important;
  text-indent: 0 !important;
  /* КРИТИЧНО: горизонтальное выравнивание Excel задаётся на самой ячейке
     (<td style="text-align:center">), а абзац внутри должен его НАСЛЕДОВАТЬ.
     Общие правила `.kvadrat-editor-document table td p { text-align:left }`
     (и justify для документов) иначе принудительно сбрасывали выравнивание
     ячеек Excel в left — текст переставал быть центрированным. `inherit`
     возвращает выравнивание из ячейки = из файла. */
  text-align: inherit !important;
  /* Цвет текста ячейки (color из xlsx на <td>) также наследуется абзацем. */
  color: inherit !important;
}

/*
 * РЕДАКТОРНЫЙ FALLBACK: Word-таблицы БЕЗ явных бордеров (layout-таблицы) показываем
 * с тонкой ШТРИХОВОЙ светло-серой сеткой — чтобы автор видел структуру и мог
 * редактировать ячейки. На public/preview эти таблицы остаются без видимых бордеров
 * (выглядят как в Word). Применяется ТОЛЬКО внутри `.kvadrat-editor-document`.
 *
 * Селектор `:not(.kv-table-grid)` исключает таблицы с явными бордерами из Word —
 * для них уже есть полные правила выше.
 */
.kvadrat-editor-document table:not(.kv-table-grid),
.kvadrat-editor-document .kvadrat-doc table:not(.kv-table-grid) {
  border-collapse: collapse;
  table-layout: fixed;
  width: 100%;
  border: 1px dashed #cbd5e1;
}

.kvadrat-editor-document table:not(.kv-table-grid) td,
.kvadrat-editor-document table:not(.kv-table-grid) th,
.kvadrat-editor-document .kvadrat-doc table:not(.kv-table-grid) td,
.kvadrat-editor-document .kvadrat-doc table:not(.kv-table-grid) th {
  border: 1px dashed #cbd5e1;
  vertical-align: top;
  padding: 0.18em 0.4em;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* <thead>/<th> — только bold для структурного маркера, БЕЗ серой заливки */
.kvadrat-editor-document table:not(.kv-table-grid) thead th,
.kvadrat-editor-document .kvadrat-doc table:not(.kv-table-grid) thead th {
  background-color: transparent;
  font-weight: bold;
}

/*
 * УНИВЕРСАЛЬНЫЙ FALLBACK для таблиц в любом контейнере (.article-content, .prose, ...).
 * Срабатывает для старых статей без обёртки kvadrat-doc, а также там, где dark-mode
 * (например, тёмная админская подложка) пытается перекрасить ячейки в синий.
 * Word-look: тонкие чёрные бордеры, белый фон, серый thead, top-align, Times New Roman.
 */
table.kv-table-grid:not(.kv-table-excel) {
  border: 0.75pt solid #000000 !important;
  border-collapse: collapse !important;
  background-color: #ffffff !important;
  color: #0f172a !important;
  font-family: var(--font-article-serif), "Times New Roman", "Noto Serif", Georgia, serif;
  width: 100%;
}

table.kv-table-grid:not(.kv-table-excel) td,
table.kv-table-grid:not(.kv-table-excel) th {
  border: 0.75pt solid #000000 !important;
  vertical-align: top;
  padding: 0.18em 0.4em;
  word-wrap: break-word;
  overflow-wrap: break-word;
  background-color: #ffffff;
  color: #0f172a;
}

table.kv-table-grid:not(.kv-table-excel) thead th,
table.kv-table-grid:not(.kv-table-excel) > thead > tr > th {
  background-color: transparent !important;
  font-weight: bold;
  text-align: center;
  color: #0f172a !important;
}

/* Inline background-color из импорта DOCX побеждает дефолт */
table.kv-table-grid:not(.kv-table-excel) td[style*="background"],
table.kv-table-grid:not(.kv-table-excel) th[style*="background"] {
  background: revert-layer !important;
}

/* Списки внутри ячеек — Word-look: маленькие отступы, видимые маркеры */
table.kv-table-grid td ul,
table.kv-table-grid th ul,
table.kv-table-grid td ol,
table.kv-table-grid th ol {
  margin: 0.15em 0;
  padding-left: 1.4em;
  list-style-position: outside;
}

table.kv-table-grid td ul {
  list-style-type: disc;
}

table.kv-table-grid td ol {
  list-style-type: decimal;
}

table.kv-table-grid td li,
table.kv-table-grid th li {
  margin: 0.05em 0;
}

table.kv-table-grid td p,
table.kv-table-grid th p {
  margin: 0.08em 0;
  text-indent: 0;
}

/* Изображения внутри ячеек — фит по ширине колонки */
table.kv-table-grid td img,
table.kv-table-grid th img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0.2em auto;
}

/* Картинки в импорте — вписываются в ширину колонки/документа */
.kvadrat-document-html .kvadrat-doc img,
.kvadrat-doc-shell .kvadrat-doc img,
.kvadrat-editor-document img {
  max-width: 100%;
  height: auto;
  display: inline-block;
  vertical-align: middle;
}

/* Inline highlight на runs: mammoth styleMap превращает w:highlight в <mark class="kv-hl kv-hl-<color>">.
 * Цвета — точно по OOXML (yellow/green/cyan/...). Используем `inherit` для color, чтобы
 * текст оставался читаемым на любом фоне. */
.kvadrat-document-html .kvadrat-doc mark.kv-hl,
.kvadrat-doc-shell .kvadrat-doc mark.kv-hl,
.kvadrat-editor-document mark.kv-hl {
  background-color: #fff59d; /* fallback — мягкий жёлтый */
  color: inherit;
  padding: 0 0.1em;
  border-radius: 1px;
}
.kvadrat-document-html mark.kv-hl-yellow,      .kvadrat-doc-shell mark.kv-hl-yellow,      .kvadrat-editor-document mark.kv-hl-yellow      { background-color: #ffff00; }
@keyframes fingov-cite-mark-draw {
  from {
    background-color: rgb(255 255 0 / 0);
  }
  to {
    background-color: #ffff00;
  }
}

@keyframes fingov-cite-cell-draw {
  from {
    background-size: 0% 100%;
  }
  to {
    background-size: 100% 100%;
  }
}

.kvadrat-document-html mark.fingov-cite-mark,
.kvadrat-doc-shell mark.fingov-cite-mark,
.kvadrat-editor-document mark.fingov-cite-mark {
  display: inline;
  position: static;
  color: inherit;
  scroll-margin-top: 6.5rem;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  background-image: none;
  background-color: #ffff00;
  animation: fingov-cite-mark-draw 0.45s ease-out both;
  animation-delay: var(--fingov-cite-delay, 0ms);
}
.kvadrat-document-html td.fingov-cite-cell,
.kvadrat-document-html th.fingov-cite-cell,
.kvadrat-doc-shell td.fingov-cite-cell,
.kvadrat-doc-shell th.fingov-cite-cell,
.kvadrat-editor-document td.fingov-cite-cell,
.kvadrat-editor-document th.fingov-cite-cell {
  background-color: transparent !important;
  background-image: linear-gradient(#fff59d, #fff59d) !important;
  background-repeat: no-repeat !important;
  background-position: left center !important;
  background-size: 0% 100%;
  animation: fingov-cite-cell-draw 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  animation-delay: var(--fingov-cite-delay, 0ms);
  scroll-margin-top: 6.5rem;
}
.kvadrat-document-html mark.kv-hl-green,       .kvadrat-doc-shell mark.kv-hl-green,       .kvadrat-editor-document mark.kv-hl-green       { background-color: #00ff00; }
.kvadrat-document-html mark.kv-hl-cyan,        .kvadrat-doc-shell mark.kv-hl-cyan,        .kvadrat-editor-document mark.kv-hl-cyan        { background-color: #00ffff; }
.kvadrat-document-html mark.kv-hl-magenta,     .kvadrat-doc-shell mark.kv-hl-magenta,     .kvadrat-editor-document mark.kv-hl-magenta     { background-color: #ff00ff; }
.kvadrat-document-html mark.kv-hl-red,         .kvadrat-doc-shell mark.kv-hl-red,         .kvadrat-editor-document mark.kv-hl-red         { background-color: #ff5555; }
.kvadrat-document-html mark.kv-hl-blue,        .kvadrat-doc-shell mark.kv-hl-blue,        .kvadrat-editor-document mark.kv-hl-blue        { background-color: #6f9eff; color: #fff; }
.kvadrat-document-html mark.kv-hl-darkBlue,    .kvadrat-doc-shell mark.kv-hl-darkBlue,    .kvadrat-editor-document mark.kv-hl-darkBlue    { background-color: #000080; color: #fff; }
.kvadrat-document-html mark.kv-hl-darkCyan,    .kvadrat-doc-shell mark.kv-hl-darkCyan,    .kvadrat-editor-document mark.kv-hl-darkCyan    { background-color: #008080; color: #fff; }
.kvadrat-document-html mark.kv-hl-darkGreen,   .kvadrat-doc-shell mark.kv-hl-darkGreen,   .kvadrat-editor-document mark.kv-hl-darkGreen   { background-color: #008000; color: #fff; }
.kvadrat-document-html mark.kv-hl-darkMagenta, .kvadrat-doc-shell mark.kv-hl-darkMagenta, .kvadrat-editor-document mark.kv-hl-darkMagenta { background-color: #800080; color: #fff; }
.kvadrat-document-html mark.kv-hl-darkRed,     .kvadrat-doc-shell mark.kv-hl-darkRed,     .kvadrat-editor-document mark.kv-hl-darkRed     { background-color: #800000; color: #fff; }
.kvadrat-document-html mark.kv-hl-darkYellow,  .kvadrat-doc-shell mark.kv-hl-darkYellow,  .kvadrat-editor-document mark.kv-hl-darkYellow  { background-color: #808000; color: #fff; }
.kvadrat-document-html mark.kv-hl-darkGray,    .kvadrat-doc-shell mark.kv-hl-darkGray,    .kvadrat-editor-document mark.kv-hl-darkGray    { background-color: #808080; color: #fff; }
.kvadrat-document-html mark.kv-hl-lightGray,   .kvadrat-doc-shell mark.kv-hl-lightGray,   .kvadrat-editor-document mark.kv-hl-lightGray   { background-color: #c0c0c0; }
.kvadrat-document-html mark.kv-hl-black,       .kvadrat-doc-shell mark.kv-hl-black,       .kvadrat-editor-document mark.kv-hl-black       { background-color: #333; color: #fff; }

/* Шрифты на runs — mammoth styleMap проставляет один из этих классов по w:rFonts/@w:ascii.
 * Имена fallback'ов соответствуют font-stack по умолчанию для каждого семейства. */
.kvadrat-document-html .kv-font-arial,    .kvadrat-doc-shell .kv-font-arial,    .kvadrat-editor-document .kv-font-arial    { font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; }
.kvadrat-document-html .kv-font-times,    .kvadrat-doc-shell .kv-font-times,    .kvadrat-editor-document .kv-font-times    { font-family: var(--font-article-serif), "Times New Roman", Times, serif; }
.kvadrat-document-html .kv-font-mono,     .kvadrat-doc-shell .kv-font-mono,     .kvadrat-editor-document .kv-font-mono     { font-family: "Courier New", Consolas, "Liberation Mono", monospace; }
.kvadrat-document-html .kv-font-calibri,  .kvadrat-doc-shell .kv-font-calibri,  .kvadrat-editor-document .kv-font-calibri  { font-family: Calibri, "Segoe UI", system-ui, sans-serif; }
.kvadrat-document-html .kv-font-verdana,  .kvadrat-doc-shell .kv-font-verdana,  .kvadrat-editor-document .kv-font-verdana  { font-family: Verdana, Geneva, sans-serif; }
.kvadrat-document-html .kv-font-tahoma,   .kvadrat-doc-shell .kv-font-tahoma,   .kvadrat-editor-document .kv-font-tahoma   { font-family: Tahoma, Geneva, Verdana, sans-serif; }
.kvadrat-document-html .kv-font-georgia,  .kvadrat-doc-shell .kv-font-georgia,  .kvadrat-editor-document .kv-font-georgia  {
  font-family: var(--font-article-serif), Georgia, "Times New Roman", serif;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}

/* Подсветка ячеек, в которых был хотя бы один run с w:highlight (yellow/red и т.п.).
 * data-cell-highlight содержит CSS-цвет (#ffff00 и т.д.) — рендерим тонкую полосу слева,
 * чтобы не «закрашивать» весь фон ячейки и сохранить читаемость. */
.kvadrat-document-html .kvadrat-doc td[data-cell-highlight],
.kvadrat-document-html .kvadrat-doc th[data-cell-highlight],
.kvadrat-doc-shell .kvadrat-doc td[data-cell-highlight],
.kvadrat-doc-shell .kvadrat-doc th[data-cell-highlight],
.kvadrat-editor-document td[data-cell-highlight],
.kvadrat-editor-document th[data-cell-highlight] {
  position: relative;
}
.kvadrat-document-html .kvadrat-doc td[data-cell-highlight]::before,
.kvadrat-document-html .kvadrat-doc th[data-cell-highlight]::before,
.kvadrat-doc-shell .kvadrat-doc td[data-cell-highlight]::before,
.kvadrat-doc-shell .kvadrat-doc th[data-cell-highlight]::before,
.kvadrat-editor-document td[data-cell-highlight]::before,
.kvadrat-editor-document th[data-cell-highlight]::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background-color: var(--kv-cell-highlight, #fde047);
  pointer-events: none;
}

.kvadrat-document-html ul,
.kvadrat-document-html ol,
.kvadrat-doc-shell .kvadrat-doc ul,
.kvadrat-doc-shell .kvadrat-doc ol {
  list-style-position: outside;
  margin: 0.4em 0 0.6em;
  padding-left: clamp(1.25rem, 4vw, 1.75rem);
}

.kvadrat-document-html ul:not([style*="list-style-type"]),
.kvadrat-doc-shell .kvadrat-doc ul:not([style*="list-style-type"]) {
  list-style-type: disc;
}

.kvadrat-document-html ol:not([style*="list-style-type"]),
.kvadrat-doc-shell .kvadrat-doc ol:not([style*="list-style-type"]) {
  list-style-type: decimal;
}

.kvadrat-document-html li,
.kvadrat-doc-shell .kvadrat-doc li {
  margin: 0.2em 0;
  text-indent: 0;
}

.kvadrat-document-html li > ul,
.kvadrat-document-html li > ol,
.kvadrat-doc-shell .kvadrat-doc li > ul,
.kvadrat-doc-shell .kvadrat-doc li > ol {
  margin: 0.2em 0;
}

.kvadrat-document-html li > ul:not([style*="list-style-type"]),
.kvadrat-doc-shell .kvadrat-doc li > ul:not([style*="list-style-type"]) {
  list-style-type: circle;
}

.kvadrat-document-html li > ul > li > ul:not([style*="list-style-type"]),
.kvadrat-doc-shell .kvadrat-doc li > ul > li > ul:not([style*="list-style-type"]) {
  list-style-type: square;
}

.kvadrat-document-html li > ol:not([style*="list-style-type"]),
.kvadrat-doc-shell .kvadrat-doc li > ol:not([style*="list-style-type"]) {
  list-style-type: lower-alpha;
}

.kvadrat-document-html li > ol > li > ol:not([style*="list-style-type"]),
.kvadrat-doc-shell .kvadrat-doc li > ol > li > ol:not([style*="list-style-type"]) {
  list-style-type: lower-roman;
}

/* Редактор админки: тот же вид в contentEditable */
.kvadrat-editor-document-shell {
  overflow-x: auto;
  background: rgb(248 250 252);
  padding: 1rem;
}

.kvadrat-editor-document,
.kvadrat-editor-document .kvadrat-doc {
  font-family: var(--font-article-serif), "Times New Roman", "Noto Serif", Georgia, serif;
  font-size: 12pt;
  line-height: 1.5;
  color: #0f172a;
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
  max-width: 210mm;
  margin-left: auto;
  margin-right: auto;
  padding: 1.4cm 1.5cm 1.6cm;
  background: #fff;
  min-height: 560px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06), 0 4px 24px rgba(15, 23, 42, 0.06);
}

/*
 * Альбомный формат внутри редактора (Plate contentEditable):
 * автоматически расширяет «лист» до 297mm, если внутри есть .kvadrat-doc[data-page-orient="landscape"].
 * Поля из документа применяются через --doc-mt/mr/mb/ml.
 */
.kvadrat-editor-document .kvadrat-doc[data-page-orient="landscape"] {
  max-width: 297mm;
}

.kvadrat-editor-document .kvadrat-doc[data-page-orient] {
  padding-top: var(--doc-mt, 1.4cm);
  padding-right: var(--doc-mr, 1.5cm);
  padding-bottom: var(--doc-mb, 1.6cm);
  padding-left: var(--doc-ml, 1.5cm);
}

/* Шелл редактора прокручивается, если внутри landscape-документ шире вьюпорта */
.kvadrat-editor-document-shell:has(.kvadrat-doc[data-page-orient="landscape"]) {
  overflow-x: auto;
}

@media (max-width: 639px) {
  .kvadrat-editor-document-shell {
    padding: 0;
    background: #fff;
  }

  .kvadrat-editor-document,
  .kvadrat-editor-document .kvadrat-doc {
    padding: 0.75rem;
    max-width: 100%;
    box-shadow: none;
    min-height: 280px;
    font-size: 11pt;
    line-height: 1.45;
  }
}

.kvadrat-editor-document p,
.kvadrat-editor-document .kvadrat-doc p {
  margin: 0 0 0.65em;
  orphans: 3;
  widows: 3;
}

.kvadrat-editor-document p:not([style*="text-align"]):not([align]),
.kvadrat-editor-document .kvadrat-doc p:not([style*="text-align"]):not([align]) {
  text-align: justify;
}

.kvadrat-editor-document p:not([style*="text-indent"]):not([style*="padding-left"]),
.kvadrat-editor-document .kvadrat-doc p:not([style*="text-indent"]):not([style*="padding-left"]) {
  text-indent: 1.25cm;
}

.kvadrat-editor-document table td p:not([style*="text-indent"]):not([style*="padding-left"]),
.kvadrat-editor-document table th p:not([style*="text-indent"]):not([style*="padding-left"]),
.kvadrat-editor-document .kvadrat-doc table td p:not([style*="text-indent"]):not([style*="padding-left"]),
.kvadrat-editor-document .kvadrat-doc table th p:not([style*="text-indent"]):not([style*="padding-left"]) {
  text-indent: 0;
}

/* Editor-view: то же самое — left по умолчанию внутри ячеек, inline override побеждает. */
.kvadrat-editor-document table td p:not([style*="text-align"]):not([align]),
.kvadrat-editor-document table th p:not([style*="text-align"]):not([align]),
.kvadrat-editor-document table td li:not([style*="text-align"]):not([align]),
.kvadrat-editor-document table th li:not([style*="text-align"]):not([align]),
.kvadrat-editor-document .kvadrat-doc table td p:not([style*="text-align"]):not([align]),
.kvadrat-editor-document .kvadrat-doc table th p:not([style*="text-align"]):not([align]),
.kvadrat-editor-document .kvadrat-doc table td li:not([style*="text-align"]):not([align]),
.kvadrat-editor-document .kvadrat-doc table th li:not([style*="text-align"]):not([align]) {
  text-align: left;
}

.kvadrat-editor-document table td p,
.kvadrat-editor-document table th p,
.kvadrat-editor-document .kvadrat-doc table td p,
.kvadrat-editor-document .kvadrat-doc table th p {
  margin-top: 0;
  margin-bottom: 0.2em;
}

.kvadrat-editor-document table td p:last-child,
.kvadrat-editor-document table th p:last-child,
.kvadrat-editor-document .kvadrat-doc table td p:last-child,
.kvadrat-editor-document .kvadrat-doc table th p:last-child {
  margin-bottom: 0;
}

.kvadrat-editor-document table,
.kvadrat-editor-document .kvadrat-doc table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #64748b;
}

.kvadrat-editor-document td,
.kvadrat-editor-document th,
.kvadrat-editor-document .kvadrat-doc td,
.kvadrat-editor-document .kvadrat-doc th {
  border: 1px solid #94a3b8;
  vertical-align: middle;
  padding: 0.25em 0.45em;
}

.kvadrat-editor-document table.kv-table-gost,
.kvadrat-editor-document .kvadrat-doc table.kv-table-gost {
  border: none;
}

.kvadrat-editor-document table.kv-table-gost td,
.kvadrat-editor-document table.kv-table-gost th,
.kvadrat-editor-document .kvadrat-doc table.kv-table-gost td,
.kvadrat-editor-document .kvadrat-doc table.kv-table-gost th {
  border: none;
  padding: 0.12em 0.35em;
}

.kvadrat-editor-document [style*="text-align:center"] p:not([style*="text-align"]),
.kvadrat-editor-document [style*="text-align: center"] p:not([style*="text-align"]),
.kvadrat-editor-document [align="center"] p:not([style*="text-align"]),
.kvadrat-editor-document center p:not([style*="text-align"]) {
  text-align: center;
  text-indent: 0;
}

.kvadrat-editor-document p[align="center"] {
  text-align: center;
  text-indent: 0;
}

.kvadrat-editor-document p[align="right"] {
  text-align: right;
  text-indent: 0;
}

.kvadrat-editor-document p[align="justify"] {
  text-align: justify;
}

.kvadrat-editor-document [style*="text-align:center"] p,
.kvadrat-editor-document [style*="text-align: center"] p,
.kvadrat-editor-document p[align="center"],
.kvadrat-editor-document p[align="right"] {
  text-indent: 0;
}

.kvadrat-editor-document h1,
.kvadrat-editor-document h2,
.kvadrat-editor-document h3,
.kvadrat-editor-document .kvadrat-doc h1,
.kvadrat-editor-document .kvadrat-doc h2,
.kvadrat-editor-document .kvadrat-doc h3 {
  font-family: var(--font-article-serif), "Times New Roman", "Noto Serif", Georgia, serif;
  font-weight: 700;
  margin: 0.9em 0 0.5em;
  line-height: 1.25;
}

.kvadrat-editor-document h1:not([style*="text-align"]):not([align]),
.kvadrat-editor-document h2:not([style*="text-align"]):not([align]),
.kvadrat-editor-document .kvadrat-doc h1:not([style*="text-align"]):not([align]),
.kvadrat-editor-document .kvadrat-doc h2:not([style*="text-align"]):not([align]) {
  text-align: center;
}

.kvadrat-editor-document h1[align="center"],
.kvadrat-editor-document h2[align="center"],
.kvadrat-editor-document h3[align="center"],
.kvadrat-editor-document .kvadrat-doc h1[align="center"],
.kvadrat-editor-document .kvadrat-doc h2[align="center"],
.kvadrat-editor-document .kvadrat-doc h3[align="center"] {
  text-align: center;
}

.kvadrat-editor-document h1[align="right"],
.kvadrat-editor-document h2[align="right"],
.kvadrat-editor-document h3[align="right"],
.kvadrat-editor-document .kvadrat-doc h1[align="right"],
.kvadrat-editor-document .kvadrat-doc h2[align="right"],
.kvadrat-editor-document .kvadrat-doc h3[align="right"] {
  text-align: right;
}

.kvadrat-editor-document ul,
.kvadrat-editor-document ol,
.kvadrat-editor-document .kvadrat-doc ul,
.kvadrat-editor-document .kvadrat-doc ol {
  list-style-position: outside;
  margin: 0.4em 0 0.6em;
  padding-left: clamp(1.25rem, 4vw, 1.75rem);
}

.kvadrat-editor-document ul:not([style*="list-style-type"]),
.kvadrat-editor-document .kvadrat-doc ul:not([style*="list-style-type"]) {
  list-style-type: disc;
}

.kvadrat-editor-document ol:not([style*="list-style-type"]),
.kvadrat-editor-document .kvadrat-doc ol:not([style*="list-style-type"]) {
  list-style-type: decimal;
}

.kvadrat-editor-document li,
.kvadrat-editor-document .kvadrat-doc li {
  margin: 0.2em 0;
  text-indent: 0;
}

.kvadrat-editor-document li > ul,
.kvadrat-editor-document li > ol,
.kvadrat-editor-document .kvadrat-doc li > ul,
.kvadrat-editor-document .kvadrat-doc li > ol {
  margin: 0.2em 0;
}

.kvadrat-editor-document li > ul:not([style*="list-style-type"]),
.kvadrat-editor-document .kvadrat-doc li > ul:not([style*="list-style-type"]) {
  list-style-type: circle;
}

.kvadrat-editor-document li > ul > li > ul:not([style*="list-style-type"]),
.kvadrat-editor-document .kvadrat-doc li > ul > li > ul:not([style*="list-style-type"]) {
  list-style-type: square;
}

.kvadrat-editor-document li > ol:not([style*="list-style-type"]),
.kvadrat-editor-document .kvadrat-doc li > ol:not([style*="list-style-type"]) {
  list-style-type: lower-alpha;
}

.kvadrat-editor-document li > ol > li > ol:not([style*="list-style-type"]),
.kvadrat-editor-document .kvadrat-doc li > ol > li > ol:not([style*="list-style-type"]) {
  list-style-type: lower-roman;
}

.kvadrat-editor-document li > p:not([style*="text-indent"]):not([style*="padding-left"]),
.kvadrat-editor-document .kvadrat-doc li > p:not([style*="text-indent"]):not([style*="padding-left"]) {
  text-indent: 0;
  margin: 0.1em 0;
}

.kvadrat-editor-document li > p[style*="text-indent"],
.kvadrat-editor-document .kvadrat-doc li > p[style*="text-indent"] {
  text-indent: 0 !important;
}

.kvadrat-editor-document strong,
.kvadrat-editor-document b,
.kvadrat-editor-document .Strong,
.kvadrat-editor-document span.Strong {
  font-weight: 700;
}

.kvadrat-editor-document th {
  font-weight: 600;
}

.kvadrat-editor-document .kvadrat-doc-text-only {
  color: inherit;
  text-decoration: none;
}

.fin-gov-article-view.kv-article-links-enabled .kv-table-excel a,
.kvadrat-doc.kv-links-enabled .kv-table-excel a,
.kvadrat-editor-document.kv-links-enabled .kv-table-excel a {
  color: #2563eb;
  text-decoration: underline;
  text-decoration-color: rgba(37, 99, 235, 0.45);
  text-underline-offset: 3px;
  pointer-events: auto;
  cursor: pointer;
}

.fin-gov-article-view.kv-article-links-enabled .kv-table-excel a:hover,
.kvadrat-doc.kv-links-enabled .kv-table-excel a:hover,
.kvadrat-editor-document.kv-links-enabled .kv-table-excel a:hover {
  color: #1d4ed8;
  text-decoration-color: rgba(29, 78, 216, 0.75);
}

.kvadrat-editor-document:not(.kv-links-enabled) a {
  color: inherit;
  text-decoration: none;
  pointer-events: none;
  cursor: default;
}

/* Превью в админке: область с прокруткой, не на всю ширину экрана */
.cms-doc-preview-frame {
  max-height: min(70vh, 900px);
  overflow: auto;
  border-radius: 0.5rem;
  background: rgb(248 250 252);
  padding: 1rem;
}

.cms-doc-preview-frame .kvadrat-doc-shell .kvadrat-doc {
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}

/* Базовые стили для параграфов (десктоп) */
.word-document p {
  margin: 0 0 8pt 0;
  text-align: justify;
  text-indent: 1.25cm;
}

/* Режим просмотра листа А4 */
.page-a4 {
  width: 210mm;
  min-height: 297mm;
  margin: 0 auto;
  background: white;
  box-shadow: 0 0 20px rgba(0,0,0,0.1);
}

/* ============================================================================
 * Мобильная читалка документов (< 640px)
 *
 * Блок стоит в конце файла осознанно: базовые правила выше объявлены теми же
 * селекторами (`p:not([style*="text-indent"])…`), а медиазапрос специфичности
 * не добавляет — переопределить их можно только позже по каскаду.
 * ========================================================================= */
@media (max-width: 639px) {
  /*
   * Красная строка: 1.25cm ≈ 47px съедает ~13% ширины телефона.
   * Меняем только значение переменной — исключения (таблицы, kv-title,
   * списки, центрированные абзацы) держатся на своих `text-indent: 0`.
   */
  .kvadrat-document-html,
  .kvadrat-doc-shell .kvadrat-doc {
    --kv-doc-indent: 1.15em;
  }

  /* Inline text-indent из Word перебивает каскад — ужимаем его точечно. */
  .fin-gov-article-view .kvadrat-doc p[style*="text-indent"],
  .kvadrat-doc-shell--reader .kvadrat-doc p[style*="text-indent"] {
    text-indent: 1.15em !important;
  }

  .fin-gov-article-view .kvadrat-doc table p[style*="text-indent"],
  .fin-gov-article-view .kvadrat-doc li > p[style*="text-indent"],
  .kvadrat-doc-shell--reader .kvadrat-doc table p[style*="text-indent"],
  .kvadrat-doc-shell--reader .kvadrat-doc li > p[style*="text-indent"] {
    text-indent: 0 !important;
  }

  /*
   * Выравнивание по ширине (как в книге / Word-документе): правый край ровный,
   * без «лесенки» пустот. Реки пробелов гасятся переносами + text-align-last.
   * Inline left/justify из Word для тела статьи на мобиле переводим к justify.
   */
  .kvadrat-document-html p:not([style*="text-align"]):not([align]),
  .kvadrat-doc-shell .kvadrat-doc p:not([style*="text-align"]):not([align]) {
    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;
  }

  .fin-gov-article-view .kvadrat-doc > p,
  .fin-gov-article-view .kvadrat-doc p[style*="justify"],
  .fin-gov-article-view .kvadrat-doc p[style*="text-align: left"],
  .fin-gov-article-view .kvadrat-doc p[style*="text-align:left"],
  .kvadrat-doc-shell--reader .kvadrat-doc > p,
  .kvadrat-doc-shell--reader .kvadrat-doc p[style*="justify"],
  .kvadrat-doc-shell--reader .kvadrat-doc p[style*="text-align: left"],
  .kvadrat-doc-shell--reader .kvadrat-doc p[style*="text-align:left"] {
    text-align: justify !important;
    text-align-last: left;
    text-justify: inter-word;
  }

  /* Шапка, подписи и явное выравнивание документа — без justify. */
  .kvadrat-document-html p.kv-title,
  .kvadrat-document-html p.kv-center,
  .kvadrat-doc-shell .kvadrat-doc p.kv-title,
  .kvadrat-doc-shell .kvadrat-doc p.kv-center,
  .fin-gov-article-view .kvadrat-doc p.kv-title,
  .fin-gov-article-view .kvadrat-doc p.kv-center,
  .kvadrat-doc-shell--reader .kvadrat-doc p.kv-title,
  .kvadrat-doc-shell--reader .kvadrat-doc p.kv-center {
    text-align: center !important;
    text-align-last: center;
  }

  .kvadrat-document-html p.kv-right,
  .kvadrat-doc-shell .kvadrat-doc p.kv-right,
  .fin-gov-article-view .kvadrat-doc p.kv-right,
  .kvadrat-doc-shell--reader .kvadrat-doc p.kv-right {
    text-align: right !important;
    text-align-last: right;
  }

  .fin-gov-article-view .kvadrat-doc table p,
  .kvadrat-doc-shell--reader .kvadrat-doc table p {
    text-align: left !important;
    text-align-last: auto;
  }

  /*
   * Переносы обязательны вместе с justify (иначе реки пробелов).
   * 6/3/3 — чуть активнее, чем для left-align: строки заполняются плотнее.
   * lang=ru на <html> уже есть — без него Safari/Chrome не переносят кириллицу.
   */
  .kvadrat-document-html p,
  .kvadrat-doc-shell .kvadrat-doc p,
  .kvadrat-document-html li,
  .kvadrat-doc-shell .kvadrat-doc li {
    -webkit-hyphens: auto;
    hyphens: auto;
    hyphenate-limit-chars: 6 3 3;
    overflow-wrap: break-word;
    word-break: normal;
    text-wrap: pretty;
  }

  /* Ритм абзацев: отбивка вместо плотного Word-набора. */
  .fin-gov-article-view .kvadrat-doc.kvadrat-document-html,
  .fin-gov-article-view .kvadrat-document-html,
  .fin-gov-article-view .kvadrat-doc,
  .kvadrat-doc-shell--reader .kvadrat-doc.kvadrat-document-html,
  .kvadrat-doc-shell--reader .kvadrat-doc {
    line-height: 1.62;
  }

  .fin-gov-article-view .kvadrat-doc > p,
  .kvadrat-doc-shell--reader .kvadrat-doc > p {
    margin-bottom: 0.9em;
  }

  /* Заголовки: ровные переносы, без «висячего» одиночного слова. */
  .kvadrat-document-html h1,
  .kvadrat-document-html h2,
  .kvadrat-document-html h3,
  .kvadrat-document-html .kv-title,
  .kvadrat-doc-shell .kvadrat-doc h1,
  .kvadrat-doc-shell .kvadrat-doc h2,
  .kvadrat-doc-shell .kvadrat-doc h3,
  .kvadrat-doc-shell .kvadrat-doc .kv-title {
    text-wrap: balance;
    line-height: 1.3;
    margin: 1.1em 0 0.45em;
  }

  .fin-gov-article-view .kvadrat-doc h1,
  .kvadrat-doc-shell--reader .kvadrat-doc h1 {
    font-size: 1.3rem;
  }

  .fin-gov-article-view .kvadrat-doc h2,
  .kvadrat-doc-shell--reader .kvadrat-doc h2 {
    font-size: 1.15rem;
  }

  .fin-gov-article-view .kvadrat-doc h3,
  .kvadrat-doc-shell--reader .kvadrat-doc h3 {
    font-size: 1.05rem;
  }

  /* Списки: маркер у края текста, без красной строки и двойного отступа. */
  .fin-gov-article-view .kvadrat-doc ul,
  .fin-gov-article-view .kvadrat-doc ol,
  .kvadrat-doc-shell--reader .kvadrat-doc ul,
  .kvadrat-doc-shell--reader .kvadrat-doc ol {
    padding-left: 1.35em;
    margin: 0.6em 0 0.9em;
  }

  .fin-gov-article-view .kvadrat-doc li,
  .kvadrat-doc-shell--reader .kvadrat-doc li {
    margin: 0.3em 0;
    text-indent: 0;
  }

  .fin-gov-article-view .kvadrat-doc li > p,
  .kvadrat-doc-shell--reader .kvadrat-doc li > p,
  .kvadrat-document-html li > p,
  .kvadrat-doc-shell .kvadrat-doc li > p {
    text-indent: 0 !important;
    margin-top: 0.1em;
    margin-bottom: 0.1em;
  }

  /* Legacy prose-документы (.word-document) — та же логика. */
  .word-document p {
    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;
    text-indent: 1.15em;
    margin-bottom: 0.9em;
    -webkit-hyphens: auto;
    hyphens: auto;
    hyphenate-limit-chars: 6 3 3;
    overflow-wrap: break-word;
    text-wrap: pretty;
  }

  .word-document li,
  .word-document li > p {
    text-indent: 0 !important;
  }
}

/*
 * Страница (не таблица) должна получать вертикальный жест.
 * overflow-y:visible + overflow-x:auto = overflow-y:auto по спецификации.
 * Excel не трогаем: скролл у .kv-excel-scroll-shell, сырой fallback — ниже.
 */
.article-table-scroll:not(:has(.kv-table-excel)):not(:has(.kv-excel-workbook)),
.fin-gov-article-view table:not(.kv-table-excel):not(.kv-table-grid),
.fin-gov-article-view .fin-gov-article-doc--wide,
.kvadrat-doc-shell.is-landscape,
.kvadrat-doc-shell:has(.kvadrat-doc[data-page-orient="landscape"]) {
  overflow-x: auto;
  overflow-y: hidden;
  overflow-y: clip;
  touch-action: pan-x pan-y;
}

/* Сырая Excel-книга до гидрации вьюера: оба скролла в окне, шапку не режем. */
.fin-gov-article-view .kv-excel-workbook,
.fin-gov-article-view .kv-excel-sheet {
  max-width: 100%;
  max-height: min(70vh, 42rem);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
}

.kv-excel-viewer .kv-excel-workbook,
.kv-excel-viewer .kv-excel-sheet {
  max-width: none;
  max-height: none;
  overflow: visible;
}

/* Заголовок Excel с colspan на всю ширину листа иначе центрируется
   за правым краем окна и сверху кажется «пустым». */
.fin-gov-article-view .kv-excel-workbook:not(:has(.kv-excel-viewer)) td[colspan],
.fin-gov-article-view .kv-excel-workbook:not(:has(.kv-excel-viewer)) th[colspan],
.fin-gov-article-view .kv-excel-sheet td[colspan],
.fin-gov-article-view .kv-excel-sheet th[colspan] {
  text-align: left !important;
}


