@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: #f3f5f2;--surface: #ffffff;--surface-sunken: #f3f5f2;--surface-tint: #eaf5ef;--text: #16241f;--text-muted: #4d5c55;--text-meta: #5f6e67;--text-faint: #6b7a73;--border: #cfd8d2;--border-soft: #e6ebe8;--accent: #0b3d2e;--accent-deep: #16241f;--accent-soft: #2b6350;--accent-on: #a7c4b7;--accent-lime: #d6f24f;--on-lime: #0b3d2e;--ok: #0b7a55;--warn: #b0703a;--danger: #b42318;--tree-light: #dc2626;--art-1: #b7cadb;--art-2: #7ea3c2;--art-3: #42749d;--art-4: #1f3a5f;--art-hi: #b0703a;--font-display: "Pretendard Variable", Pretendard, -apple-system, system-ui, sans-serif;--font-body: "Pretendard Variable", Pretendard, -apple-system, system-ui, sans-serif;--mono: "JetBrains Mono", "D2Coding", ui-monospace, SFMono-Regular, Menlo, monospace;--rail-w: 208px;--r-card: 14px;--r-shell: 16px;--r-input: 12px;--r-chip: 999px;--r-badge: 6px;--surface-2: var(--surface-sunken);--accent-weak: var(--surface-tint);--radius: 10px;--ok-text: #0b7a55;--warn-text: #b45309;--bad: var(--danger);--ok-bg: #f0fdf4;--ok-line: #bbf7d0;--bad-bg: #fef2f2;--bad-line: #fecaca;--bad-ink: #7f1d1d}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.6}h1{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;font-size:30px}h2{font-family:var(--font-display);font-weight:700;letter-spacing:-.015em;font-size:24px}h3{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em;font-size:19px}.meta,.count,.kbd-hint{font-family:var(--mono);font-size:11.5px;color:var(--text-muted)}.label{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.1em;color:var(--text-meta)}button{font:inherit;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff;padding:10px 16px;border-radius:var(--radius);transition:opacity .15s ease}button:hover{opacity:.9}button:disabled{opacity:.45;cursor:not-allowed}button.ghost{background:transparent;color:var(--accent)}.btn-primary{background:var(--accent-lime);color:var(--on-lime);border:0;border-radius:var(--r-input);padding:12px 22px;font-size:14px;font-weight:700}.btn-primary:hover{opacity:.92}.btn-secondary{background:var(--surface-tint);color:var(--accent);border:0;border-radius:10px;padding:9px 15px;font-size:13px;font-weight:600}.btn-ghost{background:none;border:1px solid var(--border);color:var(--text-meta);border-radius:10px;padding:9px 15px;font-size:13px}.btn-ghost:hover{color:var(--text);border-color:var(--text-muted);opacity:1}input{font:inherit;width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--text)}input:focus{outline:2px solid var(--accent-weak);border-color:var(--accent)}input[type=checkbox],input[type=radio]{width:auto;padding:0;border:none;border-radius:0;background:none;flex:none;margin:0}.auth-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.auth-split{width:100%;max-width:1000px;display:grid;grid-template-columns:1.15fr 1fr;background:var(--accent);border-radius:var(--r-shell);overflow:hidden}.auth-brand{padding:44px 40px;display:flex;flex-direction:column;gap:24px;color:#e6f2ec;min-width:0}.auth-logo{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.01em;color:#fff}.auth-brand-mid{margin-top:auto;display:flex;flex-direction:column;gap:12px}.auth-brand-mid h1{margin:0;font-size:34px;line-height:1.25;color:#fff}.auth-brand-mid p{margin:0;font-size:15px;color:var(--accent-on);max-width:42ch}.auth-brand .login-art{margin:0;background:#0f4a38;border-radius:12px;padding:14px 18px}.auth-brand .login-art-video{background:none;padding:0}.auth-brand .login-art-cap{color:var(--accent-on)}.auth-feats{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:11px}.auth-feats span{border:1px solid var(--accent-soft);border-radius:var(--r-chip);padding:4px 10px;color:var(--accent-on)}.auth-card{width:100%;background:var(--bg);border:0;border-radius:0;padding:44px 40px;display:flex;flex-direction:column;justify-content:center}.auth-card-head{margin-bottom:22px}.auth-card h2{margin:0 0 6px;font-size:26px;color:var(--accent)}.auth-card .sub{color:var(--text-muted);font-size:13.5px;margin:0}@media (max-width: 860px){.auth-wrap{padding:0;align-items:stretch}.auth-split{grid-template-columns:1fr;max-width:520px;border-radius:0}.auth-brand{padding:22px 20px;gap:16px}.auth-brand-mid,.auth-feats{display:none}.auth-card{padding:28px 20px}}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--text-muted);margin-bottom:6px}.row{display:flex;gap:8px}.msg{font-size:13px;margin:10px 0 0}.msg.err{color:var(--danger)}.msg.info{color:var(--accent)}.dev-code{margin-top:12px;padding:10px 12px;font-family:var(--mono);background:var(--accent-weak);border-radius:var(--radius);font-size:13px}.shell{display:flex;flex-direction:column;height:100%}.appnav{flex-shrink:0;display:flex;align-items:center;gap:26px;height:60px;padding:0 22px;background:var(--accent)}.appnav .brand{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.01em;color:#fff;white-space:nowrap}.appnav .tabs{display:flex;gap:3px}.appnav .tabs button{background:transparent;color:var(--accent-on);border:1px solid transparent;padding:6px 13px;font-size:13.5px;border-radius:var(--r-chip);white-space:nowrap}.appnav .tabs button:hover{background:#0f4a38;color:#e6f2ec;opacity:1}.appnav .tabs button.on{background:var(--accent-lime);color:var(--on-lime);border-color:var(--accent-lime);font-weight:700}.appnav .tabs button.on:hover{background:var(--accent-lime);color:var(--on-lime)}.appnav .who{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:13px;color:var(--accent-on)}.appnav .who-name b{font-weight:inherit}.appnav .who-name em{font-style:normal}.appnav .who-name em:before{content:" · "}.appnav .who button{margin-left:0;padding:6px 14px;font-size:13px;background:none;border:1px solid var(--accent-soft);border-radius:var(--r-chip);color:#e6f2ec}.appnav .who button:hover{background:#0f4a38;opacity:1}.view{flex:1;min-height:0;background:var(--bg)}.learn-scroll{height:100%;overflow-y:auto;padding:24px 0 48px}.learn-inner{max-width:860px;margin:0 auto;padding:0 18px}.learn-msg{color:var(--text-muted);font-size:14px;padding:24px 0}.learn-head h1{margin:0 0 6px}.learn-head p{color:var(--text-muted);font-size:14px;margin:0 0 8px}.ch-section{margin-top:28px}.ch-section-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px}.ch-section-title{font-size:17px;margin:0}.ch-section-chips{margin-left:auto;display:flex;gap:8px}.ch-chip{font-family:var(--mono);font-size:11.5px;color:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 11px}.ch-chip.on{background:var(--accent);color:var(--accent-lime);border-color:var(--accent)}.ch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.ch-card{text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-card);padding:18px;display:flex;flex-direction:column;gap:12px}.ch-card:hover{border-color:var(--accent);opacity:1}.ch-card-top{display:flex;align-items:center;gap:10px}.ch-num{font-family:var(--mono);font-size:11px;font-weight:700;background:var(--surface-tint);color:var(--accent);border-radius:var(--r-badge);padding:3px 8px;white-space:nowrap}.ch-num.done{background:var(--accent);color:#fff}.ch-pages{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--text-meta);white-space:nowrap}.ch-badge{font-size:11px;color:var(--text-muted);background:var(--surface-sunken);border:1px solid var(--border);border-radius:999px;padding:1px 8px}.ch-title{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:-.01em;line-height:1.3;color:var(--accent)}.ch-summary{margin:0;font-size:13.5px;color:var(--text-muted);line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.ch-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.ch-tag{font-family:var(--mono);font-size:11px;background:var(--surface-tint);color:var(--accent);border-radius:var(--r-badge);padding:4px 8px}.ch-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--text-muted);margin-top:auto}.back-btn{padding:6px 12px;font-size:13px;margin-bottom:18px}.detail-head{margin-bottom:22px}.detail-head h1{font-size:22px;margin:8px 0 10px;line-height:1.35}.jeffe-row{margin-top:12px;font-size:13px;color:var(--text-muted)}.jeffe-chip{display:inline-block;font-size:12px;color:var(--text-muted);background:#fff;border:1px dashed var(--border);border-radius:999px;padding:2px 10px;margin:0 4px 4px 0}.overview-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;margin-bottom:20px}.overview-card h2{font-size:16px;margin:0 0 12px}.overview-card h3{font-size:14px;margin:20px 0 10px}.overview-summary{margin:0;font-size:15px;line-height:1.7}.concept-list{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:8px}.concept-list li{padding:10px 12px;background:var(--surface-2);border-radius:var(--radius);font-size:14px}.concept-name{font-weight:600}.concept-desc{color:var(--text-muted)}.detail-actions{margin-top:14px;display:flex;flex-wrap:wrap;gap:10px}.detail-actions button{font-size:14px}.next-steps{border:1px solid var(--border);border-radius:var(--r-card);padding:18px;background:var(--surface)}.ns-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.ns-step{flex:none;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10.5px;font-weight:700;background:var(--surface-sunken);color:var(--text-meta)}.ns-step.done{background:var(--accent);color:#fff}.step-btn{border-radius:10px;padding:10px 16px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:6px}.step-btn.next{background:var(--accent-lime);color:var(--on-lime);border:1px solid var(--accent);font-weight:700}.step-btn.next:hover{opacity:.92}.step-btn.todo{background:var(--surface);color:var(--accent);border:1px solid var(--accent)}.step-btn.todo:hover{background:var(--surface-tint);opacity:1}.step-btn.done{background:var(--surface-tint);color:var(--accent);border:1px solid #7e9a8c;font-weight:500}.step-btn.done:hover{border-color:var(--accent);opacity:1}.step-btn.done:before{content:"✓";font-weight:700}.next-steps h3{font-size:15px;margin:0}.next-steps p{margin:0;font-size:13px;color:var(--text-muted);line-height:1.6}.level-badge{font-size:11px;font-weight:600;border-radius:999px;padding:2px 10px;border:1px solid transparent;white-space:nowrap}.level-badge.lv-none{color:var(--text-muted);background:#f1f3f5;border-color:var(--border)}.level-badge.lv-basic{color:#92400e;background:#fef3c7;border-color:#fde68a}.level-badge.lv-fair{color:#1e40af;background:#dbeafe;border-color:#bfdbfe}.level-badge.lv-mastered{color:#166534;background:#dcfce7;border-color:#bbf7d0}.diag{display:flex;flex-direction:column;gap:16px}.diag-head{display:flex;align-items:center;justify-content:space-between}.diag-head .back-btn{margin-bottom:0}.diag-progress{font-size:13px;color:var(--text-muted);font-weight:600}.diag-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px}.diag-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.diag-tags span{font-size:11px;border-radius:999px;padding:2px 9px;border:1px solid var(--border);color:var(--text-muted);background:var(--surface-2)}.diag-tags .pre-tag{color:var(--accent);background:var(--accent-weak);border-color:var(--accent-weak);font-weight:600}.diag-stem{font-size:16px;line-height:1.7;margin:0 0 18px}.diag-stem .markdown>*:first-child{margin-top:0}.diag-stem .markdown>*:last-child{margin-bottom:0}.ox-row{display:flex;gap:12px}.ox-btn{flex:1;background:#fff;color:var(--text);border:1px solid var(--border);font-size:20px;font-weight:700;padding:16px}.ox-btn.sel{border-color:var(--accent);background:var(--accent-weak);color:var(--accent)}.mc-list{display:flex;flex-direction:column;gap:10px}.mc-opt{display:flex;align-items:center;gap:12px;text-align:left;background:#fff;color:var(--text);border:1px solid var(--border);padding:13px 15px;font-size:14px}.mc-opt.sel{border-color:var(--accent);background:var(--accent-weak)}.mc-label{flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:6px;background:var(--surface-2);font-weight:700;font-size:12px;color:var(--accent)}.mc-opt.sel .mc-label{background:var(--accent);color:#fff}.short-input{max-width:420px}.cb-inputs{display:flex;flex-direction:column;gap:8px}.cb-hint{font-size:12px;color:var(--text-muted);margin-bottom:2px}.cb-row{display:flex;align-items:center;gap:8px}.cb-num{flex:none;width:34px;font-weight:700;color:var(--accent);font-size:13px}.cb-input{flex:1;max-width:420px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:14px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text)}.cb-bonus{margin-left:auto;font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-weak);border-radius:6px;padding:2px 7px}.diag-nav{display:flex;justify-content:space-between;gap:10px}.diag-nav button{min-width:96px}.diag-hint{font-size:12px;color:var(--text-muted);margin:-6px 0 0;text-align:right}.diag-result-head{margin-bottom:4px}.diag-result-head h2{font-size:20px;margin:12px 0 8px}.result-score{display:flex;align-items:center;gap:12px}.result-score .level-badge{font-size:13px;padding:4px 14px}.score-num{font-size:14px;color:var(--text-muted)}.per-concept,.review-list{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.per-concept h3,.review-list h3{font-size:15px;margin:0 0 12px}.per-concept ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.per-concept li{display:flex;align-items:center;gap:10px;font-size:14px}.per-concept .ok{color:#166534;font-weight:700}.per-concept .no{color:var(--danger);font-weight:700}.per-concept .partial{color:#92400e;font-weight:700}.pc-name{flex:1}.pc-count{color:var(--text-muted);font-size:13px}.review-item{border-top:1px solid var(--border);padding:12px 0}.review-item:first-of-type{border-top:none}.review-top{display:flex;gap:8px;font-size:14px;align-items:baseline}.review-mark{font-weight:700}.review-item.ok .review-mark{color:#166534}.review-item.no .review-mark{color:var(--danger)}.review-num{color:var(--text-muted)}.review-stem{flex:1;line-height:1.5}.review-body{margin:8px 0 0 26px;font-size:13px;color:var(--text-muted);display:flex;flex-direction:column;gap:3px}.review-body b{color:var(--text);font-weight:600}.review-explain{margin-top:4px;padding:8px 10px;background:var(--surface-2);border-radius:8px;line-height:1.6}.rv-fields{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:8px 0}.rv-fields label,.rv-full{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-muted)}.rv-full{margin:8px 0}.rv-check{display:flex;flex-direction:row;align-items:center;gap:6px}.rv-check span{color:var(--text)}.rv-hint{font-size:11px;color:var(--text-muted);margin-left:4px}.rv-saved{align-self:center;margin-right:auto;font-size:12.5px;font-weight:600;color:var(--accent);background:var(--accent-weak);border-radius:999px;padding:4px 10px}.rv-fields select,.rv-full input,.rv-full textarea{font:inherit;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text)}.rv-full input,.rv-full textarea{width:100%}.rv-full textarea{resize:vertical;line-height:1.5}.audit-badge{font-size:12px;padding:2px 9px;border-radius:999px;font-weight:600}.audit-badge.av-wrong{background:#fde8e6;color:var(--danger)}.audit-badge.av-uncertain{background:#fef3c7;color:#92400e}.audit-badge.av-correct{background:var(--accent-weak);color:var(--accent)}.audit-note{margin:6px 0 2px;padding:8px 10px;background:#fff8f0;border:1px solid #fde8c8;border-radius:8px;font-size:13px;display:flex;flex-direction:column;gap:3px}.audit-reason{color:var(--text-muted)}.audit-note-label{font-weight:600}button.mini{font-size:12px;padding:2px 8px;margin-left:8px}.exam-figs{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}.exam-fig{max-width:100%;border:1px solid var(--border);border-radius:8px;background:#fff}.prob-context{margin:6px 0 12px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.prob-context-label{font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.04em;margin-bottom:4px}.prob-context-body{font-size:14px;line-height:1.6}.prob-context-body .markdown>*:first-child{margin-top:0}.prob-context-body .markdown>*:last-child{margin-bottom:0}.prob-context .exam-figs{margin-bottom:0}.rv-section-label{font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.04em;margin:14px 0 4px}.rv-stem-edit{margin:2px 0 14px;padding-left:12px}.rv-stem-edit summary{font-size:12px;color:var(--text-muted);cursor:pointer}.rv-stem-edit[open] summary{margin-bottom:2px;color:var(--accent)}.rv-filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px}.rv-by{display:flex;gap:6px}.rv-by button{font-family:var(--mono);font-size:11.5px;padding:5px 12px;background:var(--surface-sunken);color:var(--text-muted);border:0;border-radius:var(--r-chip)}.rv-by button.on{background:var(--accent);color:var(--accent-lime);font-weight:700}.rv-search{display:flex;gap:6px;align-items:center;flex:1 1 260px;min-width:0}.rv-search input{flex:1;min-width:0;padding:8px 12px;font-size:13px}.rv-applied{margin:8px 0 0;font-size:12.5px;color:var(--text-muted)}.head-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}.builder{display:flex;flex-direction:column;gap:18px;margin-top:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:22px}.builder-grid{display:grid;grid-template-columns:92px 1fr;gap:14px 18px;align-items:start}.builder-label{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.1em;color:var(--text-meta);padding-top:8px}.builder-field{display:flex;flex-direction:column;gap:8px;min-width:0}.builder-hint{font-size:12px;color:var(--text-faint);margin:0}.builder-sec{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:16px;margin-top:8px}.builder-scope{display:flex;flex-wrap:wrap;gap:7px}.builder-scope button{background:var(--surface-sunken);color:var(--text);border:0;padding:7px 16px;border-radius:var(--r-chip);font-size:13px}.builder-scope button.on{background:var(--accent);color:var(--accent-lime);font-weight:700}.chip-grid{display:flex;flex-wrap:wrap;gap:7px}.chip{background:var(--surface-sunken);color:var(--text);border:0;padding:7px 14px;border-radius:var(--r-chip);font-size:12.5px;display:inline-flex;align-items:center;gap:6px}.chip.on{background:var(--accent);color:#fff}.chip-n{font-family:var(--mono);font-size:11px;font-weight:700;background:none;color:var(--text-meta);border-radius:0;padding:0;min-width:0}.chip.on .chip-n{background:none;color:var(--accent-lime)}.builder-foot{display:flex;align-items:center;gap:14px;border-top:1px solid var(--border-soft);padding-top:16px}.builder-match{font-family:var(--mono);font-size:11.5px;color:var(--text-meta)}.builder-match b{color:var(--text)}.builder-foot .btn-primary{margin-left:auto}.builder-count{width:100px;padding:8px 12px}.author-search{display:flex;gap:8px;margin-top:10px}.author-search input{flex:1}.author-list{display:flex;flex-direction:column;gap:8px;margin:16px 0 90px}.author-row{display:flex;gap:10px;padding:12px 14px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:flex-start}.author-row.on{border-color:var(--accent);background:var(--accent-weak)}.author-row input[type=checkbox]{margin-top:3px;width:auto}.author-row-body{flex:1;min-width:0}.author-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.author-tags span{font-size:11px;border-radius:999px;padding:2px 9px;border:1px solid var(--border);color:var(--text-muted);background:var(--surface-2)}.author-stem{font-size:14px;line-height:1.5}.author-context{font-size:12.5px;color:var(--text-muted);margin-bottom:4px}.author-context:before{content:"지문";margin-right:6px;padding:1px 6px;font-size:10.5px;font-weight:600;border-radius:4px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted)}.author-stem,.author-context{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.author-stem{-webkit-line-clamp:3}.author-context{-webkit-line-clamp:2}.author-stem pre,.author-context pre{display:inline;padding:0;margin:0;border:none;background:none;white-space:pre-wrap}.author-stem pre code,.author-context pre code{font-size:12px}.author-stem .katex-display,.author-context .katex-display{display:inline;margin:0}.author-ans{font-size:12px;color:var(--accent);margin-top:4px}.author-ans .markdown-inline{color:var(--accent)}.author-actions{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.author-results{display:flex;flex-direction:column;gap:2px;margin-top:5px}.variant-res{font-size:12px;color:var(--text-muted)}.author-bar{position:sticky;bottom:0;display:flex;gap:12px;align-items:center;padding:12px 16px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 -2px 12px #0000000f}.author-title{flex:1}.author-count{font-size:13px;color:var(--text-muted);white-space:nowrap}.ch-card-btn{width:100%;text-align:left;background:transparent;color:var(--text);border:none;padding:0;display:flex;flex-direction:column;gap:8px}.author-del{margin-top:8px;align-self:flex-start;color:var(--danger)}.qform{display:flex;flex-direction:column;gap:12px}.qform .rv-fields{gap:16px}.qform-preview{padding:10px 12px;background:var(--surface-2);border:1px dashed var(--border);border-radius:8px}.qform-figs-sec{display:flex;flex-direction:column;gap:8px}.qform-upload{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:8px 14px;border:1px dashed var(--border);border-radius:8px;cursor:pointer;font-size:13px;color:var(--accent);background:var(--surface-2)}.qform-upload:hover{border-color:var(--accent)}.qform-upload.busy{opacity:.6;cursor:default}.qform-upload input[type=file]{display:none}.mc-edit{display:flex;flex-direction:column;gap:8px}.mc-edit-row{display:flex;align-items:center;gap:8px}.mc-edit-row input[type=radio]{flex:none;width:16px;height:16px}.mc-edit-label{flex:none;width:22px;height:22px;display:grid;place-items:center;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);font-size:12px;font-weight:700;color:var(--text-muted)}.mc-edit-text{flex:1;font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text)}.mc-edit-del{flex:none;width:30px;padding:6px 0;font-size:15px}.mc-edit-add{align-self:flex-start;font-size:13px}.manual-note{font-size:12px;color:var(--accent);margin-bottom:6px}.manual-input{width:100%;resize:vertical;line-height:1.5;font-family:inherit}.manual-answer{margin:8px 0}.rv-label{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:4px}.rv-label-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.manual-answer-body{padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;white-space:pre-wrap;line-height:1.6;font-size:14px}.grade-list{display:flex;flex-direction:column;gap:10px;margin:8px 0}.grade-row{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.grade-answer{flex:1;min-width:220px}.grade-fields{display:flex;gap:8px;align-items:flex-start}.grade-fields input[type=number]{width:84px}.grade-fields input[type=text]{width:180px}.grade-fields input{font:inherit;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text)}.fig-manage{margin:8px 0;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.fig-manage-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.fig-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.fig-thumb{position:relative;padding:0;background:#fff;border:1px solid var(--border);border-radius:6px;overflow:hidden}.fig-thumb img{display:block;max-height:96px;max-width:220px}.fig-current-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}.fig-current{position:relative;display:inline-block;align-self:flex-start}.fig-current .fig-x{top:4px;right:4px}.fig-x{position:absolute;top:2px;right:2px;padding:0;width:22px;height:22px;border-radius:50%;background:var(--danger);color:#fff;border:none;font-size:12px;line-height:1}.fig-add{cursor:pointer}.fig-add:hover{border-color:var(--accent)}.fig-pool{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border)}.rv-tabs{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.rv-group{padding-top:0}.rv-group-head{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:none;color:var(--text);padding:14px 2px;cursor:pointer}.rv-group-head:hover{opacity:1}.rv-group-head h3{margin:0;font-size:15px;flex:1;text-align:left}.rv-caret{color:var(--text-muted);font-size:12px;width:14px}.rv-tabs button{background:transparent;color:var(--text-muted);border:1px solid var(--border);padding:6px 14px;font-size:13px;border-radius:999px}.rv-tabs button:hover{background:var(--accent-weak);opacity:1}.rv-tabs button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.review-item .detail-actions{gap:8px;margin-top:12px;flex-wrap:wrap}.review-item .detail-actions button{padding:6px 14px;font-size:13px;border-radius:8px}.app{display:flex;flex-direction:row;height:100%}.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100%}.sidebar{width:var(--sidebar-w, 296px);flex-shrink:0;height:100%;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border-soft);padding:16px}.new-chat{width:100%;font-size:14px;font-weight:700;padding:12px;margin-bottom:12px;border-radius:var(--r-input);background:var(--accent);color:var(--accent-lime);border-color:var(--accent)}.session-search{width:100%;margin-bottom:12px;padding:9px 12px;font-size:13px;background:var(--surface-sunken);border:0;border-radius:10px}.session-search:focus{outline:2px solid var(--accent);border-color:transparent}.session-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.session-empty{font-size:13px;color:var(--text-muted);text-align:center;margin-top:20px}.session-group{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--text-faint);padding:8px 4px 4px}.session-item{display:flex;align-items:flex-start;gap:6px;padding:10px 12px;border-radius:10px;cursor:pointer;color:var(--text);font-size:13.5px}.session-item:hover{background:var(--surface-sunken)}.session-item.on{background:var(--surface-tint)}.session-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.session-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.session-item.on .session-title{font-weight:600;color:var(--accent-deep)}.session-time{font-family:var(--mono);font-size:10.5px;color:var(--text-meta)}.session-del{flex-shrink:0;background:transparent;color:var(--text-muted);border:none;padding:0 4px;font-size:16px;line-height:1.4;border-radius:5px;opacity:0;transition:opacity .12s ease}.session-item:hover .session-del{opacity:1}.session-del:hover{color:var(--danger);background:transparent}@media (pointer: coarse){.session-del{opacity:1}}.sidebar-resizer{flex:none;width:6px;margin:0 -3px;z-index:5;cursor:col-resize;background:transparent;transition:background .12s ease}.sidebar-resizer:hover,.sidebar-resizer:focus-visible{background:var(--accent)}.sidebar-resizer:focus-visible{outline:none}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:#fff;border-bottom:1px solid var(--border)}.topbar .brand{font-weight:700;font-size:16px}.topbar .who{font-size:13px;color:var(--text-muted)}.topbar .who button{margin-left:12px;padding:5px 10px;font-size:13px}.chat-scroll{flex:1;overflow-y:auto;padding:20px 0 8px}.chat-inner{max-width:760px;margin:0 auto;padding:0 18px}.empty{text-align:center;color:var(--text-muted);margin-top:12vh;padding:0 24px}.empty h2{color:var(--accent);font-size:26px;margin:0 0 8px}.empty p{margin:0;font-size:14.5px}.q-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:660px;margin:22px auto 0}.q-card{display:flex;flex-direction:column;gap:6px;text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-input);padding:14px 16px}.q-card:hover{border-color:var(--accent);opacity:1}.q-card-src{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--text-meta)}.q-card-q{font-size:14px;line-height:1.45}@media (max-width: 560px){.q-cards{grid-template-columns:1fr}}@media (max-width: 560px){.builder-grid{grid-template-columns:1fr;gap:6px 0}.builder-label{padding-top:12px}.builder{padding:16px}.builder-foot{flex-wrap:wrap}.builder-foot .btn-primary{width:100%;margin-left:0}.msg-head{flex-wrap:wrap;gap:8px}.answer-steps{margin-left:0}.step-label{min-width:0}.answer-foot{flex-wrap:wrap}}.suggests{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:20px}.suggests button{background:var(--surface);color:var(--text);border:1px solid var(--border);font-size:13px}.msg-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}.msg-head .msg-role{margin-bottom:0}.answer-steps{margin-left:auto;display:flex;align-items:center;gap:8px}.steps{display:flex;gap:3px}.steps>i{display:block;width:26px;height:4px;border-radius:2px;background:var(--surface-tint);overflow:hidden}.steps>i>i{display:block;width:100%;height:100%;background:var(--accent);transform:translate(-100%);transition:transform .45s cubic-bezier(.4,0,.2,1)}.steps[data-step="1"]>i:nth-child(1)>i,.steps[data-step="2"]>i:nth-child(-n+2)>i,.steps[data-step="3"]>i>i{transform:translate(0)}.steps[data-step="1"]>i:nth-child(1)>i,.steps[data-step="2"]>i:nth-child(2)>i,.steps[data-step="3"]>i:nth-child(3)>i{animation:at-sweep 1.4s cubic-bezier(.4,0,.6,1) infinite}@keyframes at-sweep{0%{transform:translate(-100%)}to{transform:translate(320%)}}.step-label{font-family:var(--mono);font-size:11px;color:var(--text-muted);min-width:86px}.steps[data-step="3"]~.step-label{color:var(--text)}.step-slow{font-size:11px;color:var(--warn-text)}.bubble.streaming .markdown>:last-child:after{content:"";display:inline-block;width:2px;height:1em;background:var(--accent);vertical-align:-2px;margin-left:3px;animation:at-caret 1.1s steps(1) infinite}@keyframes at-caret{0%,45%{opacity:1}55%,to{opacity:0}}@media (prefers-reduced-motion: reduce){.steps>i>i{animation:none}.bubble.streaming .markdown>:last-child:after{animation:none}}.followups{margin:4px 0 8px}.followups-label{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.1em;color:var(--text-meta);margin-bottom:8px}.followups .suggests button{background:var(--surface);border-color:var(--border)}.followups .suggests{justify-content:flex-start;margin-top:0}.followups .suggests button{cursor:pointer}.followups .suggests button:hover{border-color:var(--accent);color:var(--accent)}.msg-row{margin-bottom:22px}.msg-role{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-muted);margin-bottom:6px}.msg-avatar{flex:none;width:20px;height:20px;border:1px solid;display:grid;place-items:center;font-size:11px;font-weight:700;line-height:1}.msg-role.me .msg-avatar{border-radius:999px;background:var(--accent-weak);border-color:var(--accent);color:var(--accent)}.msg-role.bot .msg-avatar{border-radius:5px;background:var(--accent);border-color:var(--accent);color:#fff}.msg-role.bot .msg-who{color:var(--accent);font-weight:600}.bubble{border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;background:#fff;white-space:pre-wrap;word-break:break-word}.msg-row.user .bubble{background:var(--accent-weak);border-color:var(--accent-weak)}.bubble code{font-family:var(--mono);font-size:.9em;background:var(--surface-2);padding:1px 5px;border-radius:5px}.bubble pre{font-family:var(--mono);font-size:13px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px;overflow-x:auto;white-space:pre}.bubble pre code{background:none;padding:0;font-size:inherit}.markdown{white-space:normal}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0 0 10px}.markdown ul,.markdown ol{margin:0 0 10px;padding-left:22px}.markdown li{margin:2px 0}.markdown h1,.markdown h2,.markdown h3,.markdown h4{font-size:15px;font-weight:700;margin:16px 0 8px;line-height:1.4}.markdown strong{font-weight:700}.markdown blockquote{margin:0 0 10px;padding:2px 0 2px 16px;color:var(--text-muted);font-style:italic}.markdown table{border-collapse:collapse;margin:0 0 10px;display:block;overflow-x:auto}.markdown th,.markdown td{border:1px solid var(--border);padding:5px 10px;text-align:left}.markdown th{background:var(--surface-2)}.markdown .katex-display{margin:12px 0;overflow-x:auto;overflow-y:hidden}.cites{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.src{position:relative;font-family:var(--mono);font-size:11px;color:var(--accent);background:var(--surface-tint);border:1px solid transparent;border-radius:var(--r-chip);padding:5px 11px;cursor:default}.src .adv{color:var(--danger)}.src.external{color:var(--text-faint);background:none;border:1px dashed var(--border);border-style:dashed}.src.external .src-pop-head{color:var(--text-muted)}.pageref{position:relative;cursor:help;font-family:var(--mono);font-size:10.5px;font-weight:700;background:var(--accent-lime);color:var(--on-lime);border-radius:5px;padding:2px 6px;margin-left:3px;text-decoration:none;white-space:nowrap}.src-pop{display:block;position:absolute;bottom:calc(100% + 8px);left:0;z-index:40;width:max-content;max-width:min(440px,82vw);background:#fff;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 28px #0f172a29;padding:11px 13px;text-align:left;white-space:normal;font-weight:400}.src-pop:after{content:"";position:absolute;top:100%;left:0;right:0;height:10px}.src-pop-head{display:block;font-size:11px;font-weight:700;color:var(--accent);margin-bottom:6px;letter-spacing:.01em}.cite.jeffe .src-pop-head{color:var(--text-muted)}.src-pop-body{display:block;max-height:280px;overflow-y:auto}.src-pop-body .markdown{font-size:12.5px;line-height:1.6;color:var(--text)}.codewrap{margin:0 0 12px}.code-head{display:flex;align-items:center;gap:10px;background:var(--accent);border-radius:12px 12px 0 0;padding:8px 14px 0}.code-lang{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;color:var(--accent-on)}.markdown pre{background:var(--accent);border:0;border-radius:0 0 12px 12px;padding:10px 16px 14px;margin:0;overflow-x:auto}.markdown pre code{font-family:var(--mono);font-size:12.5px;line-height:1.75;background:none;padding:0;white-space:pre;display:block;color:#e6f2ec}.src-pop-body .markdown pre{font-size:11.5px;border-radius:12px;padding:10px 12px}.markdown pre code .hljs-keyword,.markdown pre code .hljs-built_in{color:var(--accent-lime);font-weight:600}.markdown pre code .hljs-string{color:#9fd8bd}.markdown pre code .hljs-number{color:#f0c987}.markdown pre code .hljs-comment{color:#8fada2;font-style:italic}.markdown pre code .hljs-title,.markdown pre code .hljs-title.function_{color:#bfe3ff}.markdown pre code .hljs-params{color:inherit}.markdown pre code .hljs-literal{color:#f0c987}.markdown pre code .hljs-operator{color:inherit}.waitbar{margin:4px 0 12px;max-width:420px}.waitbar-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.waitbar-label{font-size:13px;color:var(--text)}.waitbar-time{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.waitbar-track{height:5px;margin-top:6px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden}.waitbar-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .2s linear}.waitbar-fill.late{background:var(--warn-text)}.waitbar-sub{margin-top:5px;font-size:11.5px;color:var(--text-muted)}@media (prefers-reduced-motion: reduce){.waitbar-fill{transition:none}}.copy{display:inline-flex;align-items:center;gap:5px;flex:none;font-family:var(--mono);font-size:10.5px;line-height:1;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:5px 9px;cursor:pointer}.copy:hover{background:var(--surface-tint);color:var(--accent);opacity:1}.copy svg{width:11px;height:11px;flex:none}.copy.pill{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-chip);padding:5px 12px}.fb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 2px}.fb-ask{font-size:12.5px;color:var(--text-muted)}.fb-btns{display:flex;gap:6px}.fb-btn{font-size:12.5px;padding:5px 12px;border-radius:var(--r-chip);background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}.fb-btn:hover{border-color:var(--accent);color:var(--accent);opacity:1}.fb-btn.on{background:var(--surface-tint);border-color:var(--accent);color:var(--accent);font-weight:600}.fb-btn.no{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad-ink);font-weight:600}.fb-thanks{font-size:12.5px;color:var(--ok-text)}.fb-more{flex-basis:100%;display:flex;flex-direction:column;gap:8px;margin-top:2px}.fb-reasons{display:flex;flex-wrap:wrap;gap:6px}.fb-reasons .chip{background:var(--surface);border:1px solid var(--border);font-size:12.5px}.fb-reasons .chip.on{background:var(--surface-tint);border-color:var(--accent);color:var(--accent);font-weight:600}.fb-share{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text-muted);cursor:pointer}.fb-share input{width:15px;height:15px;accent-color:var(--accent);flex-shrink:0}@media (pointer: coarse){.fb-btn,.fb-reasons .chip{min-height:44px}}.copy.on-dark{margin-left:auto;background:none;border-color:var(--accent-soft);color:var(--accent-lime)}.copy.on-dark:hover{background:#0f4a38;color:var(--accent-lime)}.copy.ok{color:var(--accent);border-color:var(--accent)}.copy.on-dark.ok{color:var(--accent-lime);border-color:var(--accent-lime)}.copy.fail{color:var(--danger);border-color:var(--danger)}.copy.on-dark.fail{color:#ffb4a8;border-color:#ffb4a8}.answer-foot{display:flex;align-items:flex-start;gap:10px;margin-top:10px}.answer-foot .cites{margin-top:0;flex:1;min-width:0}.cursor{display:inline-block;width:7px;height:15px;background:var(--accent);vertical-align:text-bottom;animation:blink 1s step-start infinite}@keyframes blink{50%{opacity:0}}.composer{border-top:1px solid var(--border-soft);background:var(--surface);padding:12px 18px}.composer-inner{max-width:760px;margin:0 auto;display:flex;gap:10px;align-items:flex-end}.composer textarea{flex:1;font:inherit;font-size:14.5px;resize:none;max-height:160px;padding:12px 14px;border:0;border-radius:var(--r-input);background:var(--surface-sunken);color:var(--text)}.composer textarea:focus{outline:2px solid var(--accent)}.composer .send{background:var(--accent-lime);color:var(--on-lime);border:0;border-radius:var(--r-input);padding:12px 22px;font-size:14px;font-weight:700}.composer .send:disabled{background:var(--surface-sunken);color:var(--text-faint);opacity:1}.composer-hint{max-width:760px;margin:8px auto 0;font-family:var(--mono);font-size:10.5px;color:var(--text-faint)}.scope{display:flex;gap:6px;max-width:760px;margin:0 auto 10px}.scope button{font-family:var(--mono);font-size:11.5px;padding:5px 12px;background:var(--surface-sunken);color:var(--text-muted);border:0;border-radius:var(--r-chip)}.scope button.on{background:var(--accent);color:var(--accent-lime);font-weight:700}@media (max-width: 720px){.sidebar{width:168px}}@media (max-width: 520px){.auth-card{padding:26px 20px}.chat-inner,.composer-inner,.scope{padding-left:14px;padding-right:14px}.sidebar{width:132px;padding:10px 6px}.new-chat{font-size:13px;padding:8px}}.tutor{display:flex;flex-direction:column;gap:14px}.tutor-head{display:flex;align-items:center;gap:12px}.tutor-head .back-btn{margin-bottom:0}.tutor-title{flex:1;display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px}.tutor-head .ghost{font-size:13px;padding:6px 12px}.tutor-scroll{display:flex;flex-direction:column}.tutor-intro{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin-bottom:18px}.tutor-intro p{margin:0;font-size:14px}.tutor-intro-sub{margin-top:8px!important;font-size:13px!important;color:var(--text-muted);display:flex;align-items:center;gap:6px}.q-cards{display:flex;flex-direction:column;gap:10px;margin:6px 0 4px}.q-cards-label{font-size:12px;color:var(--text-muted);font-weight:600;margin-bottom:2px}.q-cards-label.busy{margin-top:8px}.q-card{display:flex;align-items:flex-start;gap:10px;text-align:left;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:13px 15px;font-size:14px;line-height:1.5}.q-card:hover{border-color:var(--accent);background:var(--accent-weak);opacity:1}.q-text{flex:1}.q-type{flex:none;font-size:11px;font-weight:600;border-radius:999px;padding:2px 9px;border:1px solid transparent;white-space:nowrap;margin-top:1px}.q-type.t-concept{color:#1e40af;background:#dbeafe;border-color:#bfdbfe}.q-type.t-trace{color:#92400e;background:#fef3c7;border-color:#fde68a}.q-type.t-complex{color:#6b21a8;background:#f3e8ff;border-color:#e9d5ff}.q-type.t-impl{color:#166534;background:#dcfce7;border-color:#bbf7d0}.q-type.t-apply{color:#9f1239;background:#ffe4e6;border-color:#fecdd3}.quiz-card{background:#fff;border:1px solid var(--accent);border-radius:var(--radius);padding:16px 18px;margin:8px 0;box-shadow:0 1px 3px #1e3a8a0f}.quiz-badge{display:inline-block;font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-weak);border-radius:999px;padding:3px 10px;margin-bottom:10px}.quiz-tags{margin-bottom:6px}.quiz-stem{margin:0 0 14px;font-size:15px;line-height:1.55;font-weight:500}.quiz-actions{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px}.quiz-actions button{padding:8px 14px;font-size:13.5px}.quiz-feedback{border:1px solid var(--border);border-radius:var(--radius);padding:13px 16px;margin:8px 0;background:var(--surface-2)}.quiz-feedback.ok{background:var(--ok-bg);border-color:var(--ok-line)}.quiz-feedback.no{background:var(--bad-bg);border-color:var(--bad-line)}.quiz-fb-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.quiz-fb-mark{font-size:13px;font-weight:700}.quiz-feedback.ok .quiz-fb-mark{color:var(--ok-text)}.quiz-feedback.no .quiz-fb-mark{color:var(--danger)}.quiz-fb-stem{margin:0 0 8px;font-size:14px;line-height:1.5}.quiz-fb-answer{font-size:14px;margin-bottom:6px}.quiz-fb-explain{font-size:13px;color:var(--text-muted);line-height:1.55}.markdown-inline>*{display:inline}.markdown-inline p{margin:0;display:inline}.markdown-inline code{font-family:var(--mono);font-size:.88em;background:var(--surface-2);padding:1px 5px;border-radius:5px}.markdown-inline pre{display:block;margin:8px 0;padding:10px 12px;overflow-x:auto;background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.markdown-inline pre code{display:block;background:none;padding:0;font-size:13px;line-height:1.55;white-space:pre}.markdown-inline .katex{font-size:1em}.tutor-foot{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border);padding-top:14px;margin-top:4px}.tutor-composer{display:flex;gap:8px}.tutor-composer input{flex:1;border:1px solid var(--border);border-radius:var(--radius);padding:10px 13px;font-size:14px;background:#fff;color:var(--text)}.tutor-composer input:focus{outline:none;border-color:var(--accent)}.tutor-composer input:disabled{background:var(--surface-2);color:var(--text-muted)}.tutor-composer button{flex:none;padding:10px 18px;font-size:14px}.tutor-foot-actions{display:flex;gap:8px;justify-content:flex-end}.tutor-foot-actions .ghost{font-size:13px;padding:6px 12px}.tutor-head-actions{display:flex;gap:8px}.ch-done{color:var(--ok-text);font-weight:700;margin-left:5px}.ch-num.done .ch-done{color:#fff}.done-pill{font-size:11px;font-weight:600;color:#166534;background:#dcfce7;border:1px solid #bbf7d0;border-radius:999px;padding:2px 9px}.ghost.sm{font-size:12px;padding:4px 10px}.celebrate-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;background:#0c201685;animation:cel-veil .28s ease-out both}.celebrate-veil.leaving{animation:cel-veil .18s ease-in reverse both}@keyframes cel-veil{0%{opacity:0}to{opacity:1}}.celebrate-card{width:min(380px,100%);text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;background:#fff;border-radius:var(--radius);padding:26px 24px 22px;box-shadow:0 18px 50px #00000047;animation:cel-pop .42s cubic-bezier(.2,.9,.3,1.2) both}@keyframes cel-pop{0%{opacity:0;transform:translateY(10px) scale(.94)}to{opacity:1;transform:none}}.celebrate-art{width:96px;height:96px}.celebrate-art svg{width:100%;height:100%;overflow:visible;display:block}.cel-tree .p-leaf{fill:var(--ok)}.cel-tree .p-trunk{fill:var(--warn-text)}.cel-tree{transform-origin:12px 22px;animation:cel-grow .55s cubic-bezier(.2,.9,.3,1.3) both}@keyframes cel-grow{0%{opacity:0;transform:scaleY(.4)}60%{opacity:1;transform:scaleY(1.08)}to{opacity:1;transform:none}}.cel-ring{fill:none;stroke:var(--tree-light);stroke-width:1.4;transform-origin:12px 11px;animation:cel-ring 1s ease-out both}.cel-ring.d2{animation-delay:.22s}@keyframes cel-ring{0%{opacity:.55;transform:scale(.35)}to{opacity:0;transform:scale(1.5)}}.cel-spark{fill:var(--tree-light);opacity:0;animation:cel-spark .85s ease-out both;animation-delay:var(--sd)}@keyframes cel-spark{0%{opacity:0;transform:translate(0) scale(.4)}35%{opacity:.95}to{opacity:0;transform:translate(var(--sx),var(--sy)) scale(.7)}}.celebrate-title{margin:2px 0 0;font-size:20px;color:var(--accent)}.celebrate-sub{margin:0;display:flex;flex-direction:column;gap:3px;font-size:13.5px;color:var(--text-muted)}.celebrate-chapter{font-weight:700;color:var(--text)}.celebrate-card button{margin-top:6px}@media (prefers-reduced-motion: reduce){.celebrate-veil,.celebrate-card,.cel-tree{animation:none}.cel-ring{animation:none;opacity:.22;transform:scale(1.1)}.cel-spark{animation:none;opacity:0}}.qx-intro{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;display:flex;flex-direction:column;gap:12px}.qx-intro h2{margin:0;font-size:20px}.qx-sub,.qx-hint{margin:0;font-size:13.5px;color:var(--text-muted)}.qx-stats{display:flex;flex-wrap:wrap;gap:10px}.qx-stat{flex:1 1 0;min-width:74px;display:flex;flex-direction:column;gap:2px;align-items:center;padding:10px 8px;border:1px solid var(--border);border-radius:var(--r-badge);background:var(--surface-2)}.qx-stat b{font-family:var(--mono);font-size:19px;line-height:1}.qx-stat span{font-size:11.5px;color:var(--text-meta)}.qx-stat.ok b{color:var(--ok)}.qx-stat.bad b{color:var(--warn-text)}.qx-stat.total{background:transparent}.diag-delta{margin-left:8px;font-family:var(--mono);font-size:12px;font-weight:700}.diag-delta.up{color:var(--ok)}.diag-delta.down{color:var(--warn-text)}.wrapup{display:flex;flex-direction:column;gap:16px}.wrapup-head h1{margin:6px 0 8px}.wrapup-status{display:flex;align-items:center;gap:8px}.wrapup-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.wrapup-card h2{font-size:16px;margin:0 0 10px}.wrapup-card h3{font-size:14px;margin:16px 0 8px}.wrapup-good{font-size:14px;color:#166534;margin:0}.weak-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.weak-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;background:var(--bad-bg);border:1px solid var(--bad-line);border-radius:var(--radius);color:var(--bad-ink)}.weak-name{font-weight:600;font-size:14px}.weak-count{font-size:12px;color:var(--text-muted);white-space:nowrap}.rec-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.rec-item{display:flex;align-items:center;justify-content:space-between;gap:12px}.rec-text{font-size:14px;line-height:1.5}.wrapup-meta{font-size:12px;color:var(--text-muted);margin:12px 0 0}.wrapup-actions{margin-top:4px}.wrapup-saved{font-size:13px;color:#166534;margin:0}.dash-empty{padding:20px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;color:var(--text-muted);font-size:14px;line-height:1.6}.dash-sec{margin-top:22px}.dash-sec h2{font-size:15px;margin:0 0 10px;display:flex;align-items:baseline;gap:8px}.dash-hint{font-size:12px;font-weight:400;color:var(--text-muted)}.dash-attempts{display:flex;flex-direction:column;gap:10px}.dash-attempt{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1px solid var(--border);border-radius:10px;flex-wrap:wrap}.dash-att-main{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-att-label{font-size:14px;font-weight:600}.dash-att-date{font-size:12px;color:var(--text-muted)}.dash-att-score{display:flex;align-items:center;gap:8px;font-size:14px;flex-wrap:wrap}.dash-att-score b{font-size:18px;color:var(--accent)}.dash-att-sub{font-size:12px;color:var(--text-muted)}.dash-badge{font-size:11px;font-weight:700;border-radius:6px;padding:3px 8px}.dash-badge.wait{background:#fef3c7;color:#92400e}.dash-badge.done{background:#dcfce7;color:#166534}.dash-weak{display:flex;flex-direction:column;gap:8px}.dash-weak-row{display:flex;align-items:center;gap:12px}.dash-weak-name{flex:none;width:130px;font-size:13px;font-weight:600}.dash-bar{flex:1;height:10px;background:var(--surface-2);border-radius:6px;overflow:hidden}.dash-bar-fill{height:100%;background:var(--accent);border-radius:6px}.dash-weak-pct{flex:none;width:96px;text-align:right;font-size:13px;font-weight:600}.dash-readiness{display:flex;flex-wrap:wrap;gap:8px}.dash-rd{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;font-size:13px;border:1px solid var(--border);background:#fff}.dash-rd b{font-size:12px}.dash-rd.lv-good{border-color:var(--ok);background:#f0fdf4}.dash-rd.lv-good b{color:#166534}.dash-rd.lv-mid{border-color:var(--warn);background:#fffbeb}.dash-rd.lv-mid b{color:#92400e}.dash-rd.lv-low{border-color:var(--bad);background:#fef2f2}.dash-rd.lv-low b{color:#991b1b}.dash-toggle{display:inline-flex;gap:4px;margin-bottom:18px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px}.dash-toggle button{background:transparent;color:var(--text-muted);border:none;padding:6px 16px;font-size:13px;border-radius:999px}.dash-toggle button.on{background:var(--accent);color:#fff}.dash-hardlist{display:flex;flex-direction:column;gap:8px}.dash-hard{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#fff;border:1px solid var(--border);border-radius:10px}.dash-hard-pct{flex:none;width:52px;font-size:16px;font-weight:700;color:var(--danger)}.dash-hard-body{min-width:0;display:flex;flex-direction:column;gap:2px}.dash-hard-stem{font-size:13px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dash-roster{display:flex;flex-direction:column;gap:8px}.dash-rost-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1px solid var(--border);border-radius:10px;flex-wrap:wrap}.dash-rost-who{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dash-rost-name{font-size:14px;font-weight:600}.dash-role-tag{font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-weak);border-radius:6px;padding:2px 7px}.dash-rost-stat{display:flex;align-items:center;gap:14px;font-size:13px;flex-wrap:wrap}.ch-stats{display:flex;gap:8px;border-top:1px solid var(--border-soft);padding-top:12px}.stat{flex:1;min-width:0;border-radius:10px;padding:9px 11px;display:flex;flex-direction:column;gap:3px}.stat-k{font-family:var(--mono);font-size:10px;letter-spacing:.06em}.stat-v{font-family:var(--font-display);font-weight:700;font-size:18px;line-height:1;font-variant-numeric:tabular-nums}.stat.full{background:var(--accent)}.stat.full .stat-k{color:var(--accent-on)}.stat.full .stat-v{color:#fff}.stat.part{background:var(--surface-tint)}.stat.part .stat-k{color:var(--text-meta)}.stat.part .stat-v{color:var(--accent)}.stat.none{background:var(--surface-sunken)}.stat.none .stat-k,.stat.none .stat-v{color:var(--text-meta)}.board-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 14px}.board-tabs{display:inline-flex;gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px}.board-tabs button{background:transparent;color:var(--text-muted);border:none;padding:6px 16px;font-size:13px;border-radius:999px}.board-tabs button.on{background:var(--accent);color:#fff}.board-list{display:flex;flex-direction:column;gap:8px}.board-row{text-align:left;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:13px 15px}.board-row:hover{border-color:var(--accent);opacity:1}.board-row-title{font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.board-pin{font-size:13px}.board-row-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--text-muted);margin-top:6px}.board-tag{background:var(--accent-weak);color:var(--accent);border-radius:6px;padding:1px 8px;font-weight:600}.board-badge{font-size:11px;font-weight:700;border-radius:6px;padding:2px 7px}.board-badge.ok{background:#dcfce7;color:#166534}.board-badge.ans{background:#dbeafe;color:#1e40af}.board-badge.wait{background:#fef3c7;color:#92400e}.board-post{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px 22px}.board-post-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.board-post-head h1{font-size:20px;margin:0}.board-body{font-size:14px;line-height:1.7;margin-top:12px}.board-body .markdown>*:first-child{margin-top:0}.board-post-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.ghost.sm.danger{color:var(--danger)}.board-comments{margin-top:24px}.board-comments h3{font-size:15px;margin:0 0 12px}.board-comment{border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:10px;background:#fff}.board-comment.staff{background:var(--accent-weak);border-color:var(--accent)}.board-comment-head{display:flex;align-items:center;gap:8px}.board-comment-who{font-weight:600;font-size:13px;display:flex;align-items:center;gap:6px}.board-cdel{margin-left:auto;background:transparent;color:var(--text-muted);border:none;font-size:12px;padding:2px 6px}.board-add-comment{display:flex;flex-direction:column;gap:8px;margin-top:12px}.board-add-comment textarea{width:100%;resize:vertical;font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:8px;line-height:1.5}.board-add-comment button{align-self:flex-end}.dash-next{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 20px;padding:16px 18px;border-radius:12px;background:var(--accent-weak);border:1px solid var(--accent)}.dash-next-body{flex:1 1 260px;min-width:0}.dash-next-label{display:inline-block;margin-bottom:4px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--accent)}.dash-next-text{margin:0;font-size:15px;line-height:1.5}.dash-next-cta{flex:0 0 auto;padding:10px 18px;border-radius:8px;font-weight:600;white-space:nowrap}@media (max-width: 480px){.dash-next{flex-direction:column;align-items:stretch}.dash-next-cta{width:100%}}.streak{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 10px;font-size:13px;color:var(--text-muted)}.streak.on .streak-text{color:var(--accent);font-weight:600}.streak-best{font-size:12px;color:var(--text-muted)}.ex-card{gap:10px}.ex-title-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.ex-title-row .ch-title{font-size:17px}.ex-state{font-family:var(--mono);font-size:10.5px;font-weight:700;border-radius:var(--r-chip);padding:3px 9px}.ex-state.open{background:var(--accent-lime);color:var(--on-lime)}.ex-state.soon{background:var(--surface-tint);color:var(--accent)}.ex-state.closed{background:var(--surface-sunken);color:var(--text-faint)}.ex-meta{display:flex;flex-wrap:wrap;gap:14px;font-family:var(--mono);font-size:11.5px;color:var(--text-meta)}.ex-window{font-size:11.5px;font-weight:600}.ex-window.open{color:var(--text)}.ex-window.upcoming{color:var(--accent)}.ex-window.closed{color:var(--danger)}.ch-card.ex-locked{opacity:.72}.ch-card.ex-locked .ch-card-btn{cursor:not-allowed}.author-opts{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0 0}.author-opts label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--text-muted)}.author-opts input{font:inherit;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);width:auto}.opt-hint{font-size:11px;color:var(--text-muted);font-weight:400}.ex-admin{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.ex-admin .author-del{margin-top:0;color:var(--danger);border-color:var(--border)}.ex-admin .author-del:hover{color:var(--danger);border-color:var(--danger)}.ex-edit{border-top:1px dashed var(--border);margin-top:8px;padding-top:10px}.ex-edit .author-opts{gap:10px;margin:0}.ex-edit .author-opts input{padding:5px 8px;font-size:12.5px}.ex-edit-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.ex-edit-msg{margin-top:8px;font-size:12px;color:var(--accent);line-height:1.5}.ex-edit-msg.err{color:var(--danger)}button.mini{padding:5px 10px;font-size:12.5px}.q-edit{margin-top:10px;padding:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;cursor:default}.q-edit .rv-full,.q-edit .rv-fields{margin:0 0 10px}.q-edit textarea{font:inherit;width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);resize:vertical;line-height:1.5}.user-counts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.user-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;background:#fff;border:1px solid var(--border);border-radius:var(--radius)}.user-info{flex:1;min-width:200px}.user-name{font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px}.user-meta{font-size:12px;color:var(--text-muted);margin-top:2px}.user-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.role-tag{font-size:11px;font-weight:600;border-radius:999px;padding:1px 9px;border:1px solid transparent}.rt-admin{color:#5b21b6;background:#ede9fe;border-color:#ddd6fe}.rt-professor{color:#1e40af;background:#dbeafe;border-color:#bfdbfe}.rt-ta{color:#166534;background:#dcfce7;border-color:#bbf7d0}.rt-student{color:var(--text-muted);background:var(--surface-2);border-color:var(--border)}@media (pointer: coarse){.ghost.sm,button.mini,.chip,.mc-edit-del,.session-del,.copy,.scope button,.builder-scope button,.board-tabs button,.rv-tabs button{min-height:44px;padding-top:8px;padding-bottom:8px}.mc-edit-del,.session-del{min-width:44px}.appnav .tabs button{min-height:44px}.author-actions,.ex-edit-actions,.user-actions{gap:10px}}@media (max-width: 760px){.appnav{gap:14px;padding:0 14px}.appnav .brand{font-size:16px}.appnav .who{font-size:12px}.appnav .who-name{display:none}.appnav .tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:1px solid var(--border);gap:0;padding:4px 2px;padding-bottom:calc(4px + env(safe-area-inset-bottom,0px))}.appnav .tabs button{flex:1;min-width:0;border-radius:8px;font-size:12.5px;padding:8px 2px;min-height:46px;color:var(--text-muted)}.appnav .tabs button:hover{background:var(--surface-tint);color:var(--accent)}.appnav .tabs button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.appnav .tabs button.on:hover{background:var(--accent);color:#fff}.view{padding-bottom:calc(54px + env(safe-area-inset-bottom,0px))}}@media (max-width: 360px){.appnav .tabs button{font-size:11px;padding-left:0;padding-right:0}}.sidebar-toggle{display:none}@media (max-width: 1024px){.app{position:relative}.sidebar-toggle{display:block;position:absolute;top:8px;right:12px;z-index:25;font-size:12.5px;padding:8px 12px;min-height:40px;background:#fff;color:var(--accent);border:1px solid var(--border)}.sidebar-resizer{display:none}.sidebar{position:fixed;top:0;bottom:0;right:0;left:auto;z-index:45;width:min(78vw,280px);padding:14px 10px;transform:translate(100%);transition:transform .22s ease-out;box-shadow:0 0 24px #0000001f}.app.nav-open .sidebar{transform:translate(0)}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:44;background:#00000052}.chat-scroll{padding-top:52px}}@media (prefers-reduced-motion: reduce){.sidebar{transition:none}}@media (max-width: 420px){.ch-stats{gap:6px}.stat{padding:8px}.stat-v{font-size:16px}.author-opts{flex-direction:column;gap:10px}.author-opts label,.author-opts input{width:100%}.user-row{flex-direction:column;align-items:stretch;gap:10px}.user-actions{justify-content:flex-start}.waitbar{max-width:100%}}button:focus-visible,.session-item:focus-visible,.author-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (min-width: 761px) and (min-height: 540px){.shell{flex-direction:row}.appnav{flex-direction:column;align-items:stretch;gap:0;width:var(--rail-w);height:100%;padding:18px 12px 14px}.appnav .brand{padding:0 8px 16px}.appnav .tabs{flex-direction:column;gap:2px;flex:1;min-height:0;overflow-y:auto}.appnav .tabs button{width:100%;text-align:left;border-radius:var(--r-input);padding:9px 12px;font-size:14px}.appnav .who{margin-left:0;margin-top:auto;flex-shrink:0;flex-direction:column;align-items:stretch;gap:8px;padding-top:14px;border-top:1px solid var(--accent-soft)}.appnav .who-name{display:flex;flex-direction:column;gap:1px;padding:0 4px;min-width:0}.appnav .who-name b{font-weight:600;color:#e6f2ec;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appnav .who-name em{font-family:var(--mono);font-style:normal;font-size:11px;color:var(--accent-on)}.appnav .who-name em:before{content:none}.appnav .who button{width:100%}.appnav button:focus-visible{outline-color:var(--accent-lime)}.view{min-width:0}}.author-pick{display:block;cursor:pointer}.login-art{margin:0 0 22px}.art{display:block;width:100%;height:auto}.art-video{aspect-ratio:16 / 9;object-fit:cover;border-radius:8px}.login-art-cap{margin:8px 0 0;font-size:11.5px;color:var(--text-muted);text-align:center}.art-base{stroke:var(--art-2);stroke-width:1}.art-bar{animation:art2-sort 10s cubic-bezier(.4,0,.2,1) -.5s infinite both}.art-bar.t-lo{fill:var(--art-2)}.art-bar.t-mid{fill:var(--art-3)}.art-bar.t-hi{fill:var(--art-4)}@keyframes art2-sort{0%,8%{transform:translate(0)}12%,20%{transform:translate(var(--s1))}24%,32%{transform:translate(var(--s2))}36%,44%{transform:translate(var(--s3))}48%,56%{transform:translate(var(--s4))}60%,68%{transform:translate(var(--s5))}72%,80%{transform:translate(var(--s6))}84%,to{transform:translate(var(--s7))}}.art-cursor{fill:none;stroke:var(--art-hi);stroke-width:1.6;opacity:0;animation:art2-beat 10s linear infinite both}@keyframes art2-beat{0%,11.4%{opacity:1}11.5%,to{opacity:0}}.art-done{fill:var(--art-4);transform-box:fill-box;transform-origin:left center;animation:art2-grow 10s cubic-bezier(.4,0,.2,1) -.5s infinite both}.art-done-track{fill:var(--art-1);opacity:.6}@keyframes art2-grow{0%,8%{transform:scaleX(.125)}12%,20%{transform:scaleX(.25)}24%,32%{transform:scaleX(.375)}36%,44%{transform:scaleX(.5)}48%,56%{transform:scaleX(.625)}60%,68%{transform:scaleX(.75)}72%,80%{transform:scaleX(.875)}84%,to{transform:scaleX(1)}}.art-loop{animation:art2-fade 10s linear -.5s infinite both}@keyframes art2-fade{0%{opacity:0}3%,96%{opacity:1}to{opacity:0}}.art-cell{fill:var(--art-1);stroke:var(--art-2);stroke-width:1}.art-cell.target{fill:var(--art-2);stroke:var(--art-3);animation:art2-found 8s steps(1,end) infinite both}.art-val{font-family:var(--mono);font-size:9px;font-weight:600;fill:var(--text)}.art-val.on-dark{fill:#fff;opacity:0;animation:art2-w4 8s steps(1,end) infinite both}.art-val.fades{animation:art2-hide4 8s steps(1,end) infinite both}.art-window{fill:none;stroke:var(--art-hi);stroke-width:1.8;opacity:0}.art-mid{fill:var(--art-hi);opacity:0}.art-w1{animation:art2-w1 8s steps(1,end) infinite both}.art-w2{animation:art2-w2 8s steps(1,end) infinite both}.art-w3{animation:art2-w3 8s steps(1,end) infinite both}.art-w4{animation:art2-w4 8s steps(1,end) infinite both}@keyframes art2-w1{0%,18.5%{opacity:1}19%,to{opacity:0}}@keyframes art2-w2{0%,19.5%{opacity:0}20%,38.5%{opacity:1}39%,to{opacity:0}}@keyframes art2-w3{0%,39.5%{opacity:0}40%,58.5%{opacity:1}59%,to{opacity:0}}@keyframes art2-w4{0%,59.5%{opacity:0}60%,to{opacity:1}}@keyframes art2-found{0%,59.5%{fill:var(--art-2)}60%,to{fill:var(--art-4)}}@keyframes art2-hide4{0%,59.5%{opacity:1}60%,to{opacity:0}}.art-dim{fill:var(--surface);opacity:0}.art-dim2{animation:art2-dim2 8s linear infinite both}.art-dim3{animation:art2-dim3 8s linear infinite both}.art-dim4{animation:art2-dim4 8s linear infinite both}@keyframes art2-dim2{0%,19%{opacity:0}23%,to{opacity:.78}}@keyframes art2-dim3{0%,39%{opacity:0}43%,to{opacity:.78}}@keyframes art2-dim4{0%,59%{opacity:0}63%,to{opacity:.78}}.art-dot{fill:var(--art-4)}.art-dot2{animation:art2-on2 8s steps(1,end) infinite both}.art-dot3{animation:art2-on3 8s steps(1,end) infinite both}.art-dot4{animation:art2-on4 8s steps(1,end) infinite both}@keyframes art2-on2{0%,19%{opacity:.18}22%,to{opacity:1}}@keyframes art2-on3{0%,39%{opacity:.18}42%,to{opacity:1}}@keyframes art2-on4{0%,59%{opacity:.18}62%,to{opacity:1}}.art-cand-track{fill:var(--art-1);opacity:.6}.art-cand{fill:var(--art-3);transform-box:fill-box;transform-origin:left center;animation:art2-shrink 8s cubic-bezier(.4,0,.2,1) infinite both}@keyframes art2-shrink{0%,19%{transform:scaleX(1)}20%,39%{transform:scaleX(.467)}40%,59%{transform:scaleX(.2)}60%,to{transform:scaleX(.067)}}.art-node{fill:var(--art-1);stroke:var(--surface);stroke-width:1}.art-stack{fill:var(--art-1)}.art-stack-slot{fill:var(--art-1);opacity:.45}.art-edge{stroke:var(--art-1);stroke-width:1}.art-edge.tree{stroke-width:1.8}.art-s0{animation:dfs-s0 13s ease-out -6s infinite both}.art-s1{animation:dfs-s1 13s ease-out -6s infinite both}.art-s2{animation:dfs-s2 13s ease-out -6s infinite both}.art-s4{animation:dfs-s4 13s ease-out -6s infinite both}.art-s3{animation:dfs-s3 13s ease-out -6s infinite both}.art-s6{animation:dfs-s6 13s ease-out -6s infinite both}.art-s7{animation:dfs-s7 13s ease-out -6s infinite both}.art-s5{animation:dfs-s5 13s ease-out -6s infinite both}.art-s9{animation:dfs-s9 13s ease-out -6s infinite both}.art-s8{animation:dfs-s8 13s ease-out -6s infinite both}.art-s10{animation:dfs-s10 13s ease-out -6s infinite both}.art-s11{animation:dfs-s11 13s ease-out -6s infinite both}.art-n0{animation:dfs-n0 13s ease-out -6s infinite both}.art-n1{animation:dfs-n1 13s ease-out -6s infinite both}.art-n2{animation:dfs-n2 13s ease-out -6s infinite both}.art-n4{animation:dfs-n4 13s ease-out -6s infinite both}.art-n3{animation:dfs-n3 13s ease-out -6s infinite both}.art-n6{animation:dfs-n6 13s ease-out -6s infinite both}.art-n7{animation:dfs-n7 13s ease-out -6s infinite both}.art-n5{animation:dfs-n5 13s ease-out -6s infinite both}.art-n9{animation:dfs-n9 13s ease-out -6s infinite both}.art-n8{animation:dfs-n8 13s ease-out -6s infinite both}.art-n10{animation:dfs-n10 13s ease-out -6s infinite both}.art-n11{animation:dfs-n11 13s ease-out -6s infinite both}.art-t1{animation:dfs-t1 13s ease-out -6s infinite both}.art-t2{animation:dfs-t2 13s ease-out -6s infinite both}.art-t4{animation:dfs-t4 13s ease-out -6s infinite both}.art-t3{animation:dfs-t3 13s ease-out -6s infinite both}.art-t6{animation:dfs-t6 13s ease-out -6s infinite both}.art-t7{animation:dfs-t7 13s ease-out -6s infinite both}.art-t5{animation:dfs-t5 13s ease-out -6s infinite both}.art-t9{animation:dfs-t9 13s ease-out -6s infinite both}.art-t8{animation:dfs-t8 13s ease-out -6s infinite both}.art-t10{animation:dfs-t10 13s ease-out -6s infinite both}.art-t11{animation:dfs-t11 13s ease-out -6s infinite both}@keyframes dfs-n0{0%,1.00%{fill:var(--art-hi)}2.50%,88.46%{fill:var(--art-3)}90.46%,96%{fill:var(--art-4)}98%,to{fill:var(--art-1)}}@keyframes dfs-n1{0%,3.35%{fill:var(--art-1)}3.85%,4.85%{fill:var(--art-hi)}6.35%,84.61%{fill:var(--art-3)}86.61%,96%{fill:var(--art-4)}98%,to{fill:var(--art-1)}}@keyframes dfs-n2{0%,7.19%{fill:var(--art-1)}7.69%,8.69%{fill:var(--art-hi)}10.19%,80.77%{fill:var(--art-3)}82.77%,96%{fill:var(--art-4)}98%,to{fill:var(--art-1)}}@keyframes dfs-n4{0%,11.04%{fill:var(--art-1)}11.54%,12.54%{fill:var(--art-hi)}14.04%,76.92%{fill:var(--art-3)}78.92%,96%{fill:var(--art-4)}98%,to{fill:var(--art-1)}}@keyframes dfs-n3{0%,14.88%{fill:var(--art-1)}15.38%,16.38%{fill:var(--art-hi)}17.88%,73.07%{fill:var(--art-3)}75.07%,96%{fill:var(--art-4)}98%,to{fill:var(--art-1)}}@keyframes dfs-n6{0%,18.73%{fill:var(--art-1)}19.23%,20.23%{fill:var(--art-hi)}21.73%,69.23%{fill:var(--art-3)}71.23%,96%{fill:var(--art-4)}98%,to{fill:var(--art-1)}}@keyframes dfs-n7{0%,22.58%{fill:var(--art-1)}23.08%,24.08%{fill:var(--art-hi)}25.58%,65.38%{fill:var(--art-3)}67.38%,96%{fill:var(--art-4)}98%,to{fill:var(--art-1)}}@keyframes dfs-n5{0%,26.42%{fill:var(--art-1)}26.92%,27.92%{fill:var(--art-hi)}29.42%,30.77%{fill:var(--art-3)}32.77%,96%{fill:var(--art-4)}98%,to{fill:var(--art-1)}}@keyframes dfs-n9{0%,34.11%{fill:var(--art-1)}34.61%,35.61%{fill:var(--art-hi)}37.11%,61.54%{fill:var(--art-3)}63.54%,96%{fill:var(--art-4)}98%,to{fill:var(--art-1)}}@keyframes dfs-n8{0%,37.96%{fill:var(--art-1)}38.46%,39.46%{fill:var(--art-hi)}40.96%,42.31%{fill:var(--art-3)}44.31%,96%{fill:var(--art-4)}98%,to{fill:var(--art-1)}}@keyframes dfs-n10{0%,45.65%{fill:var(--art-1)}46.15%,47.15%{fill:var(--art-hi)}48.65%,57.69%{fill:var(--art-3)}59.69%,96%{fill:var(--art-4)}98%,to{fill:var(--art-1)}}@keyframes dfs-n11{0%,49.50%{fill:var(--art-1)}50%,51.00%{fill:var(--art-hi)}52.50%,53.84%{fill:var(--art-3)}55.84%,96%{fill:var(--art-4)}98%,to{fill:var(--art-1)}}@keyframes dfs-t1{0%,3.35%{stroke:var(--art-1)}5.35%,96%{stroke:var(--art-hi)}98%,to{stroke:var(--art-1)}}@keyframes dfs-t2{0%,7.19%{stroke:var(--art-1)}9.19%,96%{stroke:var(--art-hi)}98%,to{stroke:var(--art-1)}}@keyframes dfs-t4{0%,11.04%{stroke:var(--art-1)}13.04%,96%{stroke:var(--art-hi)}98%,to{stroke:var(--art-1)}}@keyframes dfs-t3{0%,14.88%{stroke:var(--art-1)}16.88%,96%{stroke:var(--art-hi)}98%,to{stroke:var(--art-1)}}@keyframes dfs-t6{0%,18.73%{stroke:var(--art-1)}20.73%,96%{stroke:var(--art-hi)}98%,to{stroke:var(--art-1)}}@keyframes dfs-t7{0%,22.58%{stroke:var(--art-1)}24.58%,96%{stroke:var(--art-hi)}98%,to{stroke:var(--art-1)}}@keyframes dfs-t5{0%,26.42%{stroke:var(--art-1)}28.42%,96%{stroke:var(--art-hi)}98%,to{stroke:var(--art-1)}}@keyframes dfs-t9{0%,34.11%{stroke:var(--art-1)}36.11%,96%{stroke:var(--art-hi)}98%,to{stroke:var(--art-1)}}@keyframes dfs-t8{0%,37.96%{stroke:var(--art-1)}39.96%,96%{stroke:var(--art-hi)}98%,to{stroke:var(--art-1)}}@keyframes dfs-t10{0%,45.65%{stroke:var(--art-1)}47.65%,96%{stroke:var(--art-hi)}98%,to{stroke:var(--art-1)}}@keyframes dfs-t11{0%,49.50%{stroke:var(--art-1)}51.50%,96%{stroke:var(--art-hi)}98%,to{stroke:var(--art-1)}}@keyframes dfs-s0{0%,1.00%{fill:var(--art-hi)}2.50%,88.46%{fill:var(--art-3)}90.46%,to{fill:var(--art-1)}}@keyframes dfs-s1{0%,3.35%{fill:var(--art-1)}3.85%,4.85%{fill:var(--art-hi)}6.35%,84.61%{fill:var(--art-3)}86.61%,to{fill:var(--art-1)}}@keyframes dfs-s2{0%,7.19%{fill:var(--art-1)}7.69%,8.69%{fill:var(--art-hi)}10.19%,80.77%{fill:var(--art-3)}82.77%,to{fill:var(--art-1)}}@keyframes dfs-s4{0%,11.04%{fill:var(--art-1)}11.54%,12.54%{fill:var(--art-hi)}14.04%,76.92%{fill:var(--art-3)}78.92%,to{fill:var(--art-1)}}@keyframes dfs-s3{0%,14.88%{fill:var(--art-1)}15.38%,16.38%{fill:var(--art-hi)}17.88%,73.07%{fill:var(--art-3)}75.07%,to{fill:var(--art-1)}}@keyframes dfs-s6{0%,18.73%{fill:var(--art-1)}19.23%,20.23%{fill:var(--art-hi)}21.73%,69.23%{fill:var(--art-3)}71.23%,to{fill:var(--art-1)}}@keyframes dfs-s7{0%,22.58%{fill:var(--art-1)}23.08%,24.08%{fill:var(--art-hi)}25.58%,65.38%{fill:var(--art-3)}67.38%,to{fill:var(--art-1)}}@keyframes dfs-s5{0%,26.42%{fill:var(--art-1)}26.92%,27.92%{fill:var(--art-hi)}29.42%,30.77%{fill:var(--art-3)}32.77%,to{fill:var(--art-1)}}@keyframes dfs-s9{0%,34.11%{fill:var(--art-1)}34.61%,35.61%{fill:var(--art-hi)}37.11%,61.54%{fill:var(--art-3)}63.54%,to{fill:var(--art-1)}}@keyframes dfs-s8{0%,37.96%{fill:var(--art-1)}38.46%,39.46%{fill:var(--art-hi)}40.96%,42.31%{fill:var(--art-3)}44.31%,to{fill:var(--art-1)}}@keyframes dfs-s10{0%,45.65%{fill:var(--art-1)}46.15%,47.15%{fill:var(--art-hi)}48.65%,57.69%{fill:var(--art-3)}59.69%,to{fill:var(--art-1)}}@keyframes dfs-s11{0%,49.50%{fill:var(--art-1)}50%,51.00%{fill:var(--art-hi)}52.50%,53.84%{fill:var(--art-3)}55.84%,to{fill:var(--art-1)}}@media (prefers-reduced-motion: reduce){.art-bar,.art-cursor,.art-done,.art-loop{animation:none}.art-bar{transform:translate(var(--s7))}.art-cursor{opacity:0}.art-done{transform:scaleX(1)}}.profile-count{font-size:12px;color:var(--text-muted);margin-top:6px}.profile-help{font-size:12px;color:var(--text-muted);margin:12px 0 0;line-height:1.6}.profile-confirm{padding:16px;text-align:center;background:var(--accent-weak);border-radius:var(--radius)}.profile-confirm-name{font-size:15px;font-weight:600;color:var(--text)}.profile-confirm-no{font-family:var(--mono);font-size:26px;font-weight:600;letter-spacing:.14em;color:var(--accent);margin-top:4px;word-break:break-all}.profile-confirm-kind{font-size:12px;color:var(--text-muted);margin-top:2px}.linklike{background:none;border:none;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}.user-missing{margin-left:6px;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:500;color:var(--warn-text);background:#fffbeb;border:1px solid #fde68a}.user-edit{margin:-4px 0 10px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.user-edit-fields{display:flex;gap:10px;flex-wrap:wrap}.user-edit-fields label{flex:1 1 150px;font-size:12px;color:var(--text-muted)}.user-edit-fields label span{display:block;margin-bottom:4px}.user-edit-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:10px;flex-wrap:wrap}.user-edit-actions .opt-hint{margin-right:auto}button.sm{font-size:12px;padding:4px 10px}.note-link{display:inline-flex;align-items:center;gap:10px;margin-top:4px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);color:var(--text);text-decoration:none;font-size:14px}.note-link:hover{border-color:var(--accent);background:var(--surface-tint)}.note-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.note-link-tag{flex:none;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.06em;background:var(--accent);color:#fff;border-radius:var(--r-badge);padding:3px 7px}.note-link-tag.ref{background:var(--surface-tint);color:var(--accent);font-weight:500}.note-link b{display:block;font-weight:600}.note-link-sub{display:block;font-size:12px;color:var(--text-muted);margin-top:1px}.note-links{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}.note-link-ref{background:transparent}.note-link-ref b{font-weight:500}@media (max-width: 520px){.note-link{display:flex}.note-links{flex-direction:column}}@media (pointer: coarse){.note-link{min-height:44px}}.dash-notes{font-size:13px;color:var(--text);margin:6px 0 0}.sd-panel{margin:-4px 0 10px;padding:14px 16px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.sd-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sd-who{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.sd-name{font-size:15px;font-weight:600}.sd-sub{font-size:12px;color:var(--text-muted);font-weight:400}.sd-none{color:var(--text-muted)}.sd-score{font-size:13px}.sd-score b{font-weight:600}.sd-stats{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}.sd-stat{flex:1 1 96px;display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:#fff;border:1px solid var(--border);border-radius:10px}.sd-stat-label{font-size:11px;color:var(--text-muted)}.sd-stat-value{font-size:16px;font-weight:700}.sd-chat{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px}.sd-table{display:flex;flex-direction:column;gap:4px}.sd-tr{display:grid;grid-template-columns:minmax(120px,1.6fr) repeat(4,1fr);align-items:center;gap:10px;padding:8px 12px;background:#fff;border:1px solid var(--border);border-radius:8px}.sd-th{background:transparent;border-color:transparent;padding-bottom:0;font-size:11px;color:var(--text-muted)}.sd-ch{font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px}.sd-done{font-size:10px;font-weight:700;color:var(--ok-text);background:var(--ok-bg);border:1px solid var(--ok-line);border-radius:5px;padding:1px 5px}.sd-tr .dash-rd{padding:3px 8px;font-size:12px;gap:4px}.sd-weak{display:flex;flex-wrap:wrap;gap:6px}.dash-rost-row[role=button]{cursor:pointer}.dash-rost-row[role=button]:hover{border-color:var(--accent);background:var(--accent-weak)}.dash-rost-row[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-rost-caret{color:var(--text-muted);font-size:12px}@media (max-width: 640px){.sd-tr{grid-template-columns:1fr 1fr}.sd-ch{grid-column:1 / -1}.sd-th{display:none}.sd-tr [role=cell]:not(.sd-ch):before{display:block;font-size:10px;color:var(--text-muted)}.sd-tr [role=cell]:nth-child(2):before{content:"진단"}.sd-tr [role=cell]:nth-child(3):before{content:"튜터"}.sd-tr [role=cell]:nth-child(4):before{content:"퀴즈"}.sd-tr [role=cell]:nth-child(5):before{content:"시험"}}.pysc-list{display:flex;flex-direction:column;gap:14px;margin-top:10px}.pysc-item{display:flex;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.pysc-item.ok{background:var(--surface-2)}.pysc-item.no{border-color:var(--danger, #d9534f)}.pysc-num{flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--text-muted);font-size:13px;font-weight:600}.pysc-item.ok .pysc-num{color:var(--accent)}.pysc-item.no .pysc-num{color:var(--danger, #d9534f)}.pysc-body{flex:1;min-width:0}.pysc-context{font-size:13px;color:var(--text-muted);margin-bottom:6px}.pysc-ans{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;font-size:13px}.pysc-explain{margin-top:8px;padding:10px 12px;border-radius:var(--radius);background:var(--surface-2);font-size:13px}.pysc-score{font-size:20px;margin:4px 0 6px}.pysc-actions{display:flex;align-items:center;gap:10px;margin-top:16px}.pysc-actions .opt-hint{margin-right:auto}.pysc-note{margin-top:8px}.rv-group-bar{display:flex;align-items:center;gap:8px}.rv-approve-all{flex:0 0 auto;white-space:nowrap}.auth-help{margin:20px 0 0;padding:18px 0 0;list-style:none;border-top:1px solid var(--border);text-align:left;color:var(--text-muted);font-size:13px;line-height:1.6;display:flex;flex-direction:column;gap:9px}.auth-help li{display:flex;gap:9px}.auth-help-n{flex:none;height:fit-content;font-family:var(--mono);font-size:10.5px;font-weight:700;background:var(--surface-tint);color:var(--accent);border-radius:5px;padding:2px 7px}.auth-help b{color:var(--text);font-weight:600}.auth-help-line{margin:14px 0 0;text-align:left;color:var(--text-muted);font-size:13px;line-height:1.6}.auth-help-line b{color:var(--text);font-weight:600}.llm-panel{display:grid;gap:10px;margin-top:10px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.llm-tile{border:1px solid var(--border);border-radius:10px;padding:11px 13px;background:var(--surface-2)}.llm-tile-k{font-size:11.5px;color:var(--text-muted);letter-spacing:.01em}.llm-tile-v{font-size:16px;font-weight:600;margin-top:3px;overflow-wrap:anywhere}.llm-tile-s{font-size:11.5px;color:var(--text-muted);margin-top:4px;line-height:1.45}.llm-tile.ok .llm-tile-v{color:var(--ok-text)}.llm-tile.warn .llm-tile-v{color:var(--warn-text)}.llm-tile.bad .llm-tile-v{color:var(--bad)}.llm-tile .mono{font-family:var(--mono)}.llm-tile-v.mono{font-size:12.5px;font-weight:500}.llm-tile-s .mono{font-size:11px}.llm-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:12px;color:var(--text-muted)}.llm-meta b{color:var(--text);font-weight:600}.llm-note{margin:10px 0 0;font-size:12px;color:var(--text-muted);line-height:1.6}.llm-refresh{margin:8px 0 0;font-size:12.5px}.grow{display:inline-flex;align-items:center;gap:5px;flex:none;line-height:0}.grow svg{width:24px;height:24px;display:block}.grow-score{font-family:var(--mono);font-size:11px;font-weight:700;line-height:1;color:var(--text-meta);font-variant-numeric:tabular-nums}.grow.done .grow-score{color:var(--ok)}.grow.unscored{opacity:.55}.grow.unscored .grow-score{color:var(--text-meta)}.grow-outline *{fill:none;stroke:var(--border);stroke-width:1.1;stroke-linejoin:round}.grow-fill .p-leaf{fill:var(--ok)}.grow-fill .p-trunk{fill:var(--warn-text)}.grow svg clipPath rect{transition:y .5s ease,height .5s ease}.grow-glow{fill:var(--tree-light);opacity:.2;transform-origin:12px 11px;animation:grow-pulse 2.6s ease-in-out infinite}@keyframes grow-pulse{0%,to{opacity:.1;transform:scale(.8)}50%{opacity:.26;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.grow-glow{animation:none;opacity:.2;transform:scale(.95)}.grow svg clipPath rect{transition:none}}.invite-box{width:100%;font-family:var(--mono);font-size:12.5px;line-height:1.7;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);resize:vertical}.invite-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.invite-actions button{padding:8px 14px;font-size:13.5px}.invite-preview{margin-top:12px;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.invite-sum{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.invite-err{font-size:12px;color:var(--bad);line-height:1.7}.invite-rows{margin-top:8px;font-size:12.5px;line-height:1.8;color:var(--text-muted)}.invite-rows .mono{font-family:var(--mono);font-size:11.5px}.dash-toggle.sub{margin:10px 0 4px}.dash-toggle.sub button{padding:5px 12px;font-size:12.5px}.note-link-notice{display:inline-block;margin-top:5px;padding:2px 7px;border-radius:6px;background:#fffbeb;color:var(--warn-text);font-size:11px;font-weight:600;letter-spacing:.01em}.learn-inner.consent{max-width:620px}.consent-new{background:var(--surface-tint);border-radius:var(--r-card);padding:14px 16px;margin-bottom:18px}.consent-new h2{margin:0 0 8px;font-size:14.5px;color:var(--accent)}.consent-new ul{margin:0;padding-left:18px}.consent-new li{font-size:13px;line-height:1.7;margin-bottom:5px}.consent-new li:last-child{margin-bottom:0}.consent-sec h2{font-size:14.5px}.consent-list{margin:4px 0 0}.consent-row{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:7px 0}.consent-row+.consent-row{border-top:1px solid var(--border)}.consent-row.no{background:var(--ok-bg);border-radius:8px;margin:4px 0;padding:8px 10px;border-top:none}.consent-row.no+.consent-row{border-top:none}.consent-row.no dt{color:var(--ok-text)}.consent-row dt{font-size:12px;color:var(--text-muted);font-weight:600}.consent-row dd{margin:0;font-size:13px;line-height:1.7}.consent-check{display:flex;align-items:flex-start;gap:8px;cursor:pointer;margin-top:12px;padding:10px 12px;border-radius:var(--radius);background:var(--surface-2);font-size:13px;font-weight:600}.consent-check input{width:16px;height:16px;margin:1px 0 0;flex:none}.consent-footer{font-size:12.5px;color:var(--text-muted);margin:14px 0 0}.consent-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.consent-hint{font-size:11.5px;color:var(--text-muted);margin:10px 0 0}.learn-inner.wide{max-width:1100px}.students-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 0}.students-bar .dash-toggle.sub{margin:0;flex:none}.students-search{flex:1 1 260px;min-width:0}.students-dl{flex:none;white-space:nowrap}.students-note{margin:0 0 14px;padding:10px 12px;font-size:13px;background:var(--bg-soft);border-radius:var(--r-chip);color:var(--text-muted)}.students-table-wrap{overflow-x:auto;margin-top:14px}.students-table{width:100%;border-collapse:collapse;font-size:13.5px}.students-table th,.students-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.students-table thead th{background:var(--bg-soft);font-weight:600}.st-sort{background:none;border:0;padding:0;font:inherit;font-weight:600;color:inherit;cursor:pointer}.st-exp{width:30px}.st-exp-btn{width:22px;height:22px;padding:0;line-height:1;background:var(--bg-soft);border:1px solid var(--line);border-radius:6px;color:var(--text-muted);cursor:pointer}.st-row{cursor:pointer}.st-row:hover,.st-row.open{background:var(--bg-soft)}.st-name{display:block;font-weight:600}.st-email{display:block;font-size:11.5px;color:var(--text-muted)}.st-num{text-align:right;font-variant-numeric:tabular-nums}.st-of{font-size:11px;color:var(--text-muted)}.st-pending{color:var(--warn-text);margin-left:2px;font-weight:700}.st-detail-row>td{padding:0;background:var(--bg-soft)}.st-detail{padding:12px 14px 16px}.st-detail-cols{display:grid;grid-template-columns:1.3fr 1fr;gap:22px;align-items:start}.st-detail h4{margin:0 0 6px;font-size:13px}.st-h4-gap{margin-top:14px!important}.st-sub{width:100%;border-collapse:collapse;font-size:12.5px}.st-sub th,.st-sub td{padding:4px 8px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.st-sub th{color:var(--text-muted);font-weight:600}.st-none{margin:0;font-size:12.5px;color:var(--text-muted)}.st-chat{margin:0;font-size:12.5px}.st-privacy{margin:6px 0 0;font-size:11.5px;color:var(--text-muted)}@media (max-width: 860px){.st-narrow-hide{display:none}.st-detail-cols{grid-template-columns:1fr;gap:16px}.students-search{flex:1 1 100%;order:3}.students-dl{order:2;margin-left:auto}}.src-tag{display:inline-block;padding:1px 7px;border-radius:var(--r-chip);font-size:11px;font-weight:600;white-space:nowrap}.src-assigned{background:var(--ok-bg);color:var(--ok-text);border:1px solid var(--ok-line)}.src-practice{background:var(--surface-sunken);color:var(--text-muted);border:1px solid var(--line)}.st-practice,.dash-rost-practice{color:var(--text-muted)}.dash-practice-note{color:var(--warn-text);font-weight:600}.dash-att-main .src-tag{flex:none;margin-right:2px}.ch-videos{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.ch-videos-head{display:flex;align-items:baseline;gap:8px}.ch-videos-head h3{margin:0}.ch-videos-count{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--text-muted)}.ch-videos-nudge{margin:6px 0 0;font-size:13px;color:var(--text-muted)}.video-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}.video-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);color:var(--text);text-decoration:none;font-size:14px}.video-link:hover{border-color:var(--accent);background:var(--surface-tint)}.video-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.video-play{flex:none;color:var(--accent);font-size:12px}.video-body{min-width:0;flex:1}.video-body b{display:block;font-weight:600}.video-sub{display:block;font-size:12px;color:var(--text-muted);margin-top:1px}.video-dur{flex:none;font-family:var(--mono);font-size:12px;color:var(--text-muted)}.video-xref{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.video-xref-label{font-size:12px;color:var(--text-muted)}.video-xref-link{font-size:13px;color:var(--accent)}.video-all{display:inline-block;margin-top:10px;font-size:13px;color:var(--accent)}@media (pointer: coarse){.video-link{min-height:44px}}@media (max-width: 420px){.video-link{flex-wrap:wrap}.video-dur{margin-left:22px}}.dash-hard-stem .markdown-inline pre{display:inline;margin:0;padding:1px 5px;border:none;border-radius:5px;overflow:visible}.dash-hard-stem .markdown-inline pre code{display:inline;white-space:pre-wrap;font-size:.88em;line-height:inherit}.dash-hard-stem .markdown-inline :is(h1,h2,h3,h4,ul,ol,li,blockquote){display:inline;margin:0;padding:0;font-size:inherit;font-weight:inherit}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 18px}.auth-tab{padding:10px 12px;font-size:13.5px;font-weight:600;line-height:1.2;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s,border-color .12s}.auth-tab:hover{border-color:var(--accent);color:var(--accent)}.auth-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-tab.is-on{background:var(--accent);border-color:var(--accent);color:#fff}@media (forced-colors: active){.auth-tab.is-on{border-width:2px}}@media (pointer: coarse){.auth-tab{min-height:44px}}.brandmark{display:block;font-family:var(--font-display);font-weight:500;letter-spacing:.1em;white-space:nowrap;color:#fff}.auth-logo.brandmark{font-size:20px}.appnav .brand.brandmark{font-size:15.6px}@media (max-width: 760px){.appnav .brand.brandmark{font-size:14.4px;letter-spacing:.06em}}@media (min-width: 761px) and (min-height: 540px){.appnav .brand.brandmark{font-size:14.4px;letter-spacing:.05em;padding:0 0 15px}}.dash-chapters{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}.dash-ch{display:flex;flex-direction:column;gap:5px}.dash-ch-head{display:flex;align-items:center;gap:6px;min-height:24px}.dash-ch .dash-rd{padding:2px 7px;font-size:11px;gap:3px}.dash-ch .dash-bar{flex:none;height:10px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--border)}.dash-pos{margin:10px 0 2px}.dash-pos-band{position:relative;height:14px;border-radius:7px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--border);overflow:visible}.dash-pos-band>div{position:absolute;left:0;top:0;height:100%}.dash-pos-fill{border-radius:7px;background:var(--accent)}.dash-pos-avg{position:absolute;top:-3px;bottom:-3px;width:2px;background:#fff;box-shadow:0 0 0 1px var(--accent);border-radius:1px;transform:translate(-1px)}.dash-pos-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:12px}.dash-bar2{position:relative}.dash-bar2>*{position:absolute;left:0;top:0;height:100%}.dash-bar-soft{background:var(--accent);opacity:.28;border-radius:6px}.dash-pos-started{background:var(--accent);opacity:.28;border-radius:7px}
