@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 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.47"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);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}:root{--bg: #f5f6f8;--surface: #ffffff;--card: #ffffff;--border: #e2e5ea;--border-hover: #bcc1cc;--accent: #2563eb;--accent-glow: rgba(37, 99, 235, .12);--accent-dark: #1d4ed8;--text: #111827;--text-muted: #6b7280;--text-dim: #9ca3af;--green: #16a34a;--yellow: #d97706;--red: #dc2626;--gold: #b45309;--gold-glow: rgba(180, 83, 9, .1);--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 4px rgba(0,0,0,.08), 0 4px 16px rgba(0,0,0,.06);--shadow-sm: 0 1px 3px rgba(0,0,0,.07)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px}body{font-family:var(--font-sans);background:#fff;color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh;min-width:1100px;overflow-y:hidden}.app-header{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-inner{min-width:1100px;max-width:1400px;margin:0 auto;padding:10px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}.header-spacer{flex:1}.header-right-cluster{display:flex;align-items:center;gap:8px}.exam-context{position:relative}.exam-context-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:.9rem;font-weight:600;color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.exam-context-btn:hover{border-color:#9ca3af;background:#f9fafb}.exam-context-name{white-space:nowrap}.exam-context-caret{font-size:.7rem;color:var(--text-muted)}.exam-context-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:240px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px #00000014;padding:6px;z-index:100}.exam-context-item--active{background:#eff6ff;color:var(--accent);font-weight:600}.exam-context-row{display:flex;align-items:stretch;border-radius:6px;overflow:hidden}.exam-context-row:hover{background:#f3f4f6}.exam-context-row.exam-context-item--active{background:#eff6ff}.exam-context-item--row{flex:1;border-radius:0;background:transparent!important}.ec-delete{width:26px;border:none;background:transparent;color:var(--text-muted);font-size:1rem;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s,color .15s,background .15s}.exam-context-row:hover .ec-delete{opacity:1}.ec-delete:hover{background:#fee2e2;color:#b91c1c}.exam-context-add{width:100%;margin-top:4px;padding:8px 10px;border:1px dashed var(--border);border-radius:6px;background:transparent;text-align:left;font-size:.85rem;font-weight:600;color:var(--accent);cursor:pointer}.exam-context-add:hover{background:#f0f5ff;border-color:var(--accent)}.exam-context-divider{height:1px;background:var(--border);margin:6px 4px}.ec-wrap{display:flex;align-items:center;gap:8px}.ec-empty-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px dashed var(--accent);border-radius:8px;background:#f0f5ff;color:var(--accent);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s,border-style .15s}.ec-empty-btn:hover{background:#dbeafe;border-style:solid}.ec-empty-plus{font-size:1.1rem;line-height:1;font-weight:700}.ec-empty-add{display:flex;align-items:center;gap:6px}.ec-empty-add input{padding:8px 12px;font-size:.9rem;border:1px solid var(--accent);border-radius:8px;outline:none;min-width:220px}.ec-label{font-size:.78rem;font-weight:600;color:var(--text-muted);margin-right:6px}.exam-context-menu--items{min-width:280px;max-height:400px;overflow-y:auto}.ec-group+.ec-group{margin-top:6px}.ec-group-head{font-size:.78rem;font-weight:600;color:var(--text-muted);padding:6px 10px 4px}.ec-chip{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 6px;border-radius:4px;font-size:.68rem;font-weight:700;letter-spacing:.04em;margin-right:8px}.ec-chip--exam{background:#fee2e2;color:#b91c1c}.ec-chip--assignment{background:#dbeafe;color:#1d4ed8}.ec-chip--project{background:#ede9fe;color:#6d28d9}.ec-chip--report{background:#d1fae5;color:#047857}.exam-context-item{display:flex;align-items:center;width:100%}.ec-add-item{display:grid;grid-template-columns:110px 1fr auto;gap:6px;padding:6px 4px 4px}.ec-add-select{padding:7px 8px;font-size:.85rem;border:1px solid var(--border);border-radius:6px;background:#fff;outline:none;cursor:pointer}.ec-add-name{padding:7px 9px;font-size:.85rem;border:1px solid var(--border);border-radius:6px;outline:none;min-width:0}.ec-add-name:focus,.ec-add-select:focus{border-color:var(--accent)}.exam-context-item{width:100%;text-align:left;padding:8px 10px;border:none;background:transparent;border-radius:6px;font-size:.88rem;color:var(--text);cursor:pointer}.exam-context-item:hover{background:#f3f4f6}.exam-context-edit{display:flex;gap:6px;padding:4px}.exam-context-edit input{flex:1;padding:7px 9px;font-size:.88rem;border:1px solid var(--border);border-radius:6px;outline:none}.exam-context-edit input:focus{border-color:var(--accent)}.exam-context-save{padding:7px 12px;font-size:.85rem;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:6px;cursor:pointer}.help-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s,background .15s}.help-btn:hover{border-color:var(--accent);background:#f0f5ff}.help-btn-glyph{font-size:.95rem;font-weight:700;color:var(--accent);font-family:Georgia,serif}.help-btn.help-btn--text{width:auto;height:34px;padding:0 14px;border-radius:8px;font-size:.88rem;font-weight:600;color:var(--accent)}.notif{position:relative}.notif-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;color:var(--text-muted);transition:border-color .15s,background .15s,color .15s}.notif-btn:hover{border-color:var(--accent);background:#f0f5ff;color:var(--accent)}.notif-glyph{display:block}.notif-badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#dc2626;color:#fff;font-size:.65rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;border:2px solid #ffffff}.notif-menu{position:absolute;top:calc(100% + 6px);right:0;width:320px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px #00000014;z-index:100;overflow:hidden}.notif-menu-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;font-size:.92rem;font-weight:700;color:var(--text);border-bottom:1px solid var(--border)}.notif-mark-read{background:transparent;border:none;color:var(--accent);font-size:.78rem;font-weight:600;cursor:pointer}.notif-menu-body{max-height:360px;overflow-y:auto}.notif-empty{padding:28px 18px;text-align:center}.notif-empty-icon{font-size:1.6rem;margin-bottom:6px;opacity:.6}.notif-empty-title{font-size:.92rem;font-weight:600;color:var(--text)}.notif-empty-sub{font-size:.8rem;color:var(--text-muted);margin-top:2px}.notif-item{padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;background:#f8faff}.notif-item.is-read{background:#fff}.notif-item:hover{background:#f3f6fb}.notif-item:last-child{border-bottom:none}.notif-item-row{display:flex;align-items:center;gap:8px}.notif-item-title{font-size:.88rem;color:var(--text);font-weight:500}.notif-item.is-read .notif-item-title{font-weight:400;color:var(--text-muted)}.notif-item-sub{font-size:.8rem;color:var(--text-muted);margin-top:2px;padding-left:16px}.notif-item-time{font-size:.72rem;color:var(--text-muted);margin-top:4px;padding-left:16px}.notif-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#2563eb}.notif-dot--success{background:#10b981}.notif-dot--warning{background:#f59e0b}.notif-dot--error{background:#ef4444}.notif-dot--info{background:#2563eb}.notif-item.is-read .notif-dot{opacity:.35}.help-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.help-modal{width:100%;max-width:640px;max-height:86vh;min-height:0;background:#fff;border-radius:14px;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column;overflow:hidden}.help-modal-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border);background:#fff}.help-modal-head h2{margin:0;font-size:1.15rem;font-weight:700;color:var(--text)}.help-modal-close{width:30px;height:30px;border-radius:50%;border:none;background:transparent;font-size:1.4rem;line-height:1;color:var(--text-muted);cursor:pointer}.help-modal-close:hover{background:#f3f4f6;color:var(--text)}.help-modal-body{flex:1 1 auto;min-height:0;padding:18px 22px 22px;overflow-y:auto}.help-steps{margin:0;padding-left:22px;color:var(--text);font-size:.92rem;line-height:1.55}.help-steps li{margin-bottom:12px}.help-steps li strong{display:block;font-weight:700;margin-bottom:2px}.help-steps li em{font-style:normal;font-weight:600;color:var(--accent)}.help-tips{margin-top:18px;padding:14px 16px;background:#f9fafb;border-radius:10px;border:1px solid var(--border)}.help-tips h3{margin:0 0 8px;font-size:.92rem;font-weight:700;color:var(--text)}.help-tips ul{margin:0;padding-left:18px;font-size:.88rem;color:var(--text-muted);line-height:1.5}.help-tips ul li{margin-bottom:4px}.help-tips em{font-style:normal;font-weight:600;color:var(--accent)}.user-profile{position:relative}.user-profile-btn{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1px solid var(--border);border-radius:999px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s}.user-profile-btn:hover{border-color:#9ca3af;background:#f9fafb}.user-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;letter-spacing:.02em}.user-avatar--lg{width:40px;height:40px;font-size:.95rem}.user-name{font-size:.88rem;font-weight:600;color:var(--text)}.user-caret{font-size:.7rem;color:var(--text-muted)}.user-profile-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:240px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px #00000014;padding:8px;z-index:100}.user-profile-header{display:flex;align-items:center;gap:10px;padding:8px 10px 10px}.user-profile-name{font-size:.92rem;font-weight:600;color:var(--text)}.user-profile-email{font-size:.78rem;color:var(--text-muted)}.user-profile-divider{height:1px;background:var(--border);margin:4px 0}.user-profile-item{width:100%;text-align:left;padding:8px 10px;border:none;background:transparent;border-radius:6px;font-size:.88rem;color:var(--text);cursor:pointer}.user-profile-item:hover{background:#f3f4f6}.logo{display:flex;align-items:center;gap:12px}.logo-title{display:inline;font-size:1.1rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.logo-sub{display:inline;font-size:.9rem;color:var(--text-muted);letter-spacing:.01em;margin-left:6px;font-weight:500}.header-pills{display:flex;gap:8px;flex-wrap:wrap}.pill{font-size:.72rem;font-weight:500;padding:3px 10px;border-radius:999px;background:#5b7cf61f;color:var(--accent);border:1px solid rgba(91,124,246,.25)}.header-center{flex:1;display:flex;justify-content:center}.header-center .api-key-row{margin-bottom:0;min-width:280px}.api-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.05em;white-space:nowrap}.api-key-compact{display:flex;align-items:center;gap:8px}.api-key-saved-label{font-size:.82rem;color:var(--green);font-weight:500}.header-right{display:flex;align-items:center;gap:12px}.grading-config-controls{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;padding:4px 0;margin-bottom:0;align-items:flex-start}.grading-config-controls .total-points-row{margin-bottom:0;min-width:0}.header-right .total-points-row{margin-bottom:0}.header-right .total-points-row>label{font-size:.65rem}.header-right .total-points-row>p{display:none}.header-right .total-points-field input,.header-right .model-select{font-size:.82rem;padding:4px 8px;height:32px}.inline-results{margin-top:16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.inline-results .grading-panel{position:static;height:auto;border:none;border-radius:0;background:transparent}.inline-results .gp-scroll{max-height:none;overflow:visible}.collapse-toggle{background:none;border:none;cursor:pointer;font-size:.85rem;color:var(--muted);padding:0 4px 0 0;line-height:1;transition:color .15s}.collapse-toggle:hover{color:var(--text)}.model-answer-section--collapsed{padding-bottom:8px}.model-answer-section--collapsed .model-answer-header{margin-bottom:0}.app-main{flex:1;min-height:0;min-width:1100px;max-width:1400px;width:100%;margin:0 auto;padding:0 28px 8px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:stretch}.app-main--three-panel{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.app-main>section{display:flex;flex-direction:column;min-height:0;max-height:100%;gap:8px;overflow-y:auto}.model-answer-section--loaded{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.model-answer-section--loaded::-webkit-scrollbar{width:6px}.model-answer-section--loaded::-webkit-scrollbar-track{background:transparent}.model-answer-section--loaded::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.model-answer-section--loaded::-webkit-scrollbar-thumb:hover{background:var(--muted)}.inline-results{overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.inline-results::-webkit-scrollbar{width:6px}.inline-results::-webkit-scrollbar-track{background:transparent}.inline-results::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.inline-results::-webkit-scrollbar-thumb:hover{background:var(--muted)}.left-tabs{display:flex;gap:6px;border-bottom:2px solid #e5e7eb;margin-bottom:14px}.left-tabs>.left-tab:last-child{margin-left:24px}.left-tab-icon{width:20px;height:20px;flex-shrink:0}.left-tab{padding:10px 14px;font-size:.88rem;font-weight:700;display:inline-flex;align-items:center;gap:6px;letter-spacing:0;text-transform:none;white-space:nowrap;color:var(--muted);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;position:relative;transition:color .12s ease,border-bottom-color .12s ease}.left-tab:hover:not(:disabled):not(.left-tab--active){color:var(--text)}.left-tab--active,.left-tab--active:hover{color:var(--text);font-weight:600;border-bottom-color:var(--accent)}.left-tab--disabled{opacity:.4;cursor:not-allowed}.left-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;font-size:.65rem;font-weight:700;border-radius:9px;background:var(--accent);color:#fff;margin-left:4px;vertical-align:middle}.submissions-tab-list{display:flex;flex-direction:column;gap:2px;padding:4px;overflow-y:auto;flex:1 1 0;min-height:0}.submissions-tab-empty{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px;color:var(--text-muted)}.submissions-tab-empty-icon{font-size:2rem;margin-bottom:10px;opacity:.55}.submissions-tab-empty-title{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:4px}.submissions-tab-empty-sub{font-size:.88rem;color:var(--text-muted);max-width:360px}.submissions-tab-hint{font-size:.82rem;color:var(--text-muted);background:#f9fafb;border:1px dashed var(--border);border-radius:8px;padding:8px 12px;margin-bottom:8px}.submissions-tab-hint strong{color:var(--text);font-weight:600}.submissions-hint-icon{display:inline-block;width:18px;height:18px;vertical-align:-4px;color:var(--text);margin:0 2px}.sub-list-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;margin-bottom:8px;background:#f9fafb;border:1px solid var(--border);border-radius:8px}.sub-list-toolbar-count{font-size:.85rem;font-weight:600;color:var(--text)}.sub-list-toolbar-btn{font-size:.78rem;font-weight:600;padding:5px 12px;border-radius:6px;cursor:pointer;transition:all .15s;border:1px solid transparent;background:transparent}.sub-list-toolbar-btn--danger{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.sub-list-toolbar-btn--danger:hover:not(:disabled){background:#b91c1c;color:#fff;border-color:#b91c1c}.sub-list-toolbar-btn:disabled{opacity:.45;cursor:not-allowed}.left-tab--glow{color:var(--red);border-bottom-color:var(--red);animation:tab-glow-red 1.5s ease-in-out 3}@keyframes tab-glow-red{0%,to{box-shadow:none}50%{box-shadow:0 4px 12px #dc262666}}.unified-tab-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px;margin:20px auto 0;min-width:1100px;max-width:1400px;width:100%;padding:0 28px}.unified-tab-bar-left{display:flex;justify-content:flex-start;align-items:flex-end;gap:2px;padding:8px 12px 0 16px;border:1px solid #d1d5db;border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:#fff}.unified-tab-bar-right{display:flex;flex-direction:column;gap:10px;padding:10px 16px 24px;border:1px solid #d1d5db;border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:#fff}.unified-tab-bar-right-top-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:nowrap}.unified-tab-bar-right-bottom-row{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:nowrap}.unified-tab-bar-right-info,.unified-tab-bar-right-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;flex-shrink:0}.unified-tab-bar-right-add{display:flex;align-items:center;gap:8px;flex:1;justify-content:center}.unified-tab-title-stack{position:relative;display:inline-flex;align-items:center;line-height:1.1}.unified-tab-title-stack .sub-toolbar-count{position:absolute;top:calc(100% + 6px);left:0;white-space:nowrap;pointer-events:none}.unified-grade-group{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;flex-shrink:0}.unified-tab-bar-right-info{flex-shrink:1;min-width:0}.unified-tab-bar-right-actions{margin-left:auto}@media(max-width:860px){.unified-tab-bar{grid-template-columns:1fr;gap:0}}.unified-tab-label{font-size:1.05rem;font-weight:700;color:var(--accent);letter-spacing:-.01em;white-space:nowrap}.unified-tab-sep{width:1px;height:18px;background:var(--border);margin:0 2px;flex-shrink:0}.unified-nav-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;transition:all .15s;padding:0;box-shadow:0 1px 2px #0000000a}.unified-nav-btn:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 6px #2563eb40}.unified-nav-btn:active:not(:disabled){transform:scale(.92)}.unified-nav-btn:disabled{opacity:.2;cursor:not-allowed;background:var(--bg)}.unified-nav-label{font-size:.92rem;font-weight:700;color:var(--text);min-width:50px;text-align:center;letter-spacing:0;background:#f3f4f6;padding:6px 12px;border-radius:8px}.unified-action-btn{padding:8px 14px;font-size:.83rem;font-weight:600;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);cursor:pointer;transition:all .15s;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:5px;box-shadow:0 1px 1px #00000005}.unified-action-btn--icon{padding:7px 10px;min-width:40px}.unified-action-svg{width:16px;height:16px;flex-shrink:0}.unified-action-group{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap}.unified-action-icon{display:inline-flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:600;line-height:1;color:var(--text-muted);transition:color .15s}.unified-action-btn:hover:not(:disabled) .unified-action-icon{color:var(--accent)}.unified-action-btn:hover:not(:disabled){background:var(--bg);border-color:var(--accent);color:var(--accent)}.unified-action-btn:disabled{opacity:.4;cursor:not-allowed}.unified-action-btn--accent{background:var(--accent);color:#fff;border-color:var(--accent);min-width:120px;padding:10px 20px;font-size:.9rem;justify-content:center}.unified-action-btn--accent:hover:not(:disabled){background:#2563eb;color:#fff}.unified-action-btn--green{background:#1f2937;color:#fff;border-color:#1f2937;min-width:130px;padding:10px 20px;font-size:.9rem;justify-content:center}.unified-action-btn--green:hover:not(:disabled){background:#111827;border-color:#111827;color:#fff}.unified-action-btn--green:disabled{background:var(--surface);color:var(--text-muted);border-color:var(--border)}.unified-action-btn--cancel{background:var(--red);color:#fff;border-color:var(--red);min-width:130px;padding:10px 20px;font-size:.9rem;justify-content:center}.unified-action-btn--danger{color:var(--red);border-color:var(--border)}.unified-action-btn--danger:hover:not(:disabled){background:var(--red);color:#fff;border-color:var(--red)}.sub-converting-bar{display:flex;align-items:center;gap:8px;padding:8px 12px}.left-col{border:1px solid #d1d5db;border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);background:#fff;padding:16px;box-shadow:0 1px 2px #0000000a}.left-col>.model-answer-section{flex:0 1 auto;min-height:0}.left-col>.inline-results{flex:1 1 0;min-height:200px}.left-col>.analysis-tab-full{flex:1 1 0;min-height:300px}.right-col>.model-answer-section--loaded{flex:1 1 0;min-height:0}.right-col{border:1px solid #d1d5db;border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);background:#fff;padding:16px;box-shadow:0 1px 2px #0000000a}@media(max-width:860px){.header-pills{display:none}}.api-key-row{margin-bottom:16px}.api-key-header{display:flex;align-items:center;gap:10px;margin-bottom:6px}.api-key-header label{font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:0}.api-key-saved{display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;color:var(--green)}.api-key-missing{font-size:.72rem;font-weight:600;color:var(--red)}.api-key-edit-btn{background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);font-size:.68rem;font-weight:600;padding:1px 7px;cursor:pointer;font-family:var(--font-sans);transition:border-color .15s,color .15s}.api-key-edit-btn:hover{border-color:var(--accent);color:var(--accent)}.api-key-row label{display:block;font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.api-key-field{display:flex;gap:0;border-radius:var(--radius);border:1px solid var(--border);background:var(--card);overflow:hidden;transition:border-color .2s}.api-key-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.api-key-field input{flex:1;background:transparent;border:none;outline:none;padding:10px 14px;color:var(--text);font-family:var(--font-mono);font-size:.82rem}.api-key-field input::placeholder{color:var(--text-dim)}.toggle-btn{background:transparent;border:none;border-left:1px solid var(--border);padding:0 12px;cursor:pointer;font-size:14px;color:var(--text-muted);transition:background .15s}.toggle-btn:hover{background:var(--border)}.api-key-hint{font-size:.7rem;color:var(--text-dim);margin-top:5px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px}.section-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.section-label{font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;background:var(--accent);color:#fff;font-size:.68rem;font-weight:700}.model-answer-section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 12px;transition:border-color .25s,box-shadow .25s}.model-answer-section--loaded{border-width:1.5px;border-color:#d1d5db;box-shadow:0 1px 2px #0f172a0f,0 4px 12px #0f172a0d}.model-answer-header{display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;top:-11px;z-index:10;background:var(--card);padding:16px 12px 6px;margin:-10px -12px 8px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.model-answer-title-row{display:flex;align-items:center;gap:6px}.model-answer-title{font-size:.82rem;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.06em}.model-answer-title.model-answer-title--sub{color:var(--accent);text-transform:none;letter-spacing:0;font-size:.9rem}.model-page-count{font-size:.7rem;color:var(--text-muted);background:var(--bg);padding:1px 6px;border-radius:4px}.model-header-actions{display:flex;align-items:center;gap:6px}.analyze-btn-sm{padding:3px 10px;border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);color:#fff;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s}.analyze-btn-sm:hover{background:var(--accent-dark)}.analyze-btn-sm--redo{background:transparent;color:var(--accent)}.analyze-btn-sm--redo:hover{background:var(--accent-glow)}.analyzed-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green)}.analysis-status-sm{display:flex;align-items:center}.model-header-btn{padding:3px 8px;border-radius:var(--radius);border:1px dashed var(--border);background:transparent;color:var(--text-muted);font-size:.72rem;cursor:pointer;transition:all .15s}.model-header-btn:hover{border-color:var(--accent);color:var(--accent)}.model-answer-status{display:flex;align-items:center;gap:7px;flex-shrink:0;background:#f59e0b1a;border:1px solid rgba(245,158,11,.25);border-radius:999px;padding:3px 8px 3px 10px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex-shrink:0;box-shadow:0 0 6px var(--gold);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.status-text{font-size:.7rem;font-weight:600;color:var(--gold);white-space:nowrap}.clear-model-btn{background:transparent;border:none;color:#f59e0b99;font-size:11px;cursor:pointer;padding:0 2px;line-height:1;transition:color .15s}.clear-model-btn:hover{color:var(--red)}.model-thumb-row{display:flex;gap:10px;flex-wrap:wrap}.model-thumb{position:relative;width:72px;height:96px;border-radius:var(--radius);overflow:hidden;border:1.5px solid rgba(245,158,11,.35);background:var(--surface);flex-shrink:0;transition:border-color .2s}.model-thumb:hover{border-color:var(--gold)}.model-thumb:hover .remove-btn{opacity:1}.model-thumb img{width:100%;height:100%;object-fit:cover}.model-thumb .remove-btn{opacity:0;transition:opacity .15s}.model-thumb--add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;border-style:dashed;border-color:var(--border);transition:border-color .2s,background .2s}.model-thumb--add:hover{border-color:var(--gold);background:var(--gold-glow)}.add-icon{font-size:18px;color:var(--text-muted);line-height:1}.add-label{font-size:.62rem;color:var(--text-muted);font-weight:500}.model-analysis-controls{padding:10px 16px;display:flex;align-items:center;gap:10px}.analyze-btn{padding:8px 18px;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s}.analyze-btn:hover{background:var(--accent-dark)}.analyze-btn--redo{padding:4px 10px;font-size:.72rem;background:transparent;color:var(--accent);border:1px solid var(--border)}.analyze-btn--redo:hover{background:var(--accent-glow);border-color:var(--accent)}.analysis-status{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:500}.analysis-status--running{color:var(--gold)}.analysis-status--done{color:var(--green)}.analysis-error{font-size:.78rem;color:var(--red);padding:6px 0}.analysis-preview{margin:0 16px 12px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.analysis-tab-full{flex:1 1 0;display:flex;flex-direction:column;min-height:0;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.analysis-tab-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.analysis-tab-title{font-weight:600;font-size:.85rem;color:var(--text)}.analysis-tab-usage{font-size:.72rem;color:var(--muted);font-family:var(--font-mono)}.analysis-tab-body{font-family:var(--font-mono);font-size:.8rem;line-height:1.7;color:var(--text);padding:16px;white-space:pre-wrap;word-break:break-word;background:var(--bg);margin:0;overflow-y:auto;flex:1 1 0;min-height:0}.analysis-subtab-bar{display:inline-flex;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:2px;margin:0 12px}.analysis-subtab{background:transparent;border:none;color:var(--muted);font-size:.75rem;font-weight:500;padding:4px 12px;border-radius:4px;cursor:pointer;transition:background .12s,color .12s}.analysis-subtab:hover{color:var(--text)}.analysis-subtab--active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0000000f}.analysis-tab-body--rendered{font-family:var(--font-sans, system-ui, -apple-system, sans-serif);font-size:.9rem;white-space:normal;line-height:1.6}.analysis-tab-body--rendered h1,.analysis-tab-body--rendered h2,.analysis-tab-body--rendered h3,.analysis-tab-body--rendered h4{margin:18px 0 8px;font-weight:700;color:var(--text)}.analysis-tab-body--rendered h3{font-size:1.05rem;color:var(--blue, #2563eb)}.analysis-tab-body--rendered h4{font-size:.95rem}.analysis-tab-body--rendered p{margin:6px 0}.analysis-tab-body--rendered ul,.analysis-tab-body--rendered ol{margin:4px 0 10px 22px}.analysis-tab-body--rendered li{margin:2px 0}.analysis-tab-body--rendered strong{color:var(--text)}.analysis-tab-body--rendered code{background:var(--surface);padding:1px 5px;border-radius:3px;font-size:.85em}.analysis-tab-body--rendered .katex{font-size:1.02em}.analysis-tab-body--rendered .katex-display{margin:10px 0;overflow-x:auto;overflow-y:hidden}.analysis-preview--highlight{border:2px solid var(--red);box-shadow:0 0 12px #dc262659,0 0 28px #dc262626;background:#dc262608;animation:glow-red 1.5s ease-in-out 3}@keyframes glow-red{0%,to{box-shadow:0 0 12px #dc262659,0 0 28px #dc262626}50%{box-shadow:0 0 20px #dc262680,0 0 40px #dc26264d}}.analysis-usage{padding:8px 16px;font-size:.72rem;color:var(--text-muted);border-top:1px solid var(--border);background:var(--surface)}.pill--green{background:#16a34a1a;color:var(--green);border-color:#16a34a33}.drop-zone--model{padding:28px 20px}.drop-zone--model:hover:not(.disabled),.drop-zone--model.dragging{border-color:var(--gold);background:#f59e0b0d}.drop-zone--model.dragging{box-shadow:0 0 0 4px var(--gold-glow)}.drop-zone--rubric{padding:18px 12px;margin-bottom:8px;border:none;border-bottom:1px dashed var(--border);border-radius:0;background:transparent}.drop-zone--rubric:hover:not(.disabled){background:#5b7cf608}.drop-zone--rubric.dragging{background:#5b7cf60f}.drop-zone--rubric .drop-icon{display:none}.pill--gold{background:#f59e0b1f;color:var(--gold);border-color:#f59e0b4d}.grade-all-btn{padding:5px 14px;border-radius:var(--radius);background:linear-gradient(135deg,var(--green),#2a9d5c);border:none;color:#fff;font-size:.75rem;font-weight:600;cursor:pointer;font-family:var(--font-sans);transition:opacity .2s,transform .15s}.grade-all-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.grade-all-btn:disabled{opacity:.45;cursor:not-allowed}.grade-all-btn--cancel{background:linear-gradient(135deg,var(--red),#c0392b)}.pill--grading{background:#5b7cf626;color:var(--accent);border-color:#5b7cf64d;display:inline-flex;align-items:center;gap:6px;animation:pulse-opacity 1.5s ease-in-out infinite}.spinner--sm{width:12px;height:12px;border:2px solid rgba(91,124,246,.3);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes pulse-opacity{0%,to{opacity:1}50%{opacity:.6}}.grade-all-progress-bar-wrap{display:flex;align-items:center;gap:12px;padding:8px 24px;background:var(--bg);border-bottom:1px solid var(--border)}.grade-all-progress-bar{flex:1;height:8px;background:#5b7cf61f;border-radius:999px;overflow:hidden}.grade-all-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--green));border-radius:999px;transition:width .4s ease}.grade-all-progress-label{font-size:.75rem;font-weight:600;color:var(--accent);white-space:nowrap}.grade-all-progress-bar-wrap--top{min-width:1100px;max-width:1400px;margin:0 auto;width:100%}.grade-all-progress-fill--blue{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.result-mode-badge{display:inline-block;font-size:.68rem;font-weight:600;color:var(--gold);background:#f59e0b1a;border:1px solid rgba(245,158,11,.25);border-radius:999px;padding:2px 8px;margin-top:4px}.feature-dot--gold{background:var(--gold);opacity:1}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:40px 20px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s;position:relative}.drop-zone:hover:not(.disabled){border-color:var(--accent);background:#5b7cf60a}.drop-zone.dragging{border-color:var(--accent);background:#5b7cf614;box-shadow:0 0 0 4px var(--accent-glow)}.drop-zone.disabled{opacity:.4;cursor:not-allowed}.drop-icon{font-size:36px;margin-bottom:10px;opacity:.6}.drop-title{font-size:.95rem;font-weight:600;color:var(--text);margin-bottom:4px}.drop-sub{font-size:.75rem;color:var(--text-muted)}.image-grid-section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}.image-card{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px solid var(--border);aspect-ratio:3/4;transition:border-color .2s,transform .15s}.image-card:hover{border-color:var(--accent);transform:translateY(-2px)}.image-card:hover .image-overlay{opacity:1}.image-card img{width:100%;height:100%;object-fit:cover;display:block}.image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 30%,rgba(0,0,0,.65) 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:8px;opacity:0;transition:opacity .2s}.image-name{font-size:.65rem;color:#ffffffd9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remove-btn{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:999px;background:#f87171d9;border:none;color:#fff;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.remove-btn:hover{background:var(--red)}.page-badge{position:absolute;top:6px;left:6px;font-size:.65rem;font-weight:700;padding:2px 7px;border-radius:999px;background:#0000008c;color:#fff;font-family:var(--font-mono)}.actions-row{display:flex;gap:10px;margin-bottom:16px}.grade-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius);background:linear-gradient(135deg,var(--accent),var(--accent-dark));border:none;color:#fff;font-size:.92rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .15s,box-shadow .2s;box-shadow:0 4px 16px #5b7cf659;font-family:var(--font-sans)}.grade-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 6px 20px #5b7cf680}.grade-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.grade-btn.loading{cursor:wait}.btn-icon{font-size:16px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.clear-btn{padding:12px 18px;border-radius:var(--radius);background:transparent;border:1px solid var(--border);color:var(--text-muted);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s;font-family:var(--font-sans)}.clear-btn:hover:not(:disabled){background:var(--card);border-color:var(--border-hover);color:var(--text)}.clear-btn:disabled{opacity:.4;cursor:not-allowed}.error-box{display:flex;align-items:flex-start;gap:10px;background:#f871711a;border:1px solid rgba(248,113,113,.3);border-radius:var(--radius);padding:12px 16px;font-size:.82rem;color:var(--red);margin-bottom:16px}.error-icon{font-size:16px;flex-shrink:0}.result-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}.result-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border);background:var(--surface)}.result-title{font-size:.92rem;font-weight:700;color:var(--text);letter-spacing:-.01em}.copy-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius);border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:.78rem;font-weight:500;cursor:pointer;transition:all .2s;font-family:var(--font-sans)}.copy-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}.copy-btn.copied{border-color:var(--green);color:var(--green);background:#4ade8014}.problems-list{padding:10px 0}.problem-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--border);transition:background .15s}.problem-row:last-child{border-bottom:none}.problem-row:hover{background:var(--bg)}.problem-left{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.problem-num{font-size:.72rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.problem-feedback{font-size:.85rem;color:var(--text);line-height:1.5}.problem-score{display:flex;align-items:center;gap:2px;font-family:var(--font-mono);font-size:.95rem;font-weight:700;white-space:nowrap;flex-shrink:0}.score-sep{color:var(--text-dim);font-weight:400;margin:0 1px}.score-max{color:var(--text-muted);font-weight:500}.total-row{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 8px;border-top:1px solid var(--border);background:var(--bg)}.total-label{font-size:.82rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.total-score{font-family:var(--font-mono);font-size:1.3rem;font-weight:700}.progress-bar-wrap{height:4px;background:var(--border);margin:0 20px 16px;border-radius:999px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:999px;transition:width .6s cubic-bezier(.4,0,.2,1)}.raw-output{font-family:var(--font-mono);font-size:.8rem;line-height:1.7;color:var(--text);padding:16px;white-space:pre-wrap;word-break:break-word;background:var(--bg);border-radius:0 0 var(--radius) var(--radius);margin:0;max-height:280px;overflow-y:auto}.raw-panel{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-top:8px}.raw-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 14px;background:var(--surface);border:none;font-size:.78rem;font-weight:500;color:var(--text-muted);cursor:pointer;text-align:left}.raw-toggle:hover{background:var(--bg)}.raw-chevron{font-size:.65rem}.canvas-summary{background:var(--card);border:1px solid var(--accent);border-radius:var(--radius);overflow:hidden}.canvas-summary-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#2563eb0f;border-bottom:1px solid var(--border)}.canvas-summary-title{font-size:.78rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.canvas-summary-toggle{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:2px 4px;margin:-2px -4px;color:var(--accent);cursor:pointer;border-radius:4px;font-family:inherit;transition:background .12s}.canvas-summary-toggle:hover{background:#2563eb14}.canvas-summary-chevron{flex-shrink:0;transition:transform .18s}.canvas-summary-chevron--collapsed{transform:rotate(-90deg)}.canvas-summary--collapsed .canvas-summary-header{border-bottom:none}.canvas-summary-subtabs{display:inline-flex;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:2px;margin-left:auto;margin-right:8px;font-family:inherit}.canvas-summary-subtab{background:transparent;border:none;color:var(--muted);font-size:.75rem;font-weight:500;padding:4px 12px;border-radius:4px;cursor:pointer;font-family:inherit;transition:background .12s,color .12s}.canvas-summary-subtab:hover{color:var(--text)}.canvas-summary-subtab--active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0000000f}.canvas-summary-text--raw{display:block;white-space:pre-wrap;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:.75rem}.copy-btn--sm{font-size:.68rem;padding:3px 10px}.canvas-summary-text{padding:12px 14px;font-family:var(--font-sans);font-size:.95rem;line-height:1.6;color:var(--text);word-wrap:break-word;margin:0;display:flex;flex-direction:column;gap:6px}.canvas-summary-line .katex{font-size:.95em}.viewer-header--model{background:#b453090f;border-top:2px solid var(--gold)}.viewer-header--model .viewer-title{color:var(--gold)}.viewer-scroll--model{flex:none;max-height:50vh;border-top:none}.empty-state{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:48px 32px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.empty-icon{font-size:44px;margin-bottom:8px;opacity:.4}.empty-title{font-size:1rem;font-weight:600;color:var(--text)}.empty-sub{font-size:.82rem;color:var(--text-muted);max-width:280px;line-height:1.5;margin-bottom:16px}.feature-list{display:flex;flex-direction:column;gap:10px;text-align:left;width:100%;max-width:280px}.feature-item{display:flex;align-items:center;gap:10px;font-size:.8rem;color:var(--text-muted)}.feature-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;opacity:.7}.converting-spinner{width:32px;height:32px;border:3px solid rgba(91,124,246,.2);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite;margin:0 auto 12px}.converting-spinner--sm{width:14px;height:14px;border-width:2px;border-color:#f59e0b33;border-top-color:var(--gold);margin:0}.converting-text{color:var(--accent)!important;font-size:.8rem!important}.model-answer-status--converting{background:#f59e0b14;border-color:#f59e0b33;gap:8px;padding:4px 10px}.drop-type-pills{display:flex;gap:5px;justify-content:center;margin-top:10px;flex-wrap:wrap}.drop-pill{font-size:.62rem;font-weight:700;padding:2px 7px;border-radius:4px;background:var(--bg);border:1px solid var(--border);color:var(--text-muted);letter-spacing:.04em;font-family:var(--font-mono)}.drop-pill--pdf{background:#ef44441a;border-color:#ef44444d;color:#f87171}.source-badge{position:absolute;bottom:6px;left:6px;font-size:.55rem;font-weight:800;padding:1px 5px;border-radius:3px;letter-spacing:.04em;font-family:var(--font-mono);pointer-events:none}.source-badge--pdf{background:#ef4444d9;color:#fff}.total-points-row{margin-bottom:0}.total-points-row label{display:block;font-size:.78rem;font-weight:600;color:#000;letter-spacing:.02em;margin-bottom:6px}.total-points-field{display:flex;align-items:center;gap:0;border-radius:var(--radius);border:1px solid #6b7280;background:var(--card);overflow:hidden;transition:border-color .2s;width:fit-content}.total-points-field:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-glow)}.total-points-field-wrap{position:relative;width:fit-content}.total-points-popup{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);background:#2a2a2e;color:#f0f0f0;font-size:.78rem;font-weight:500;letter-spacing:.01em;padding:7px 12px;border-radius:6px;white-space:nowrap;border:1px solid rgba(255,255,255,.08);box-shadow:0 3px 10px #0000004d;animation:totalpts-popup-in .18s ease-out both;z-index:20;pointer-events:none}.total-points-popup-arrow{position:absolute;top:-5px;left:50%;transform:translate(-50%) rotate(45deg);width:9px;height:9px;background:#2a2a2e;border-top:1px solid rgba(255,255,255,.08);border-left:1px solid rgba(255,255,255,.08)}@keyframes totalpts-popup-in{0%{opacity:0;transform:translate(-50%) translateY(-4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes totalpts-pulse{0%,to{box-shadow:0 0 0 0 var(--gold-glow)}50%{box-shadow:0 0 0 6px var(--gold-glow)}}@keyframes totalpts-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.total-points-field input{width:100px;background:transparent;border:none;outline:none;padding:9px 10px;color:var(--text);font-family:var(--font-mono);font-size:.92rem;font-weight:600}.total-points-field input::placeholder{color:var(--text-dim)}.pts-label{padding:0 12px;font-size:.75rem;font-weight:600;color:var(--text-muted);border-left:1px solid var(--border);height:38px;display:flex;align-items:center}.app--review{height:100vh;display:flex;flex-direction:column;overflow:hidden}.review-layout{flex:1;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;min-height:0}.viewer-panel{display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--bg);min-height:0}.viewer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}.viewer-title{font-size:.82rem;font-weight:700;color:var(--text);letter-spacing:-.01em}.viewer-count{font-size:.72rem;color:var(--text-muted);background:var(--card);border:1px solid var(--border);border-radius:999px;padding:2px 10px}.viewer-scroll{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}.viewer-page{display:flex;flex-direction:column;gap:6px}.viewer-page-label{font-size:.68rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.viewer-img{width:100%;border-radius:var(--radius);border:1px solid var(--border);display:block;box-shadow:var(--shadow-sm)}.grading-panel{display:flex;flex-direction:column;background:var(--bg);min-height:0}.gp-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;gap:12px}.gp-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gp-title{font-size:.88rem;font-weight:700;color:var(--text)}.back-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:.75rem;font-weight:600;padding:5px 12px;cursor:pointer;transition:all .15s;font-family:var(--font-sans);white-space:nowrap}.back-btn:hover{border-color:var(--accent);color:var(--accent)}.gp-scroll{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.total-hero{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 22px 16px;display:flex;flex-direction:column;gap:8px}.th-label{font-size:.95rem;font-weight:800;color:var(--text);text-transform:uppercase;letter-spacing:.05em}.th-score{font-family:var(--font-mono);font-size:2.2rem;font-weight:800;line-height:1;letter-spacing:-.03em;color:var(--text)}.th-sep{color:var(--text-dim);font-weight:400;font-size:1.6rem;margin:0 3px}.th-bar-wrap{height:6px;background:var(--border);border-radius:999px;overflow:hidden;margin:4px 0 0}.th-bar-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .7s cubic-bezier(.4,0,.2,1)}.th-score-row{display:flex;align-items:baseline;gap:12px}.th-pct{font-size:.75rem;font-weight:600;color:var(--text-muted);align-self:flex-end}.model-viewer{background:var(--card);border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-lg);overflow:hidden}.model-viewer-toggle{width:100%;display:flex;align-items:center;gap:8px;padding:12px 16px;background:transparent;border:none;cursor:pointer;color:var(--gold);font-size:.8rem;font-weight:700;text-align:left;font-family:var(--font-sans);transition:background .15s}.model-viewer-toggle:hover{background:#f59e0b0d}.mvt-meta{font-size:.68rem;font-weight:500;color:var(--text-muted);margin-left:auto}.mvt-chevron{font-size:10px;color:var(--text-muted)}.model-viewer-body{border-top:1px solid rgba(245,158,11,.2);display:flex;gap:0;height:240px}.mvb-thumbs{width:72px;flex-shrink:0;overflow-y:auto;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:6px;padding:8px}.mvb-thumb{position:relative;border-radius:6px;overflow:hidden;border:1.5px solid var(--border);cursor:pointer;flex-shrink:0;aspect-ratio:3/4;transition:border-color .15s}.mvb-thumb:hover{border-color:var(--gold)}.mvb-thumb.active{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold-glow)}.mvb-thumb img{width:100%;height:100%;object-fit:cover;display:block}.mvb-pnum{position:absolute;bottom:2px;left:2px;font-size:.5rem;font-weight:700;background:#0000008c;color:#fff;padding:1px 4px;border-radius:3px;font-family:var(--font-mono)}.mvb-main{flex:1;overflow-y:auto;padding:8px;display:flex;align-items:flex-start;justify-content:center}.mvb-full{width:100%;border-radius:6px;display:block}.problem-cards{display:flex;flex-direction:column;gap:10px}.problem-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:8px;transition:border-color .2s}.problem-card:hover{border-color:var(--border-hover)}.pc-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.pc-label{font-size:.85rem;font-weight:700;color:var(--accent);text-transform:none;letter-spacing:0}.confidence-pill{display:inline-block;padding:2px 8px;font-size:.62rem;font-weight:700;letter-spacing:.06em;line-height:1.3;color:#fff;border-radius:999px;flex-shrink:0;cursor:help;margin-right:6px;-webkit-user-select:none;user-select:none;transition:transform .12s}.confidence-pill:hover{transform:scale(1.06)}.confidence-pill--high{background:#10b981}.confidence-pill--medium{background:#f59e0b}.confidence-pill--low{background:#ef4444}.confidence-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px;margin:8px 0 12px;font-size:.75rem;color:var(--text-muted, #64748b);background:var(--surface-hover, #f8fafc);border:1px solid var(--border, #e2e8f0);border-radius:6px}.confidence-legend-label{font-weight:600;color:var(--text, #0f172a);margin-right:4px}.confidence-legend-text{margin-right:8px}.confidence-legend-text:last-child{margin-right:0}.problem-card--mcq{border-color:#6366f1;background:linear-gradient(180deg,rgba(99,102,241,.06) 0%,var(--card) 100%);box-shadow:0 0 0 1px #6366f140}.problem-card--mcq:hover{border-color:#4f46e5}.mcq-badge{display:inline-block;margin-left:8px;padding:1px 7px;font-size:.65rem;font-weight:700;letter-spacing:.04em;color:#fff;background:#6366f1;border-radius:4px;vertical-align:middle;cursor:help}.mcq-widget{display:flex;flex-direction:column;gap:10px;padding:10px 12px;background:#6366f10d;border:1px dashed rgba(99,102,241,.35);border-radius:6px;margin:4px 0}.mcq-prompt{font-size:.85rem;color:var(--text-muted, #64748b);line-height:1.4}.mcq-correct{color:var(--text, #0f172a)}.mcq-correct strong{color:#4f46e5;font-weight:700}.mcq-options{display:flex;flex-wrap:wrap;gap:6px}.mcq-btn{min-width:48px;padding:6px 12px;font-size:.9rem;font-weight:600;color:var(--text, #0f172a);background:#fff;border:1.5px solid var(--border, #e2e8f0);border-radius:5px;cursor:pointer;transition:all .15s;font-family:inherit}.mcq-btn:hover{border-color:#6366f1;background:#6366f114}.mcq-btn--right{color:#fff;background:#6366f1;border-color:#4f46e5}.mcq-btn--right:hover{background:#4f46e5}.mcq-btn--wrong{color:#fff;background:#334155;border-color:#1e293b}.mcq-btn--wrong:hover{background:#1e293b}.mcq-comment-area{margin-top:8px}.mcq-add-comment-btn{background:none;border:1px dashed rgba(99,102,241,.45);color:#6366f1;padding:4px 12px;font-size:.78rem;font-weight:500;border-radius:5px;cursor:pointer;font-family:inherit;transition:all .15s}.mcq-add-comment-btn:hover{background:#6366f114;border-color:#6366f1;border-style:solid}.mcq-comment-display{display:flex;flex-direction:column;gap:4px;padding:8px 10px;background:#6366f10d;border-left:3px solid #6366f1;border-radius:4px;position:relative}.mcq-comment-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.mcq-comment-label{font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6366f1}.mcq-comment-text{margin:0;font-size:.88rem;line-height:1.45;color:var(--text, #0f172a);white-space:pre-wrap;word-wrap:break-word}.mcq-comment-menu{position:relative;display:inline-block}.mcq-comment-menu-btn{background:none;border:none;padding:2px 6px;font-size:1.1rem;line-height:1;font-weight:700;color:var(--text-muted, #64748b);cursor:pointer;border-radius:4px;transition:background .12s,color .12s;font-family:inherit}.mcq-comment-menu-btn:hover{background:#6366f11f;color:#4f46e5}.mcq-comment-menu-dropdown{position:absolute;right:0;top:calc(100% + 4px);min-width:110px;background:#fff;border:1px solid var(--border, #e2e8f0);border-radius:6px;box-shadow:0 6px 16px #0000001a;padding:4px;z-index:100;display:flex;flex-direction:column;gap:2px}.mcq-comment-menu-item{background:none;border:none;text-align:left;padding:6px 10px;font-size:.82rem;color:var(--text, #0f172a);border-radius:4px;cursor:pointer;font-family:inherit;transition:background .12s,color .12s}.mcq-comment-menu-item:hover{background:#6366f114;color:#4f46e5}.mcq-comment-menu-item--danger{color:#b45309}.mcq-comment-menu-item--danger:hover{background:#f59e0b1f;color:#92400e}.pc-score-edit{display:flex;align-items:center;gap:2px;flex-shrink:0}.pc-score-input{font-family:var(--font-mono);font-size:1.05rem;font-weight:800;color:var(--text);width:3.5rem;border:1px solid var(--border);border-radius:6px;padding:2px 6px;text-align:center;background:var(--bg);transition:border-color .15s,box-shadow .15s;-moz-appearance:textfield}.pc-score-input::-webkit-inner-spin-button,.pc-score-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pc-score-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.pc-sep{color:var(--text-dim);font-weight:600;margin:0 4px;font-size:1rem}.pc-max{color:var(--text);font-size:1rem;font-weight:700;font-family:var(--font-mono)}.pc-units{color:var(--text);font-size:.78rem;font-weight:700;margin-left:4px;text-transform:lowercase;letter-spacing:.02em}.pc-bar-wrap{height:4px;background:var(--border);border-radius:999px;overflow:hidden}.pc-bar-fill{height:100%;border-radius:999px;transition:width .5s ease}.pc-feedback{font-size:.95rem;color:var(--text);line-height:1.6}.pc-feedback .katex,.pc-sub-feedback .katex{font-size:1em}.pc-feedback .katex-display,.pc-sub-feedback .katex-display{display:inline-block;margin:0;font-size:1em}.pc-copy-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);padding:2px 10px;font-size:.7rem;color:var(--text-muted);cursor:pointer;margin-top:6px;align-self:flex-end;transition:all .15s}.pc-copy-btn:hover{background:var(--surface-hover);color:var(--text)}.pc-card-actions{display:flex;gap:6px;margin-top:6px;align-self:flex-end;align-items:center}.pc-card-actions .pc-copy-btn{margin-top:0;align-self:auto}.pc-edit-btn,.pc-revert-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);padding:2px 10px;font-size:.7rem;color:var(--text-muted);cursor:pointer;transition:all .15s;font-family:inherit}.pc-edit-btn:hover{background:var(--surface-hover);color:var(--accent);border-color:var(--accent)}.pc-revert-btn{color:#b45309;border-color:#b4530966}.pc-revert-btn:hover{background:#f59e0b1a;color:#92400e}.pc-edit-mode{display:flex;flex-direction:column;gap:6px;margin:4px 0}.pc-feedback-edit{width:100%;min-height:80px;padding:8px 10px;font-family:inherit;font-size:.9rem;line-height:1.5;color:var(--text);background:var(--card);border:1.5px solid var(--accent);border-radius:6px;resize:vertical;box-sizing:border-box;outline:none}.pc-feedback-edit:focus{box-shadow:0 0 0 3px #3b82f626}.pc-edit-actions{display:flex;gap:6px;justify-content:flex-end}.pc-edit-save,.pc-edit-cancel{padding:4px 14px;font-size:.78rem;font-weight:600;border-radius:5px;cursor:pointer;font-family:inherit;transition:all .15s}.pc-edit-save{color:#fff;background:var(--accent, #3b82f6);border:1px solid var(--accent, #3b82f6)}.pc-edit-save:hover{filter:brightness(1.1)}.pc-edit-cancel{color:var(--text-muted);background:none;border:1px solid var(--border)}.pc-edit-cancel:hover{background:var(--surface-hover);color:var(--text)}.pc-edited-badge{display:inline-block;margin-left:8px;padding:0 6px;font-size:.6rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#92400e;background:#f59e0b2e;border-radius:3px;vertical-align:middle;cursor:help}.pc-subparts{display:flex;flex-direction:column;gap:6px;margin-top:2px}.pc-subpart{display:grid;grid-template-columns:1.8rem 1fr auto auto;align-items:baseline;gap:6px;padding:6px 10px;background:var(--bg);border-radius:6px;border-left:3px solid var(--border)}.pc-sub-copy-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:0;color:var(--text-muted);cursor:pointer;transition:all .18s ease;align-self:center;flex-shrink:0}.pc-sub-copy-btn svg{transition:transform .18s ease}.pc-sub-copy-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 6px #3b82f640;transform:translateY(-1px)}.pc-sub-copy-btn:hover svg{transform:scale(1.1)}.pc-sub-copy-btn:active{transform:translateY(0)}.pc-sub-copy-btn.copied{color:#fff;border-color:var(--green);background:var(--green);box-shadow:0 2px 6px #22c55e4d;animation:copy-pulse .3s ease}@keyframes copy-pulse{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1)}}.pc-sub-label{font-family:var(--font-mono);font-size:.78rem;font-weight:700;color:var(--accent)}.pc-sub-feedback{font-size:.8rem;color:var(--text-muted);line-height:1.45}.pc-sub-score{font-family:var(--font-mono);font-size:.8rem;font-weight:700;white-space:nowrap}.pc-sub-score-edit{display:flex;align-items:center;gap:2px;white-space:nowrap}.pc-sub-score-input{width:3rem;background:var(--surface);border:1px solid var(--border);border-radius:4px;font-family:var(--font-mono);font-size:.78rem;font-weight:700;text-align:center;padding:2px 4px;outline:none;transition:border-color .15s}.pc-sub-score-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.pc-sub-sep{font-size:.75rem;color:var(--text-dim)}.pc-sub-max{font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted)}.pc-score-display{font-family:var(--font-mono);font-size:1.3rem;font-weight:800}.two-col-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:4px}.three-col-inputs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:4px}.two-col-inputs .total-points-row,.three-col-inputs .total-points-row{margin-bottom:0}.model-select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);font-family:var(--font-sans);font-size:.82rem;color:var(--text);cursor:pointer;transition:border-color .2s}.model-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d1;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.lightbox-img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:var(--radius);box-shadow:0 24px 80px #00000080;transition:transform .15s ease;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.lightbox-close{position:fixed;top:20px;right:24px;width:36px;height:36px;border-radius:50%;background:#ffffff26;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:1001}.lightbox-close:hover{background:#ffffff4d}.lightbox-controls{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:#000000b3;border:1px solid rgba(255,255,255,.2);border-radius:24px;padding:6px 16px;z-index:1001;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lightbox-ctrl-btn{width:32px;height:32px;border-radius:50%;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.lightbox-ctrl-btn:hover{background:#ffffff40}.lightbox-scale{color:#fffc;font-size:.8rem;font-weight:600;min-width:48px;text-align:center;font-variant-numeric:tabular-nums}.image-card{cursor:pointer}.zoom-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:600;color:#fff;background:#0000004d;opacity:0;transition:opacity .15s;border-radius:inherit;pointer-events:none;letter-spacing:.03em}.image-card:hover .zoom-hint{opacity:1}.viewer-img-wrap{position:relative;cursor:zoom-in;border-radius:var(--radius);overflow:hidden}.viewer-zoom-hint{position:absolute;bottom:10px;right:10px;font-size:.65rem;font-weight:600;color:#fff;background:#00000080;padding:3px 8px;border-radius:4px;opacity:0;transition:opacity .15s;pointer-events:none}.viewer-img-wrap:hover .viewer-zoom-hint{opacity:1}.viewer-img-wrap .viewer-img{display:block;width:100%}.token-usage{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;flex-direction:column;gap:6px;margin-top:4px}.tu-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.tu-label{font-size:.72rem;color:var(--text-muted);font-weight:500}.tu-value{font-size:.72rem;font-family:var(--font-mono);color:var(--text);font-weight:600}.tu-value--highlight{color:var(--accent)}.point-breakdown{margin:8px 0;padding:8px 10px;background:var(--bg);border-radius:var(--radius);border:1px solid var(--border)}.pb-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.pb-title{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.pb-total{font-size:.72rem;font-weight:600;padding:1px 6px;border-radius:4px}.pb-total--ok{color:var(--green);background:#16a34a1a}.pb-total--warn{color:var(--red);background:#dc26261a}.pb-grid{display:flex;gap:12px;flex-wrap:wrap}.pb-problem{display:flex;align-items:flex-start;gap:6px}.pb-prob-label{font-size:.78rem;font-weight:700;color:var(--text);padding-top:4px;white-space:nowrap}.pb-subparts{display:flex;flex-direction:column;gap:3px}.pb-sub-row{display:flex;align-items:center;gap:4px}.pb-sub-label{font-size:.72rem;color:var(--text-muted);font-weight:500;width:20px}.pb-input{width:52px;padding:3px 6px;border:1px solid var(--border);border-radius:4px;font-size:.78rem;text-align:center;background:var(--surface);transition:border-color .15s}.pb-input:focus{outline:none;border-color:var(--accent)}.pb-input::placeholder{color:var(--text-dim);font-size:.7rem}.actions-row--compact{display:flex;gap:6px;margin-top:6px}.grade-btn--sm{padding:6px 20px;font-size:.82rem}.sub-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;gap:8px;flex-wrap:wrap}.sub-toolbar-left{display:flex;align-items:center;gap:8px}.sub-toolbar-title{font-weight:600;font-size:.85rem;color:var(--accent)}.sub-toolbar-count{font-size:.78rem;font-weight:500;color:var(--text);background:#f3f4f6;padding:3px 10px;border-radius:999px;letter-spacing:.01em}.sub-toolbar-right{display:flex;align-items:center;gap:6px}.sub-toolbar-sep{width:1px;height:16px;background:var(--border);margin:0 2px}.sub-tb-btn{padding:4px 10px;font-size:.75rem;font-weight:500;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer;transition:all .15s;white-space:nowrap}.sub-tb-btn:hover:not(:disabled){background:var(--bg);border-color:var(--accent);color:var(--accent)}.sub-tb-btn:disabled{opacity:.4;cursor:not-allowed}.sub-tb-btn--accent{background:var(--accent);color:#fff;border-color:var(--accent)}.sub-tb-btn--accent:hover:not(:disabled){background:#2563eb;color:#fff}.sub-tb-btn--grade-all{background:var(--green);color:#fff;border-color:var(--green)}.sub-tb-btn--grade-all:hover:not(:disabled){filter:brightness(.9);color:#fff}.sub-tb-btn--cancel{background:var(--red);color:#fff;border-color:var(--red)}.sub-tb-btn--danger{color:var(--red);border-color:var(--border)}.sub-tb-btn--danger:hover:not(:disabled){background:var(--red);color:#fff;border-color:var(--red)}.sub-content-area{position:relative;display:flex;align-items:stretch}.sub-nav-arrow{position:sticky;top:38vh;align-self:flex-start;margin-top:calc(38vh - 18px);width:36px;height:36px;min-width:36px;display:flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--border);border-radius:50%;color:var(--text);cursor:pointer;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a;transition:background .12s ease,box-shadow .12s ease,border-color .12s ease,transform .12s ease,opacity .12s ease;z-index:2;flex-shrink:0;margin-left:6px;margin-right:6px;padding:0}.sub-nav-arrow:hover:not(:disabled){background:var(--surface);border-color:var(--muted);box-shadow:0 2px 6px #00000014,0 6px 18px #0000000f;transform:scale(1.06)}.sub-nav-arrow:active:not(:disabled){transform:scale(.97);box-shadow:0 1px 2px #0000000f}.sub-nav-arrow:disabled{opacity:.3;cursor:not-allowed;box-shadow:none}.sub-nav-indicator{text-align:center;font-size:.75rem;color:var(--muted);padding:4px 0;font-weight:600}.nav-arrow--sm{width:26px;height:26px;font-size:.85rem}.spinner--sm{width:12px;height:12px;border-width:2px;margin-right:4px;display:inline-block;vertical-align:middle}.sub-list-wrap{margin:.5rem 0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);max-height:160px;overflow-y:auto}.sub-list{display:flex;flex-direction:column}.sub-list-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:none;background:transparent;cursor:pointer;font-size:.8rem;color:var(--text);text-align:left;border-radius:6px;transition:background .15s}.sub-list-item:hover{background:#f3f4f6}.sub-list-item--active{background:#e5e7eb;font-weight:600}.sub-list-item--graded .sub-list-name{color:var(--green)}.sub-list-num{min-width:1.4rem;text-align:center;font-weight:700;font-size:.7rem;color:var(--text-muted);background:var(--surface);border-radius:4px;padding:.1rem .3rem}.sub-list-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sub-list-pages{font-size:.7rem;color:var(--text-muted)}.sub-list-check{color:var(--green);font-weight:700;font-size:.85rem}.sub-list-delete{width:22px;height:22px;border:none;background:transparent;color:var(--text-muted);font-size:.85rem;cursor:pointer;border-radius:4px;opacity:0;transition:opacity .15s,background .15s,color .15s;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}.sub-list-item:hover .sub-list-delete,.sub-list-item--active .sub-list-delete{opacity:1}.sub-list-delete:hover{background:#ef44441f;color:#ef4444}.sub-list-check-input{width:15px;height:15px;margin:0;cursor:pointer;accent-color:var(--accent);flex-shrink:0}.sub-list-item--checked{background:#3b82f612}.sub-list-actionbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.15rem .75rem .4rem;background:var(--card);border-bottom:1px solid var(--border);animation:sub-actionbar-in .15s ease-out}@keyframes sub-actionbar-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sub-list-actionbar-count{font-size:.8rem;font-weight:600;color:var(--text)}.sub-list-actionbar-actions{display:flex;gap:.4rem}.sub-list-actionbar-btn{padding:6px 12px;font-size:.75rem;font-weight:600;border-radius:5px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap;min-width:110px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:6px}.sub-list-actionbar-icon{width:14px;height:14px;flex-shrink:0}.sub-list-actionbar-btn:hover:not(:disabled){background:var(--card)}.sub-list-actionbar-btn:disabled{opacity:.45;cursor:not-allowed}.sub-list-actionbar-btn--merge{background:var(--accent);color:#fff;border-color:var(--accent)}.sub-list-actionbar-btn--merge:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.sub-list-actionbar-btn--merge:disabled{background:#e5e7eb;color:var(--text-muted);border-color:var(--border)}.sub-list-actionbar-btn--delete{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.sub-list-actionbar-btn--delete:hover:not(:disabled){background:#b91c1c;color:#fff;border-color:#b91c1c}.sub-list-actionbar-btn--clear{color:var(--text)}.submission-pdf-view{border:none;border-radius:0;background:var(--bg);display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.submission-page{position:relative;cursor:pointer;background:var(--surface)}.submission-page-img{width:100%;display:block}.submission-page-remove{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;border:none;background:#00000080;color:#fff;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;z-index:3}.submission-page:hover .submission-page-remove{opacity:1}.submission-nav{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.5rem 0;margin-bottom:.5rem}.nav-arrow{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.nav-arrow:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.nav-arrow:disabled{opacity:.3;cursor:default}.nav-label{font-size:.85rem;color:var(--text-muted);font-weight:500}.review-nav{position:fixed;top:50%;transform:translateY(-50%);z-index:100;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1.3rem;cursor:pointer;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;transition:all .15s}.review-nav--left{left:8px}.review-nav--right{right:8px}.review-nav:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.review-nav:disabled{opacity:.3;cursor:default}.grouping-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center}.grouping-dialog{background:var(--surface);border-radius:var(--radius-lg);padding:1.5rem;max-width:500px;width:90%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.grouping-title{font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.grouping-desc{font-size:.85rem;color:var(--text-muted);margin-bottom:1rem}.grouping-list{border:1px solid var(--border);border-radius:var(--radius);overflow-y:auto;max-height:40vh;margin-bottom:1rem}.grouping-item{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem .8rem;border-bottom:1px solid var(--border);font-size:.85rem;cursor:pointer;transition:background .15s}.grouping-item:hover{background:#f5f5f5}.grouping-item--selected{background:#e8f0fe}.grouping-item--selected:hover{background:#d2e3fc}.grouping-item:last-child{border-bottom:none}.grouping-check{margin-top:2px;cursor:pointer;accent-color:var(--primary)}.grouping-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.grouping-student{font-weight:600}.grouping-pages{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grouping-count{color:var(--text-muted);font-size:.8rem;white-space:nowrap}.grouping-btn--merge{width:100%;padding:.5rem;margin-bottom:.5rem;background:#e8f0fe;color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius);font-weight:600;cursor:pointer;font-size:.85rem}.grouping-btn--merge:hover{background:#d2e3fc}.grouping-actions{display:flex;flex-direction:column;gap:.5rem}.grouping-btn{padding:.6rem 1rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);font-size:.85rem;cursor:pointer;transition:all .15s}.grouping-btn--confirm{background:var(--accent);color:#fff;border-color:var(--accent)}.grouping-btn--confirm:hover{background:var(--accent-dark)}.grouping-btn--single:hover{background:var(--bg)}.grouping-btn--cancel{color:var(--text-muted)}.pill--blue{background:#2563eb1a;color:var(--accent)}.cost-tracker{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:500;padding:3px 10px;border-radius:999px;background:#16a34a14;border:1px solid rgba(22,163,74,.2);color:var(--green)}.cost-tracker-label{font-weight:700;font-family:var(--font-mono)}.cost-tracker-bar{width:50px;height:4px;background:#00000014;border-radius:999px;overflow:hidden}.cost-tracker-fill{height:100%;border-radius:999px;transition:width .4s ease}.cost-tracker-remaining{color:var(--text-muted);font-size:.68rem}.pc-flags{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 2px}.pc-flag{display:inline-flex;align-items:center;font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:4px;background:#d977061a;color:var(--yellow);border:1px solid rgba(217,119,6,.25)}.pill--warn{background:#d977061f;color:var(--yellow);border-color:#d977064d;font-weight:600}.pb-header--toggle,.re-header--toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.pb-header--toggle:hover,.re-header--toggle:hover{opacity:.8}.pb-collapse-icon{font-size:.82rem;color:var(--text-muted);margin-right:4px}.rubric-editor{margin-top:8px;padding:14px 16px;border:1px solid #d1d5db;border-radius:var(--radius);background:var(--card)}.re-header{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.re-title{font-size:1.1rem;font-weight:700;color:var(--text)}.re-title-optional{font-size:.78rem;font-weight:400;color:var(--text-muted);margin-left:4px}.re-hint{font-size:.68rem;color:var(--text-dim)}.re-total-pill{font-size:.7rem;font-weight:600;color:var(--green);background:#16a34a14;padding:1px 8px;border-radius:10px;margin-left:auto}.re-total-pill--warn{color:var(--red);background:#ef444414}.re-grid{display:flex;flex-direction:column;gap:8px}.re-row-card{background:transparent;border:none;border-radius:0;padding:8px 0}.re-row-top{display:flex;gap:10px;align-items:center;margin-bottom:8px}.re-name-input{flex:1;font-size:.78rem;font-weight:600;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-family:var(--font-sans)}.re-name-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.re-name-input::placeholder{color:var(--text-dim)}.re-pts-wrap{position:relative;display:inline-flex;align-items:center;flex-shrink:0}.re-pts-input{width:78px;font-size:.82rem;font-weight:700;text-align:right;padding:5px 32px 5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--green);font-family:var(--font-sans);-moz-appearance:textfield}.re-pts-input::-webkit-outer-spin-button,.re-pts-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.re-pts-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.re-pts-input::placeholder{color:var(--text-dim);font-weight:500}.re-pts-suffix{position:absolute;right:9px;font-size:.7rem;font-weight:600;color:var(--text-muted);pointer-events:none;letter-spacing:.02em}.re-remove-btn{background:none;border:none;color:var(--red);font-size:1.1rem;cursor:pointer;padding:0 4px;line-height:1;opacity:.5}.re-remove-btn:hover{opacity:1}.re-add-btn{font-size:.8rem;font-weight:600;color:var(--accent);background:var(--card);border:1px solid var(--border);border-radius:8px;padding:10px;box-shadow:0 1px 2px #0000000a,0 2px 6px #0000000a;cursor:pointer;transition:background .15s}.re-add-btn:hover{background:#3b82f60f}.re-problem-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;box-shadow:0 1px 2px #00000008}.re-replace-btn{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:600;color:var(--accent);background:#3b82f614;border:1px solid rgba(59,130,246,.22);border-radius:7px;padding:7px 14px;cursor:pointer;white-space:nowrap;transition:all .15s}.re-replace-btn:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.re-replace-btn:disabled{opacity:.55;cursor:not-allowed}.re-problem-head{display:flex;align-items:center;gap:8px;padding-bottom:6px}.re-problem-name{flex:1;font-size:.9rem;font-weight:700;padding:4px 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);font-family:var(--font-sans);cursor:text;transition:background .15s,border-color .15s}.re-problem-name:hover{background:#3b82f60d;border-color:#3b82f62e}.re-problem-name:focus{outline:none;border-color:var(--accent);background:var(--bg);box-shadow:0 0 0 2px var(--accent-glow)}.re-problem-total{font-size:.78rem;font-weight:600;color:var(--green);background:#10b98114;padding:3px 8px;border-radius:999px;white-space:nowrap}.re-subpart-card{background:transparent;padding:10px 0}.re-sub-label-input{font-size:.78rem;font-weight:700;color:var(--accent);font-family:var(--font-sans);width:44px;height:26px;text-align:center;background:#3b82f614;border:1px solid transparent;border-radius:6px;padding:0 4px;flex-shrink:0;cursor:text;transition:background .15s,border-color .15s}.re-sub-label-input::placeholder{color:var(--accent);opacity:.4}.re-sub-label-input:hover{background:#3b82f624;border-color:#3b82f647}.re-sub-label-input:focus{outline:none;background:#fff;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.re-add-subpart-btn{align-self:flex-start;font-size:.78rem;font-weight:600;color:var(--accent);background:#3b82f60d;border:1px solid rgba(59,130,246,.22);border-radius:6px;padding:5px 12px;margin-left:20px;margin-top:4px;cursor:pointer;transition:all .15s}.re-add-subpart-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);border-style:solid}.re-upload-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.re-upload-btn{font-size:.78rem;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:8px;padding:8px 14px;cursor:pointer;transition:opacity .15s;white-space:nowrap}.re-upload-btn:hover{opacity:.85}.re-upload-btn:disabled{opacity:.5;cursor:not-allowed}.re-upload-hint{font-size:.7rem;color:var(--text-muted)}.config-view-analysis-btn{font-size:.78rem;font-weight:600;color:var(--accent);background:#3b82f614;border:1.5px solid var(--accent);border-radius:8px;padding:8px 14px;cursor:pointer;width:100%;margin-bottom:12px;transition:background .15s}.config-view-analysis-btn:hover{background:#3b82f624}.re-input{display:block;box-sizing:border-box;width:100%;font-size:.82rem;font-family:var(--font-sans);padding:10px 12px;margin-top:6px;border:1px solid var(--border);border-radius:6px;background:var(--surface);resize:vertical;min-height:90px;line-height:1.5;transition:border-color .15s;color:var(--text)}.re-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.re-input::placeholder{color:var(--text-dim)}.pill--dashboard{background:#2563eb1a;color:var(--accent);border:1px solid rgba(37,99,235,.25);cursor:pointer;font-weight:600;font-size:.72rem;padding:3px 10px;border-radius:999px;font-family:var(--font-sans);transition:background .15s}.pill--dashboard:hover{background:#2563eb2e}.dashboard-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dashboard-panel{background:var(--surface);border-radius:var(--radius-lg);width:90%;max-width:800px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.dash-header{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border)}.dash-title{font-size:1rem;font-weight:700;color:var(--text)}.dash-sub{font-size:.75rem;color:var(--text-muted)}.dash-close{margin-left:auto;background:none;border:1px solid var(--border);border-radius:6px;padding:4px 10px;cursor:pointer;font-size:.75rem;color:var(--text-muted);font-family:var(--font-sans)}.dash-close:hover{background:var(--bg)}.dash-scroll{overflow-y:auto;padding:16px 20px;flex:1}.dash-stats{display:flex;gap:12px;margin-bottom:20px}.dash-stat{flex:1;text-align:center;padding:12px 8px;background:var(--bg);border-radius:var(--radius);border:1px solid var(--border)}.dash-stat-val{display:block;font-size:1.2rem;font-weight:700;color:var(--accent);font-family:var(--font-mono)}.dash-stat-label{display:block;font-size:.68rem;color:var(--text-muted);margin-top:2px}.dash-section{margin-bottom:20px}.dash-section-title{display:block;font-size:.78rem;font-weight:700;color:var(--text);margin-bottom:8px}.dash-histogram{display:flex;align-items:flex-end;gap:4px;height:120px;padding:0 4px}.dash-hist-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.dash-hist-bar{width:100%;background:linear-gradient(180deg,var(--accent),rgba(37,99,235,.6));border-radius:4px 4px 0 0;min-height:0;position:relative;transition:height .3s ease}.dash-hist-count{position:absolute;top:-16px;left:50%;transform:translate(-50%);font-size:.65rem;font-weight:700;color:var(--accent)}.dash-hist-label{font-size:.58rem;color:var(--text-dim);margin-top:4px}.dash-problems{display:flex;flex-direction:column;gap:6px}.dash-prob-row{display:flex;align-items:center;gap:8px}.dash-prob-label{font-size:.75rem;font-weight:700;color:var(--text);width:28px}.dash-prob-bar-wrap{flex:1;height:8px;background:#0000000f;border-radius:999px;overflow:hidden}.dash-prob-bar{height:100%;border-radius:999px;transition:width .3s ease}.dash-prob-avg{font-size:.72rem;font-weight:700;font-family:var(--font-mono);width:36px;text-align:right}.dash-prob-score{font-size:.68rem;color:var(--text-muted);width:50px;text-align:right}.dash-students{display:flex;flex-direction:column;gap:2px}.dash-student-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:.75rem;transition:background .1s}.dash-student-row:hover{background:var(--bg)}.dash-student-rank{width:20px;font-weight:700;color:var(--text-dim);text-align:center;font-size:.68rem}.dash-student-name{flex:1;font-weight:500;color:var(--text)}.dash-student-flag{font-size:.68rem;font-weight:700;color:var(--yellow);background:#d977061a;border-radius:4px;padding:1px 5px}.dash-student-score{font-weight:600;font-family:var(--font-mono);width:55px;text-align:right}.dash-student-pct{font-weight:700;font-family:var(--font-mono);width:40px;text-align:right}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.review-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1118278c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;animation:review-fade-in .14s ease-out}@keyframes review-fade-in{0%{opacity:0}to{opacity:1}}.review-dialog{background:var(--surface);border-radius:var(--radius-lg);box-shadow:0 20px 48px #00000040,0 4px 12px #0000001f;padding:28px;max-width:520px;width:100%;animation:review-pop-in .16s cubic-bezier(.2,.9,.3,1.15)}.review-dialog--large{max-width:680px;max-height:82vh;display:flex;flex-direction:column}@keyframes review-pop-in{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.review-dialog-title{font-size:1.15rem;font-weight:700;color:var(--text);margin-bottom:10px}.review-dialog-sub{font-size:.9rem;color:var(--text-muted);line-height:1.5;margin-bottom:20px}.review-dialog-actions{display:flex;gap:10px;justify-content:flex-end}.review-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;font-size:.88rem;font-weight:600;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:all .14s ease;font-family:inherit}.review-btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.review-btn--primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark);transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow)}.review-btn--secondary{background:#fff;color:var(--text);border-color:var(--border)}.review-btn--secondary:hover:not(:disabled){border-color:var(--border-hover);background:var(--bg)}.review-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.structure-list{flex:1;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);padding:6px;margin-bottom:14px;background:var(--bg)}.structure-empty{padding:18px;text-align:center;color:var(--text-muted);font-size:.88rem}.structure-problem{padding:8px 6px;border-bottom:1px dashed var(--border)}.structure-problem:last-child{border-bottom:none}.structure-problem-head{font-size:.82rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;padding:4px 6px 6px}.structure-subpart{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:2px 0;border-radius:6px;cursor:pointer;transition:background .12s ease;font-size:.9rem}.structure-subpart:hover{background:#fff}.structure-subpart--checked{background:var(--gold-glow);border:1px solid rgba(180,83,9,.25)}.structure-subpart input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--gold);flex-shrink:0}.structure-subpart-label{flex:1;color:var(--text);line-height:1.4}.structure-subpart-label strong{color:var(--accent);margin-right:4px}.structure-diagram-badge{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--gold);color:#fff;padding:3px 7px;border-radius:999px;flex-shrink:0}.structure-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:8px;border-top:1px solid var(--border);margin-top:4px}.structure-flagged-count{font-size:.82rem;color:var(--text-muted);font-weight:500}.structure-detect-usage{color:var(--text-dim);font-family:var(--font-mono);font-size:.75rem}.diagram-review-banner{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;margin:12px 16px;background:var(--gold-glow);border:1px solid rgba(180,83,9,.3);border-left:3px solid var(--gold);border-radius:var(--radius);font-size:.85rem;color:var(--text);line-height:1.5}.diagram-review-banner-icon{color:var(--gold);font-weight:700;flex-shrink:0;margin-top:1px}.diagram-review-banner--confirmed{background:#16a34a14;border-color:#16a34a4d;border-left-color:var(--green)}.diagram-review-banner--confirmed .diagram-review-banner-icon{color:var(--green)}.analysis-with-concerns{flex:1;overflow-y:auto;padding:12px 16px 16px}.analysis-section{margin-bottom:10px;padding:4px 0;border-bottom:1px dashed var(--border)}.analysis-section:last-child{border-bottom:none}.analysis-section--flagged{background:linear-gradient(180deg,transparent 0%,var(--gold-glow) 100%);border-radius:var(--radius);padding:10px 12px;margin-bottom:14px;border:1px solid rgba(180,83,9,.2);border-left:3px solid var(--gold)}.analysis-section-body{font-family:var(--font-mono);font-size:.82rem;line-height:1.55;color:var(--text);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.concern-box{margin-top:10px;padding:10px 12px;background:#fff;border:1px solid rgba(180,83,9,.35);border-radius:var(--radius)}.concern-label{display:flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:var(--gold);margin-bottom:6px}.concern-label-icon{font-weight:700}.concern-textarea{width:100%;font-family:var(--font-sans);font-size:.88rem;color:var(--text);padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);resize:vertical;line-height:1.45;transition:border-color .12s ease,box-shadow .12s ease}.concern-textarea:focus{outline:none;border-color:var(--gold);background:#fff;box-shadow:0 0 0 3px var(--gold-glow)}.diagram-review-actions{display:flex;gap:10px;justify-content:flex-end;padding:12px 16px 16px;border-top:1px solid var(--border);background:var(--surface);position:sticky;bottom:0;z-index:2}2; }{}
