@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_AMS-Regular.73ea273a72f4aca30ca5.woff2) format("woff2"),url(/static/media/KaTeX_AMS-Regular.d562e886c52f12660a41.woff) format("woff"),url(/static/media/KaTeX_AMS-Regular.853be92419a6c3766b9a.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Caligraphic-Bold.a1abf90dfd72792a577a.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Bold.d757c535a2e5902f1325.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Bold.7489a2fbfb9bfe704420.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Caligraphic-Regular.d6484fce1ef428d5bd94.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Regular.db074fa22cf224af93d7.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Regular.7e873d3833eb108a0758.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Fraktur-Bold.931d67ea207ab37ee693.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Bold.354501bac435c3264834.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Bold.4c761b3711973ab04edf.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Fraktur-Regular.172d3529b26f8cedef6b.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Regular.6fdf0ac577be0ba82a4c.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Regular.ed305b5434865e06ffde.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Main-Bold.39890742bc957b368704.woff2) format("woff2"),url(/static/media/KaTeX_Main-Bold.0c3b8929d377c0e9b2f3.woff) format("woff"),url(/static/media/KaTeX_Main-Bold.8169508bf58f8bd92ad8.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Main-BoldItalic.20f389c4120be058d80a.woff2) format("woff2"),url(/static/media/KaTeX_Main-BoldItalic.428978dc7837d46de091.woff) format("woff"),url(/static/media/KaTeX_Main-BoldItalic.828abcb200061cffbaae.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Main-Italic.fe2176f79edaa716e621.woff2) format("woff2"),url(/static/media/KaTeX_Main-Italic.fd947498bc16392e76c2.woff) format("woff"),url(/static/media/KaTeX_Main-Italic.fa675e5e4bec9eb250b6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Main-Regular.f650f111a3b890d116f1.woff2) format("woff2"),url(/static/media/KaTeX_Main-Regular.4f35fbcc9ee8614c2bcc.woff) format("woff"),url(/static/media/KaTeX_Main-Regular.9eba1d77abcf2aa6e94e.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Math-BoldItalic.dcbcbd93bac0470b462d.woff2) format("woff2"),url(/static/media/KaTeX_Math-BoldItalic.3f07ed67f06c720120ce.woff) format("woff"),url(/static/media/KaTeX_Math-BoldItalic.bf2d440b3a42ea78a998.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Math-Italic.6d3d25f4820d0da8f01f.woff2) format("woff2"),url(/static/media/KaTeX_Math-Italic.96759856b4e70f3a8338.woff) format("woff"),url(/static/media/KaTeX_Math-Italic.8a5f936332e8028c7278.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/static/media/KaTeX_SansSerif-Bold.95591a929f0d32aa282a.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Bold.b9cd458ac6d5889ff9c3.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Bold.5b49f4993ae22d7975b4.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Italic.7d393d382f3e7fb1c637.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Italic.8d593cfaa96238d5e2f8.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Italic.b257a18c016f37ee4543.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Regular.cd5e231e0cc53b2cb2c0.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Regular.02271ec5cb9f5b4588ac.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Regular.2f7bc363fc5424ebda59.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Script-Regular.c81d1b2a4b75d3eded60.woff2) format("woff2"),url(/static/media/KaTeX_Script-Regular.073b3402d036714b4370.woff) format("woff"),url(/static/media/KaTeX_Script-Regular.fc9ba5249878cd8f8d88.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size1-Regular.6eec866c69313624be60.woff2) format("woff2"),url(/static/media/KaTeX_Size1-Regular.0108e89c9003e8c14ea3.woff) format("woff"),url(/static/media/KaTeX_Size1-Regular.6de7d4b539221a49e9e2.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size2-Regular.2960900c4f271311eb36.woff2) format("woff2"),url(/static/media/KaTeX_Size2-Regular.3a99e70aee4076660d38.woff) format("woff"),url(/static/media/KaTeX_Size2-Regular.57f5c1837853986ea1db.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size3-Regular.e1951519f6f0596f7356.woff2) format("woff2"),url(/static/media/KaTeX_Size3-Regular.7947224e8a9914fa332b.woff) format("woff"),url(/static/media/KaTeX_Size3-Regular.8d6b6822586eea3d3b20.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size4-Regular.e418bf257af1052628d8.woff2) format("woff2"),url(/static/media/KaTeX_Size4-Regular.aeffd8025cba3647f1a6.woff) format("woff"),url(/static/media/KaTeX_Size4-Regular.4ad7c7e8bb8d10a34bb7.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Typewriter-Regular.c295e7f71970f03c0549.woff2) format("woff2"),url(/static/media/KaTeX_Typewriter-Regular.4c6b94fd1d07f8beff7c.woff) format("woff"),url(/static/media/KaTeX_Typewriter-Regular.c5c02d763c89380dcb4e.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.28"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width: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 .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;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;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.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}.auth-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:2rem}.auth-container{background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000026;max-width:420px;padding:2.5rem;width:100%}.auth-header{margin-bottom:2rem;text-align:center}.auth-header h1{color:#1a1a2e;font-size:1.75rem;margin-bottom:.5rem}.auth-header p{color:#666;font-size:.95rem}.email-icon,.success-icon{color:#667eea;display:flex;justify-content:center;margin-bottom:1rem}.auth-error{background:#fee2e2;color:#dc2626}.auth-error,.auth-success{border-radius:8px;font-size:.9rem;margin-bottom:1.5rem;padding:.75rem 1rem}.auth-success{background:#dcfce7;color:#16a34a}.auth-form{gap:1.25rem}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{font-size:.9rem}.form-group input{border:1px solid #d1d5db;border-radius:8px;font-size:1rem;padding:.75rem 1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input:disabled{background:#f3f4f6;cursor:not-allowed}.form-actions{display:flex;justify-content:flex-end}.forgot-password-link{color:#667eea;font-size:.85rem;text-decoration:none}.forgot-password-link:hover{text-decoration:underline}.auth-button{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:.875rem 1.5rem;transition:all .2s;width:100%}.auth-button.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.auth-button.primary:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}.auth-button.primary:disabled{cursor:not-allowed;opacity:.6}.auth-button.secondary{background:#f3f4f6;color:#374151}.auth-button.secondary:hover:not(:disabled){background:#e5e7eb}.auth-divider{align-items:center;display:flex;margin:1.5rem 0}.auth-divider:after,.auth-divider:before{background:#e5e7eb;content:"";flex:1 1;height:1px}.auth-divider span{color:#9ca3af;font-size:.875rem;padding:0 1rem}.google-login-container{display:flex;justify-content:center}.google-login-button{width:100%}.auth-footer{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1.5rem;text-align:center}.auth-footer p{color:#6b7280;font-size:.9rem}.auth-footer a{color:#667eea;font-weight:500;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.link-button{background:none;border:none;color:#667eea;cursor:pointer;font-size:inherit;padding:0}.link-button:hover{text-decoration:underline}.role-selector{display:flex;gap:.5rem;margin-bottom:1.5rem}.role-button{background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;flex:1 1;font-size:.9rem;font-weight:500;padding:.75rem;transition:all .2s}.role-button.active,.role-button:hover{border-color:#667eea}.role-button.active{background:#667eea1a;color:#667eea}.verify-instructions{margin-bottom:1.5rem;text-align:center}.verify-instructions p{color:#6b7280;line-height:1.6}.verify-instructions .small-text{font-size:.85rem;margin-top:1rem}.loading-container{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:200px}.loading-spinner{animation:spin .8s linear infinite;border-top-color:#667eea;height:40px;width:40px}@media (max-width:480px){.auth-page{padding:1rem}.auth-container{padding:1.5rem}.role-selector{flex-direction:column}}.google-button{align-items:center;background:#fff;border:1px solid #d1d5db;color:#374151;display:flex;gap:.75rem;justify-content:center}.google-button:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.google-icon{flex-shrink:0}.parent-dashboard{margin:0 auto;max-width:1400px;padding:2rem}.parent-dashboard.loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:60vh}.dashboard-header h1{color:#1a1a2e;font-size:1.75rem;margin-bottom:.5rem}.dashboard-header p{color:#666}.dashboard-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:300px 1fr}.children-sidebar{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;height:-webkit-fit-content;height:fit-content;padding:1.5rem}.children-sidebar h2{color:#1a1a2e;font-size:1.1rem;margin-bottom:1rem}.no-children{color:#666;font-style:italic}.children-list{list-style:none;margin:0 0 1.5rem;padding:0}.child-item{align-items:center;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;padding:.75rem 1rem;transition:background .2s}.child-item:hover{background:#f3f4f6}.child-item.active{background:#667eea1a}.child-info{display:flex;flex-direction:column;gap:.25rem}.child-name{color:#1a1a2e;font-weight:500}.child-progress{color:#666;font-size:.8rem}.unlink-button{background:none;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;font-size:1.25rem;opacity:0;padding:.25rem .5rem;transition:all .2s}.child-item:hover .unlink-button{opacity:1}.unlink-button:hover{background:#fee2e2;color:#dc2626}.link-child-section{border-top:1px solid #e5e7eb;padding-top:1.5rem}.link-child-section h3{color:#374151;font-size:.95rem;margin-bottom:.75rem}.link-child-section form{display:flex;flex-direction:column;gap:.5rem}.link-child-section input{border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;padding:.625rem .75rem}.link-child-section input:focus{border-color:#667eea;outline:none}.link-child-section button{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.625rem;transition:background .2s}.link-child-section button:hover:not(:disabled){background:#5a6fd6}.link-child-section button:disabled{cursor:not-allowed;opacity:.6}.error-message{color:#dc2626;font-size:.85rem}.success-message{color:#16a34a;font-size:.85rem;margin-top:.5rem}.child-details{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.loading-details,.no-selection{align-items:center;color:#666;display:flex;flex-direction:column;justify-content:center;min-height:300px}.child-header{border-bottom:1px solid #e5e7eb;margin-bottom:1.5rem;padding-bottom:1rem}.child-header h2{color:#1a1a2e;font-size:1.25rem;margin-bottom:.25rem}.child-email{color:#666;font-size:.9rem}.stats-grid{grid-gap:1rem;gap:1rem;margin-bottom:2rem}.stat-card{background:#f8f9fa;border-radius:8px;text-align:center}.stat-card h3{color:#666;font-size:.8rem;letter-spacing:.5px;margin-bottom:.5rem;text-transform:uppercase}.stat-value{color:#1a1a2e;font-size:1.5rem;font-weight:600}.unit-progress-section{margin-bottom:2rem}.unit-progress-section h3{color:#374151;font-size:1rem;margin-bottom:1rem}.unit-progress-list{display:flex;flex-direction:column;gap:.75rem}.unit-progress-item{align-items:center;display:flex;gap:1rem}.unit-info{display:flex;flex-direction:column;width:200px}.unit-name{color:#1a1a2e;font-weight:500}.unit-stats{color:#666;font-size:.8rem}.progress-bar{flex:1 1}.progress-fill{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px}.progress-percent{color:#374151;font-weight:500;text-align:right;width:50px}.recent-activity-section h3{color:#374151;font-size:1rem;margin-bottom:1rem}.activity-table{border-collapse:collapse;width:100%}.activity-table td,.activity-table th{border-bottom:1px solid #e5e7eb;padding:.75rem 1rem;text-align:left}.activity-table th{color:#666;font-size:.8rem;letter-spacing:.5px;text-transform:uppercase}.activity-table td{color:#374151}.tab-navigation{border-bottom:2px solid #e5e7eb;display:flex;gap:0;margin-bottom:1.5rem;overflow-x:auto}.tab-btn{background:none;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-size:.9rem;margin-bottom:-2px;padding:.75rem 1.25rem;transition:all .2s;white-space:nowrap}.tab-btn:hover{color:#374151}.tab-btn.active{border-bottom-color:#667eea;color:#667eea;font-weight:500}.tab-content{min-height:200px}.goals-section{margin-bottom:2rem}.goals-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.goals-header h3{color:#374151;font-size:1rem;margin:0}.set-goals-btn{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;padding:.5rem 1rem;transition:background .2s}.set-goals-btn:hover{background:#5a6fd6}.goal-progress-card{background:#f8f9fa;border-radius:8px;padding:1.25rem}.goal-progress-card.empty{color:#6b7280;font-style:italic}.goal-progress-card h4{color:#374151;font-size:.9rem;margin:0 0 1rem}.goal-rows{display:flex;flex-direction:column;gap:.75rem}.goal-row .goal-label{display:flex;font-size:.85rem;justify-content:space-between;margin-bottom:.25rem}.goal-status{color:#6b7280}.goal-status.met{color:#16a34a;font-weight:500}.goal-bar{background:#e5e7eb;border-radius:3px;height:6px;overflow:hidden}.goal-bar-fill{background:#667eea;border-radius:3px;height:100%;transition:width .3s}.goal-bar-fill.complete{background:#16a34a}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000026;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.modal-header h2{color:#1a1a2e;font-size:1.1rem;margin:0}.modal-close{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1.5rem;line-height:1;padding:0}.modal-close:hover{color:#374151}.modal-body{padding:1.5rem}.modal-description{color:#6b7280;font-size:.9rem;margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{color:#374151;display:block;font-size:.85rem;font-weight:500;margin-bottom:.375rem}.form-group input,.form-group select{border:1px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-size:.9rem;padding:.625rem .75rem;width:100%}.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.modal-footer{align-items:center;border-top:1px solid #e5e7eb;justify-content:space-between;padding:1rem 1.5rem}.modal-footer,.modal-footer-right{display:flex;gap:.75rem}.danger-btn{background:#fff;border:1px solid #fca5a5;border-radius:6px;color:#dc2626;cursor:pointer;font-size:.9rem;padding:.625rem 1.25rem}.danger-btn:hover:not(:disabled){background:#fef2f2;border-color:#dc2626}.danger-btn:disabled{cursor:not-allowed;opacity:.6}.primary-btn{background:#667eea;border-radius:6px;font-size:.9rem;font-weight:500;padding:.625rem 1.25rem}.primary-btn:hover:not(:disabled){background:#5a6fd6}.primary-btn:disabled{cursor:not-allowed;opacity:.6}.secondary-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:.9rem;padding:.625rem 1.25rem}.secondary-btn:hover{background:#e5e7eb}.weekly-report-panel{padding:1rem 0}.report-period{color:#6b7280;font-size:.9rem;margin-bottom:1.5rem}.report-stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr);margin-bottom:1.5rem}.report-stat{background:#f8f9fa;border-radius:8px;padding:1rem;text-align:center}.report-stat-value{color:#1a1a2e;font-size:1.5rem;font-weight:600}.report-stat-label{color:#6b7280}.report-stat-label,.report-stat-trend{font-size:.8rem;margin-top:.25rem}.trend-up{color:#16a34a}.trend-down{color:#dc2626}.trend-flat{color:#6b7280}.report-achievements{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:1rem}.report-achievements h4{color:#16a34a;font-size:.95rem;margin:0 0 .5rem}.report-achievements p{color:#374151;font-size:.9rem;margin:0}.parent-knowledge-gaps{padding:1rem 0}.gaps-summary{display:flex;gap:.75rem;margin-bottom:1.5rem}.gap-badge{border-radius:20px;font-size:.8rem;font-weight:500;padding:.375rem .75rem}.gap-badge.high{background:#fef2f2;color:#dc2626}.gap-badge.medium{background:#fffbeb;color:#d97706}.gap-badge.low{background:#eff6ff;color:#2563eb}.gaps-list{display:flex;flex-direction:column;gap:1rem}.gap-item{padding:1rem}.gap-header{justify-content:space-between;margin-bottom:.5rem}.gap-code{color:#1a1a2e;font-weight:600}.gap-severity{font-size:.75rem;font-weight:600;text-transform:uppercase}.gap-description{color:#374151;font-size:.9rem;margin-bottom:.5rem}.gap-details{color:#6b7280;font-size:.8rem;gap:1rem}.gap-details,.gap-patterns{display:flex;flex-wrap:wrap}.gap-patterns{align-items:center;gap:.5rem;margin-top:.5rem}.patterns-label{color:#6b7280;font-size:.8rem}.pattern-tag{background:#f3f4f6;border-radius:4px;color:#374151;font-size:.75rem;padding:.2rem .5rem}.parent-recommendations{padding:1rem 0}.recommendations-list{gap:1rem}.recommendation-item{border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:1rem;padding:1rem}.rec-icon{flex-shrink:0;font-size:1.5rem}.rec-content{flex:1 1}.rec-title{color:#1a1a2e;font-weight:500;margin-bottom:.25rem}.rec-description{color:#6b7280;font-size:.9rem;margin-bottom:.5rem}.rec-meta{color:#9ca3af;display:flex;font-size:.8rem;gap:1rem}.assignments-section{padding:1rem 0}.assignments-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.assignments-header h3{color:#374151;font-size:1rem;margin:0}.create-assignment-btn{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;padding:.5rem 1rem}.create-assignment-btn:hover{background:#5a6fd6}.assignments-table{border-collapse:collapse;width:100%}.assignments-table td,.assignments-table th{border-bottom:1px solid #e5e7eb;padding:.75rem 1rem;text-align:left}.assignments-table th{color:#6b7280;font-size:.8rem;letter-spacing:.5px;text-transform:uppercase}.assignment-title{color:#1a1a2e;font-weight:500}.accuracy-hint{color:#6b7280;font-size:.85rem}.status-badge{border-radius:12px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .625rem;text-transform:capitalize}.badge-pending{background:#fef3c7;color:#92400e}.badge-progress{background:#dbeafe;color:#1e40af}.badge-completed{background:#d1fae5;color:#065f46}.badge-expired{background:#f3f4f6;color:#6b7280}.delete-btn-small{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1.25rem;padding:.25rem}.delete-btn-small:hover{color:#dc2626}.settings-section{padding:1rem 0}.settings-section h3{color:#374151;font-size:1rem;margin-bottom:1rem}.email-preferences{background:#f8f9fa;border-radius:8px;padding:1.25rem}.pref-row{align-items:center;display:flex;justify-content:space-between}.pref-info{display:flex;flex-direction:column;gap:.25rem}.pref-label{color:#1a1a2e;font-weight:500}.pref-description{color:#6b7280;font-size:.85rem}.toggle-switch{display:inline-block;flex-shrink:0;height:26px;position:relative;width:48px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background:#d1d5db;border-radius:13px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:background .3s}.toggle-slider:before{background:#fff;border-radius:50%;bottom:3px;content:"";height:20px;left:3px;position:absolute;transition:transform .3s;width:20px}.toggle-switch input:checked+.toggle-slider{background:#667eea}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(22px)}.daily-goal-widget{background:#fff;border-left:4px solid #667eea;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:1rem;padding:1.25rem}.daily-goal-widget.all-met{border-left-color:#16a34a}.widget-header{align-items:center;display:flex;margin-bottom:.75rem}.widget-header h4{color:#374151;font-size:.95rem;margin:0}.all-done-badge{background:#d1fae5;border-radius:12px;color:#065f46;font-size:.75rem;font-weight:500;margin-left:.5rem;padding:.125rem .5rem}.mini-goals{display:flex;flex-wrap:wrap;gap:1rem}.mini-goal{flex:1 1;min-width:120px}.mini-goal-header{display:flex;font-size:.8rem;justify-content:space-between;margin-bottom:.25rem}.mini-goal-label{color:#6b7280}.mini-goal-value{color:#374151;font-weight:500}.mini-goal-value.met{color:#16a34a}.mini-goal-bar{background:#e5e7eb;border-radius:2px;height:4px;overflow:hidden}.mini-goal-fill{background:#667eea;border-radius:2px;height:100%;transition:width .3s}.mini-goal-fill.complete{background:#16a34a}.assignment-card{background:#fff;border-left:4px solid #f59e0b;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:1rem;padding:1.25rem}.assignment-card h3{color:#374151;font-size:.95rem;margin:0 0 .75rem}.assignment-items{display:flex;flex-direction:column;gap:.75rem}.assignment-item{background:#f8f9fa;border-radius:8px;padding:.75rem 1rem}.assignment-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.25rem}.assignment-item-title{color:#1a1a2e;font-weight:500}.assignment-due{color:#d97706;font-size:.8rem}.assignment-item-info{color:#6b7280;font-size:.85rem;margin-bottom:.5rem}.assignment-progress-bar{background:#e5e7eb;border-radius:2px;height:4px;margin-bottom:.5rem;overflow:hidden}.assignment-progress-fill{background:#667eea;border-radius:2px;height:100%}.assignment-start-btn{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-block;font-size:.8rem;font-weight:500;padding:.375rem .75rem;text-decoration:none}.assignment-start-btn:hover{background:#5a6fd6}.panel-empty,.panel-error,.panel-loading{color:#6b7280;padding:2rem;text-align:center}.panel-error{color:#dc2626}@media (max-width:1024px){.dashboard-content{grid-template-columns:1fr}.report-stats-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.parent-dashboard{padding:1rem}.stats-grid{grid-template-columns:1fr}.unit-progress-item{align-items:flex-start;flex-direction:column}.progress-bar,.unit-info{width:100%}.progress-percent{text-align:left}.tab-navigation{-webkit-overflow-scrolling:touch;flex-wrap:nowrap}.form-row{grid-template-columns:1fr}.mini-goals{flex-direction:column}}.gate-bypass-setting{margin-bottom:1.5rem}.setting-row{align-items:center;background:#f9fafb;background:var(--gray-50,#f9fafb);border-radius:8px;display:flex;gap:1rem;justify-content:space-between;padding:1rem}.setting-info{display:flex;flex-direction:column;gap:.25rem}.setting-label{color:#111;color:var(--gray-900,#111);font-weight:600}.setting-description{color:#6b7280;color:var(--gray-500,#6b7280);font-size:.85rem}.setting-warning{background:#fef3c7;border-radius:6px;color:#92400e;font-size:.85rem;margin-top:.5rem;padding:.5rem 1rem}.settings-section h3{margin-bottom:.75rem;margin-top:1.5rem}.settings-section h3:first-child{margin-top:0}.ai-insights-empty,.ai-insights-error,.ai-insights-loading{color:#666;padding:2rem;text-align:center}.ai-insights-empty h3{color:#1a1a2e;margin-bottom:.5rem}.ai-insights-panel{display:flex;flex-direction:column;gap:1.5rem}.ai-insights-period{align-items:center;display:flex;gap:.5rem}.ai-insights-period span{color:#333;font-weight:600}.period-btn{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.85rem;padding:.35rem .75rem}.period-btn.active{background:#4361ee;border-color:#4361ee;color:#fff}.ai-insights-section{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1.25rem}.ai-insights-section h3{color:#1a1a2e;font-size:1rem;font-weight:700;letter-spacing:.5px;margin:0 0 1rem;text-transform:uppercase}.usage-cards{display:flex;gap:1rem;margin-bottom:.75rem}.usage-card{background:#f8f9fa;border:1px solid #e5e7eb;border-radius:8px;flex:1 1;padding:.75rem;text-align:center}.usage-count{color:#4361ee;font-size:1.5rem;font-weight:700}.usage-label{color:#666;font-size:.8rem;margin-top:.25rem}.usage-total{color:#888;font-size:.85rem;margin:0}.trend-summary{color:#333;font-size:.95rem;font-weight:500;margin:0 0 .75rem}.trend-bars{display:flex;flex-direction:column;gap:.5rem}.trend-bar-row{background:#f1f5f9;border-radius:4px;height:28px;overflow:hidden;position:relative}.trend-bar-fill{background:#4361ee;border-radius:4px;height:100%;left:0;opacity:.3;position:absolute;top:0;transition:width .3s}.trend-bar-label{color:#333;font-size:.8rem;line-height:28px;padding-left:.5rem;position:relative;z-index:1}.struggle-list{display:flex;flex-direction:column;gap:.75rem}.struggle-item{border-left:4px solid #e5e7eb;border-radius:6px;padding:.75rem}.struggle-item.breakthrough{background:#f0fdf4;border-left-color:#10b981}.struggle-item.still_struggling{background:#fffbeb;border-left-color:#f59e0b}.struggle-header{align-items:center;display:flex;font-weight:600;gap:.5rem;margin-bottom:.25rem}.struggle-icon{font-size:1.1rem}.struggle-title{color:#1a1a2e}.struggle-detail{color:#555;font-size:.85rem;padding-left:1.6rem}.effectiveness-list{display:flex;flex-direction:column;gap:.5rem}.effectiveness-row{grid-gap:.5rem;align-items:center;display:grid;gap:.5rem;grid-template-columns:140px 50px 1fr}.effectiveness-label{color:#333;font-size:.9rem;font-weight:500}.effectiveness-pct{color:#4361ee;font-size:.9rem;font-weight:600;text-align:right}.effectiveness-bar{background:#f1f5f9;border-radius:5px;height:10px;overflow:hidden}.effectiveness-bar-fill{background:#4361ee;border-radius:5px;height:100%;transition:width .3s}:root{--primary:#3b82f6;--primary-dark:#2563eb;--success:#22c55e;--warning:#eab308;--error:#ef4444;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-600:#4b5563;--gray-800:#1f2937}*{box-sizing:border-box;margin:0;padding:0}body{background:#f3f4f6;background:var(--gray-100);color:#1f2937;color:var(--gray-800);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{align-items:center;background:#fff;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;padding:1rem 2rem}.app-header h1{color:#3b82f6;color:var(--primary);font-size:1.5rem}.app-header nav a{color:#4b5563;color:var(--gray-600);margin-left:1.5rem;text-decoration:none}.app-header nav a:hover{color:#3b82f6;color:var(--primary)}.app-main{flex:1 1;margin:0 auto;max-width:1200px;padding:2rem;width:100%}.loading{align-items:center;color:#4b5563;color:var(--gray-600);display:flex;font-size:1.2rem;height:200px;justify-content:center}.error-page{padding:3rem;text-align:center}.question-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin:0 auto;max-width:600px;padding:2rem}.question-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.difficulty-badge{background:#e5e7eb;background:var(--gray-200);border-radius:9999px;font-size:.875rem;padding:.25rem .75rem}.question-prompt{font-size:1.25rem;line-height:1.8;margin-bottom:2rem}.math-block{background:#f9fafb;background:var(--gray-50,#f9fafb);border-left:3px solid #3b82f6;border-left:3px solid var(--primary,#3b82f6);border-radius:6px;display:inline-block;margin:.75rem 0;padding:.75rem 1.25rem}.math-block .math-line{font-size:1.15em;padding:.35rem 0}.math-block .math-line+.math-line{border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200,#e5e7eb);margin-top:.2rem;padding-top:.5rem}.timer{align-items:center;display:flex;font-size:1.25rem;font-weight:600;gap:.5rem}.timer-low{color:#ef4444;color:var(--error)}.answer-input{margin-bottom:1.5rem}.answer-input input{border:2px solid #d1d5db;border:2px solid var(--gray-300);border-radius:8px;font-size:1.125rem;padding:1rem;width:100%}.answer-input input:focus{border-color:#3b82f6;border-color:var(--primary);outline:none}.choice-button{background:#fff;border:2px solid #d1d5db;border:2px solid var(--gray-300);border-radius:8px;cursor:pointer;display:block;font-size:1rem;margin-bottom:.75rem;padding:1rem;text-align:left;width:100%}.choice-button.selected,.choice-button:hover{border-color:#3b82f6;border-color:var(--primary)}.choice-button.selected{background:#3b82f61a}.action-button,.next-button,.submit-button{background:#3b82f6;background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;padding:1rem 2rem;text-align:center;text-decoration:none}.next-button:hover,.submit-button:hover{background:#2563eb;background:var(--primary-dark)}.submit-button:disabled{background:#d1d5db;background:var(--gray-300);cursor:not-allowed}.action-button.secondary{background:#fff;border:2px solid #3b82f6;border:2px solid var(--primary);color:#3b82f6;color:var(--primary)}.hint-section{margin-bottom:1.5rem}.hint-button{background:none;border:1px solid #d1d5db;border:1px solid var(--gray-300);border-radius:6px;cursor:pointer;font-size:.875rem;padding:.5rem 1rem}.hint-content{background:#fef3c7;border-radius:8px;margin-top:1rem;padding:1rem}.feedback-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed}.feedback-modal{background:#fff;border-radius:16px;max-width:400px;padding:2rem;text-align:center;width:100%}.feedback-modal.correct{border-top:4px solid #22c55e;border-top:4px solid var(--success)}.feedback-modal.incorrect{border-top:4px solid #ef4444;border-top:4px solid var(--error)}.feedback-icon{font-size:3rem;margin-bottom:1rem}.feedback-modal.correct .feedback-icon{color:#22c55e;color:var(--success)}.feedback-modal.incorrect .feedback-icon{color:#ef4444;color:var(--error)}.feedback-correct-answer{background:#fef2f2;border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem}.feedback-explanation{color:#4b5563;color:var(--gray-600);margin-bottom:1rem}.feedback-sr{align-items:center;display:flex;gap:1rem;justify-content:center;margin:1rem 0}.mastery-bar{background:#e5e7eb;background:var(--gray-200);border-radius:4px;height:8px;margin:.5rem 0}.mastery-fill{background:#3b82f6;background:var(--primary);border-radius:4px;height:100%;transition:width .5s}.dashboard-page h1{margin-bottom:1.5rem}.dashboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.dashboard-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.dashboard-grid.streamlined{grid-template-columns:1fr 1fr}.dashboard-grid.streamlined .full-width{grid-column:1/-1}.dashboard-card{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:1.5rem}.dashboard-card h3{color:#4b5563;color:var(--gray-600);margin-bottom:1rem}@media (max-width:768px){.dashboard-grid.streamlined{grid-template-columns:1fr}}.due-reviews-badge{align-items:center;border-radius:9999px;display:inline-flex;font-weight:600;gap:.5rem;padding:.5rem 1rem;text-decoration:none}.due-reviews-badge.has-reviews{background:#ef4444;background:var(--error);color:#fff}.due-reviews-badge.all-done{background:#22c55e;background:var(--success);color:#fff}.primary-action-card{align-items:center;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.primary-action-card.loading{background:#f3f4f6;background:var(--gray-100);min-height:80px}.loading-pulse{animation:pulse 1.5s infinite;background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 50%,#e5e7eb 75%);background:linear-gradient(90deg,var(--gray-200) 25%,var(--gray-100) 50%,var(--gray-200) 75%);background-size:200% 100%;border-radius:4px;height:20px;width:100%}.primary-action-card.all-done{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #bbf7d0}.all-done-icon{color:#22c55e;color:var(--success);font-size:1.75rem}.all-done-text{display:flex;flex-direction:column;gap:.125rem}.all-done-text strong{color:#166534}.all-done-text span{color:#16a34a;font-size:.875rem}.primary-action-content{align-items:center;display:flex;gap:1rem}.primary-action-icon{font-size:2rem}.primary-action-text{display:flex;flex-direction:column;gap:.125rem}.primary-action-label{font-size:.75rem;font-weight:500;letter-spacing:.025em;text-transform:uppercase}.primary-action-title{color:#1f2937;color:var(--gray-800);font-size:1.1rem}.primary-action-time{color:var(--gray-500);font-size:.8rem}.primary-action-button{border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:transform .2s,box-shadow .2s;white-space:nowrap}.primary-action-button:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}@media (max-width:600px){.primary-action-card{text-align:center}.primary-action-card,.primary-action-content{flex-direction:column}.primary-action-button{width:100%}}.primary-action-wrapper{margin-bottom:1.5rem}.primary-action-wrapper .primary-action-card{margin-bottom:0}.primary-action-wrapper .primary-action-card.has-secondary{border-radius:12px 12px 0 0}.secondary-actions{background:#fff;border-radius:0 0 12px 12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.secondary-toggle{align-items:center;background:var(--gray-50);border:none;border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200);color:#4b5563;color:var(--gray-600);cursor:pointer;display:flex;font-size:.8rem;gap:.5rem;justify-content:center;padding:.625rem 1rem;transition:background .2s;width:100%}.secondary-toggle:hover{background:#f3f4f6;background:var(--gray-100)}.toggle-arrow{font-size:.75rem;transition:transform .2s}.toggle-arrow.expanded{transform:rotate(180deg)}.secondary-list{border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200)}.secondary-item{align-items:center;border-left:3px solid;cursor:pointer;display:flex;gap:.75rem;padding:.75rem 1rem;transition:background .2s}.secondary-item:not(:last-child){border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--gray-100)}.secondary-item:hover{background:var(--gray-50)}.secondary-icon{flex-shrink:0;font-size:1.1rem}.secondary-text{flex:1 1;min-width:0}.secondary-title{color:#1f2937;color:var(--gray-800);display:block;font-size:.875rem;font-weight:500}.secondary-desc{color:var(--gray-500);display:block;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.secondary-time{color:var(--gray-400);flex-shrink:0;font-size:.7rem}.progress-ring{align-items:center;display:flex;flex-direction:column}.progress-ring-bg{stroke:#e5e7eb;stroke:var(--gray-200)}.progress-ring-fill{stroke:#3b82f6;stroke:var(--primary);transform:rotate(-90deg);transform-origin:center}.unit-progress{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);padding:1rem 0}.unit-progress.unit-locked{opacity:.6}.unit-progress.unit-complete .unit-header h4{color:#22c55e;color:var(--success)}.complete-icon,.lock-icon{margin-right:.5rem}.complete-icon{color:#22c55e;color:var(--success)}.locked-message{color:#4b5563;color:var(--gray-600);font-size:.875rem;font-style:italic;padding:.5rem 0}.unit-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.progress-bar{border-radius:4px;height:8px}.progress-fill{background:#3b82f6;background:var(--primary);transition:width .3s}.unit-footer{display:flex;font-size:.875rem;justify-content:space-between;margin-top:.5rem}.continue-link{color:#3b82f6;color:var(--primary);text-decoration:none}.unit-actions{display:flex;gap:1rem}.gate-link{color:#22c55e;color:var(--success);font-weight:500}.gate-link:hover{text-decoration:underline}.gate-readiness-indicator{border-top:1px dashed #e5e7eb;border-top:1px dashed var(--gray-200);margin-top:.75rem;padding-top:.75rem}.readiness-bar-container{margin-bottom:.375rem}.readiness-label{align-items:center;color:var(--gray-500);display:flex;font-size:.75rem;justify-content:space-between}.readiness-percent{font-weight:600}.readiness-bar{background:#e5e7eb;background:var(--gray-200);border-radius:3px;height:6px;overflow:visible;position:relative}.readiness-fill{border-radius:3px;height:100%;transition:width .3s ease}.readiness-threshold{background:var(--gray-400);border-radius:1px;height:10px;position:absolute;top:-2px;width:2px}.readiness-hint{color:var(--gray-500);font-size:.75rem;font-style:italic}.ready-badge{background:#dcfce7;border-radius:4px;color:#166534;display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .5rem;text-decoration:none;transition:background .2s}.ready-badge:hover{background:#bbf7d0}.lesson-select-page h1{margin-bottom:2rem}.units-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.unit-number{color:#4b5563;color:var(--gray-600);font-size:.875rem}.unit-name{margin:.5rem 0 1rem}.unit-lessons{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.lesson-link{background:#f3f4f6;background:var(--gray-100);border-radius:6px;color:#1f2937;color:var(--gray-800);font-size:.875rem;padding:.5rem 1rem;text-decoration:none}.gate-link,.lesson-link:hover{background:#3b82f6;background:var(--primary);color:#fff}.gate-link{border-radius:8px;display:block;font-weight:600;margin-top:1rem;padding:.75rem;text-align:center;text-decoration:none}.gate-intro{margin:0 auto;max-width:500px;padding:2rem;text-align:center}.gate-info{display:flex;gap:2rem;justify-content:center;margin:2rem 0}.info-item{display:flex;flex-direction:column}.info-label{color:#4b5563;color:var(--gray-600);font-size:.875rem}.info-value{font-size:2rem;font-weight:700}.gate-warning{background:#fef2f2;border-radius:8px;margin-bottom:2rem;padding:1.5rem}.start-gate-button{font-size:1.25rem;padding:1rem 3rem}.past-attempts{border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200);margin-top:2rem;padding-top:1.5rem;text-align:left}.past-attempts h3{color:#4b5563;color:var(--gray-600);font-size:1rem;margin-bottom:.75rem}.attempts-list{display:flex;flex-direction:column;gap:.5rem}.attempt-row{align-items:center;background:var(--gray-50);border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:8px;cursor:pointer;display:flex;gap:1rem;padding:.75rem 1rem;text-align:left;transition:all .2s;width:100%}.attempt-row:hover{background:#fff;border-color:#d1d5db;border-color:var(--gray-300)}.attempt-row.passed{border-left:3px solid #22c55e;border-left:3px solid var(--success)}.attempt-row.failed{border-left:3px solid #ef4444;border-left:3px solid var(--error)}.attempt-status{font-size:1.25rem;text-align:center;width:1.5rem}.attempt-row.passed .attempt-status{color:#22c55e;color:var(--success)}.attempt-row.failed .attempt-status{color:#ef4444;color:var(--error)}.attempt-score{flex:1 1;font-weight:600}.attempt-date{color:var(--gray-500);font-size:.8rem}.attempt-arrow{color:var(--gray-400)}.viewing-past-attempt{margin:0 auto;max-width:700px;padding:1rem}.viewing-past-attempt .back-btn{background:none;border:1px solid #d1d5db;border:1px solid var(--gray-300);border-radius:6px;color:#4b5563;color:var(--gray-600);cursor:pointer;margin-bottom:1rem;padding:.5rem 1rem}.viewing-past-attempt .back-btn:hover{background:#f3f4f6;background:var(--gray-100)}.attempt-date-header{color:var(--gray-500);font-size:.9rem;margin-bottom:1rem;text-align:center}.gate-results{margin:0 auto;max-width:600px;padding:2rem;text-align:center}.result-header{margin-bottom:2rem}.student-greeting{color:#4b5563;color:var(--gray-600);font-size:1rem;margin-bottom:.5rem}.result-icon{font-size:4rem}.score-display{margin:2rem 0}.score-circle{align-items:baseline;display:inline-flex;font-size:3rem;font-weight:700}.score-total{font-size:1.5rem}.lo-breakdown{margin:2rem 0;text-align:left}.lo-row{align-items:center;display:flex;gap:1rem;padding:.5rem 0}.lo-row.weak{color:#ef4444;color:var(--error)}.lo-bar{background:#e5e7eb;background:var(--gray-200);flex:1 1;height:8px}.lo-bar,.lo-fill{border-radius:4px}.lo-fill{background:#3b82f6;background:var(--primary);height:100%}.result-actions{gap:1rem;margin-top:2rem}.lo-row .lo-info,.result-actions{display:flex;flex-direction:column}.lo-row .lo-info{min-width:120px}.lo-row .lo-description{color:var(--gray-500);font-size:.75rem;margin-top:.125rem}.lo-row.perfect .lo-score{color:#22c55e;color:var(--success);font-weight:600}.question-breakdown{border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200);margin-top:1.5rem;padding-top:1.5rem}.toggle-details-btn{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;cursor:pointer;display:flex;font-weight:600;gap:.5rem;padding:.75rem 1rem;text-align:left;transition:background .2s;width:100%}.toggle-details-btn:hover{background:#fee2e2}.incorrect-questions{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.incorrect-question{background:#fff;border:1px solid #e5e7eb;border-left:3px solid #ef4444;border:1px solid var(--gray-200);border-left:3px solid var(--error);border-radius:8px;padding:1rem}.question-header-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.question-num{color:var(--gray-700);font-weight:700}.question-lo{background:#f3f4f6;background:var(--gray-100);border-radius:4px;color:#4b5563;color:var(--gray-600);font-size:.75rem;padding:.25rem .5rem}.incorrect-question .question-prompt{color:var(--gray-700);font-size:.95rem;line-height:1.5;margin-bottom:.75rem}.answer-comparison{display:flex;flex-wrap:wrap;gap:1rem}.correct-answer,.your-answer{display:flex;flex:1 1;flex-direction:column;gap:.25rem;min-width:140px}.answer-label{color:var(--gray-500);font-size:.7rem;font-weight:600;text-transform:uppercase}.answer-value{border-radius:6px;font-family:monospace;font-size:.9rem;padding:.5rem .75rem}.answer-value.wrong{background:#fef2f2;color:#dc2626;text-decoration:line-through}.answer-value.correct{background:#f0fdf4;color:#16a34a;font-weight:600}.gate-question{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin:0 auto;max-width:600px;padding:2rem}.gate-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.question-number{color:#4b5563;color:var(--gray-600);font-weight:600}.gate-progress{background:#e5e7eb;background:var(--gray-200);border-radius:3px;height:6px;margin-bottom:2rem;overflow:hidden}.gate-progress-fill{background:#3b82f6;background:var(--primary);height:100%;transition:width .3s}.question-content{font-size:1.125rem;line-height:1.8;margin-bottom:2rem}.submit-answer{background:#3b82f6;background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;margin-top:1rem;padding:1rem;width:100%}.submit-answer:disabled{cursor:not-allowed;opacity:.5}.submit-answer:hover:not(:disabled){background:#2563eb;background:var(--primary-dark)}.streak-header{align-items:center;display:flex;font-size:1.25rem;font-weight:600;gap:.5rem;margin-bottom:1rem}.calendar-grid{display:flex;gap:4px}.calendar-day{align-items:center;border-radius:4px;display:flex;flex-direction:column;font-size:.625rem;height:32px;justify-content:center;width:24px}.calendar-day.intensity-0{background:#e5e7eb;background:var(--gray-200)}.calendar-day.intensity-1{background:#bbf7d0}.calendar-day.intensity-2{background:#86efac}.calendar-day.intensity-3{background:#4ade80}.calendar-day.intensity-4{background:#22c55e}.this-week-card{height:100%}.this-week-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.this-week-header h3{color:#1f2937;color:var(--gray-800);margin:0}.streak-badge{align-items:center;color:#ea580c;display:flex;font-weight:600;gap:.25rem}.streak-fire{font-size:1.1rem}.week-activity-grid{display:flex;gap:.25rem;justify-content:space-between;margin-bottom:1rem}.week-day{align-items:center;background:#f3f4f6;background:var(--gray-100);border-radius:6px;display:flex;flex:1 1;flex-direction:column;gap:.25rem;padding:.375rem 0}.week-day.today{outline:2px solid #3b82f6;outline:2px solid var(--primary);outline-offset:1px}.week-day .day-label{color:var(--gray-500);font-size:.625rem;font-weight:500}.week-day .day-dot{background:#d1d5db;background:var(--gray-300);border-radius:50%;height:12px;width:12px}.week-day.intensity-1 .day-dot{background:#bbf7d0}.week-day.intensity-2 .day-dot{background:#86efac}.week-day.intensity-3 .day-dot{background:#4ade80}.week-day.intensity-4 .day-dot{background:#22c55e}.week-stats{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200);display:flex;justify-content:space-around;margin-bottom:1rem;padding:.75rem 0}.week-stat{align-items:center;display:flex;flex-direction:column;text-align:center}.week-stat .stat-value{color:#1f2937;color:var(--gray-800);font-size:1.25rem;font-weight:700}.week-stat .stat-label{color:var(--gray-500);font-size:.75rem}.summary-toggle{background:#f3f4f6;background:var(--gray-100);border:none;border-radius:6px;color:#3b82f6;color:var(--primary);cursor:pointer;font-weight:500;padding:.5rem;transition:background .2s;width:100%}.summary-toggle:hover:not(:disabled){background:#e5e7eb;background:var(--gray-200)}.summary-toggle:disabled{color:var(--gray-400);cursor:not-allowed}.week-summary-content{border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200);margin-top:1rem;padding-top:1rem}.week-summary-content p{color:var(--gray-700);font-size:.875rem;line-height:1.6;margin-bottom:.75rem}.summary-focus,.summary-highlights{align-items:center;display:flex;flex-wrap:wrap;font-size:.8rem;gap:.5rem;margin-top:.5rem}.focus-label,.highlight-label{color:var(--gray-500)}.highlight-item.positive{background:#dcfce7;color:#16a34a}.focus-item,.highlight-item.positive{border-radius:4px;font-weight:500;padding:.125rem .5rem}.focus-item{background:#fef3c7;color:#b45309}.heatmap-grid,.mastery-heatmap h3{margin-bottom:1rem}.unit-row{align-items:center;display:flex;margin-bottom:.5rem}.unit-label{font-size:.875rem;width:60px}.lo-cells{display:flex;gap:4px}.lo-cell{align-items:center;border-radius:4px;color:#fff;display:flex;font-size:.625rem;font-weight:600;height:32px;justify-content:center;width:32px}.legend{display:flex;flex-wrap:wrap;font-size:.75rem;gap:1rem}.legend span{align-items:center;display:flex;gap:.25rem}.legend div{border-radius:2px;height:12px;width:12px}.tooltip-wrapper{display:inline-block;position:relative}.tooltip-content{background:#1f2937;background:var(--gray-800);border-radius:6px;bottom:100%;color:#fff;font-size:.75rem;left:50%;margin-bottom:4px;padding:.5rem .75rem;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:100}.math-content{font-family:Times New Roman,serif}.fraction{display:inline-flex;flex-direction:column;text-align:center;vertical-align:middle}.numerator{border-bottom:1px solid}.session-complete{background:#fff;border-radius:16px;box-shadow:0 4px 6px #0000001a;margin:0 auto;max-width:500px;padding:2rem;text-align:center}.session-complete .complete-icon{font-size:4rem;margin-bottom:1rem}.session-complete h2{color:#1f2937;color:var(--gray-800);margin-bottom:1.5rem}.session-summary{display:flex;gap:2rem;justify-content:center;margin:2rem 0}.stat-box{align-items:center;display:flex;flex-direction:column}.stat-value{font-size:2.5rem}.stat-label{color:#4b5563;color:var(--gray-600);font-size:.875rem}.complete-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:2rem}.primary-btn{background:#3b82f6;background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem 2rem;text-decoration:none}.primary-btn:hover{background:#2563eb;background:var(--primary-dark)}.secondary-btn{background:#fff;border:2px solid #d1d5db;border:2px solid var(--gray-300);border-radius:8px;color:#3b82f6;color:var(--primary);cursor:pointer;font-size:.875rem;padding:.75rem 1.5rem;text-decoration:none}.secondary-btn:hover{border-color:#3b82f6;border-color:var(--primary)}.practice-page{margin:0 auto;max-width:700px}.practice-header{margin-bottom:1.5rem}.practice-header-top{align-items:center;display:flex;justify-content:space-between}.adaptive-info-bar{margin-top:.75rem}.adaptive-toggle{align-items:center;background:#f3f4f6;background:var(--gray-100);border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:6px;color:#4b5563;color:var(--gray-600);cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;justify-content:flex-start;padding:.5rem 1rem;width:100%}.adaptive-toggle:hover{background:#e5e7eb;background:var(--gray-200)}.struggling-badge{background:#fef2f2;border-radius:4px;color:#ef4444;color:var(--error);font-size:.75rem;padding:.125rem .5rem}.toggle-icon{font-size:.75rem;margin-left:auto}.adaptive-details{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:6px;display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;padding:1rem}.adaptive-stat{display:flex;justify-content:space-between}.adaptive-stat .label,.mastered-list .label,.struggling-list .label{color:#4b5563;color:var(--gray-600);font-size:.875rem}.adaptive-stat .value{font-weight:600}.mastered-list,.struggling-list{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.struggling-lo{background:#fef2f2;color:#ef4444;color:var(--error)}.mastered-lo,.struggling-lo{border-radius:4px;font-size:.75rem;padding:.25rem .5rem}.mastered-lo{background:#f0fdf4;color:#22c55e;color:var(--success)}.session-stats{align-items:center;background:#fff;border-radius:8px;color:#4b5563;color:var(--gray-600);display:flex;font-size:.875rem;gap:.5rem;padding:.5rem 1rem}.sound-toggle{background:none;border:none;cursor:pointer;font-size:1rem;opacity:.7;padding:.25rem;transition:opacity .2s,transform .2s}.sound-toggle:hover{opacity:1;transform:scale(1.1)}.answer-section input{border:2px solid #d1d5db;border:2px solid var(--gray-300);border-radius:8px;font-size:1.125rem;margin-bottom:1rem;padding:1rem;width:100%}.answer-section input:focus{border-color:#3b82f6;border-color:var(--primary);outline:none}.action-buttons{display:flex;gap:1rem}.hint-btn{background:#fff;border:2px solid #d1d5db;border:2px solid var(--gray-300);border-radius:8px}.hint-btn,.submit-btn{cursor:pointer;padding:.75rem 1.5rem}.submit-btn{background:#3b82f6;background:var(--primary);border:none;border-radius:8px;color:#fff;flex:1 1;font-weight:600}.hint-box{background:#fef3c7;border-radius:8px;margin-top:1rem;padding:1rem}.result-box{border-radius:8px;margin-top:1.5rem;padding:1.5rem;text-align:center}.result-box.correct{background:#dcfce7;border:2px solid #22c55e;border:2px solid var(--success)}.result-box.incorrect{background:#fee2e2;border:2px solid #ef4444;border:2px solid var(--error)}.result-header{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.explanation{color:#4b5563;color:var(--gray-600);margin-bottom:1rem}.next-btn{background:#3b82f6;background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 2rem}.accuracy-detail{color:#4b5563;color:var(--gray-600);display:block;font-size:.875rem;margin-top:.25rem}.lesson-select-header{align-items:center;display:flex;gap:1rem;margin-bottom:2rem}.lesson-select-header h1{margin:0}.back-btn{background:#fff;border:1px solid #d1d5db;border:1px solid var(--gray-300);border-radius:6px;cursor:pointer;font-size:.875rem;padding:.5rem 1rem}.back-btn:hover{background:#f3f4f6;background:var(--gray-100)}.back-link{color:#4b5563;color:var(--gray-600);display:inline-block;margin-top:2rem}.unit-card{background:#fff;border:2px solid #0000;border-radius:12px;box-shadow:0 2px 4px #0000000d;cursor:pointer;padding:1.5rem;text-align:left;transition:border-color .2s,box-shadow .2s;width:100%}.unit-card:hover:not(:disabled){border-color:#3b82f6;border-color:var(--primary);box-shadow:0 4px 12px #0000001a}.unit-card.locked{background:#f3f4f6;background:var(--gray-100);cursor:not-allowed;opacity:.6}.unit-card.locked:hover{border-color:#0000;box-shadow:0 2px 4px #0000000d}.unit-card.passed{background:linear-gradient(135deg,#fff,#f0fdf4);border-color:#22c55e;border-color:var(--success)}.unit-card .lock-badge,.unit-card .pass-badge{font-size:1.25rem;position:absolute;right:.75rem;top:.75rem}.unit-card .pass-badge{color:#22c55e;color:var(--success);font-weight:700}.unit-card .unlock-hint{color:#4b5563;color:var(--gray-600);font-size:.75rem;margin-top:.5rem}.unit-card{position:relative}.header-pass-badge{color:#22c55e;color:var(--success);margin-right:.5rem}.gate-link-btn{background:#3b82f6;background:var(--primary);border-radius:8px;color:#fff;display:block;margin:1rem 0;padding:1rem;text-align:center;text-decoration:none}.gate-link-btn:hover{background:#2563eb;background:var(--primary-dark)}.gate-link-btn.passed{background:#22c55e;background:var(--success)}.lessons-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:2rem}.lesson-card{background:#fff;border:2px solid #e5e7eb;border:2px solid var(--gray-200);border-radius:12px;color:#1f2937;color:var(--gray-800);display:flex;flex-direction:column;padding:1.25rem;text-decoration:none;transition:all .2s}.lesson-card:hover{border-color:#3b82f6;border-color:var(--primary);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.lesson-card.completed{background:linear-gradient(to bottom right,#fff,#f0fdf4);border-color:#22c55e;border-color:var(--success)}.lesson-card.in_progress{background:linear-gradient(to bottom right,#fff,#eff6ff);border-color:#3b82f6;border-color:var(--primary)}.lesson-card.not_started{border-color:#e5e7eb;border-color:var(--gray-200)}.lesson-header{align-items:center;display:flex;gap:.5rem;margin-bottom:.75rem}.lesson-number{font-size:1.1rem;font-weight:600}.status-icon{align-items:center;border-radius:50%;display:inline-flex;font-size:.875rem;height:24px;justify-content:center;width:24px}.status-icon.completed{background:#22c55e;background:var(--success);color:#fff}.status-icon.in-progress{background:#3b82f6;background:var(--primary);color:#fff}.status-icon.not-started{background:#e5e7eb;background:var(--gray-200);color:#4b5563;color:var(--gray-600)}.lesson-stats{color:#4b5563;color:var(--gray-600);display:flex;flex-direction:column;font-size:.875rem;gap:.25rem;margin-bottom:.5rem}.stat-accuracy{color:#3b82f6;color:var(--primary);font-weight:600}.lesson-status-label{color:#4b5563;color:var(--gray-600);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.lesson-card.completed .lesson-status-label{color:#22c55e;color:var(--success)}.lesson-card.in_progress .lesson-status-label{color:#3b82f6;color:var(--primary)}.continue-section{margin:2rem 0;text-align:center}.continue-btn{background:#3b82f6;background:var(--primary);border-radius:8px;color:#fff;display:inline-block;font-size:1.1rem;font-weight:600;padding:1rem 2rem;text-decoration:none;transition:background .2s}.continue-btn:hover{background:#2563eb;background:var(--primary-dark)}.chart-bar-wrapper .bar-label{font-size:.7rem;white-space:nowrap}.question-header-left{align-items:center;display:flex;gap:.5rem}.review-badge{background:#3b82f6;background:var(--primary);border-radius:4px;color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .5rem;text-transform:uppercase}.correct-answer{background:#fef2f2;border-radius:6px;font-size:.95rem;margin-bottom:.75rem;padding:.75rem 1rem}.sr-feedback{align-items:center;background:#00000008;border-radius:8px;display:flex;gap:1rem;justify-content:center;margin:1rem 0;padding:.75rem}.rating-badge{border-radius:9999px;font-size:.75rem;font-weight:700;padding:.25rem .75rem;text-transform:uppercase}.rating-badge.rating-easy{background:#dcfce7;color:#166534}.rating-badge.rating-good{background:#dbeafe;color:#1e40af}.rating-badge.rating-hard{background:#fef3c7;color:#92400e}.rating-badge.rating-again{background:#fee2e2;color:#991b1b}.next-review{color:#4b5563;color:var(--gray-600);font-size:.875rem}.review-page{margin:0 auto;max-width:800px}.review-page h1{margin-bottom:.5rem}.review-subtitle{color:#4b5563;color:var(--gray-600);margin-bottom:2rem}.sr-stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:2rem}.sr-stat-card{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:1.25rem;text-align:center}.sr-stat-card.sr-highlight{background:#3b82f6;background:var(--primary);color:#fff}.sr-stat-card.sr-highlight .sr-stat-label{color:#fffc}.sr-stat-value{font-size:2rem;font-weight:700}.sr-stat-label{color:#4b5563;color:var(--gray-600);font-size:.875rem;margin-top:.25rem}.review-actions{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}.review-action-btn{align-items:center;background:#fff;border:2px solid #e5e7eb;border:2px solid var(--gray-200);border-radius:12px;color:#1f2937;color:var(--gray-800);display:flex;justify-content:space-between;padding:1.25rem 1.5rem;text-decoration:none;transition:all .2s}.review-action-btn:hover{border-color:#3b82f6;border-color:var(--primary);transform:translateX(4px)}.review-action-btn.primary{background:#3b82f6;background:var(--primary);border-color:#3b82f6;border-color:var(--primary);color:#fff}.review-action-btn.primary:hover{background:#2563eb;background:var(--primary-dark)}.action-info{align-items:flex-start;display:flex;flex-direction:column}.action-title{font-size:1.1rem;font-weight:600}.action-desc{font-size:.875rem;opacity:.8}.action-arrow{font-size:1.5rem}.card-states{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;margin:2rem 0}.card-state{align-items:center;display:flex;flex-direction:column;gap:.25rem}.state-count{font-size:1.5rem;font-weight:600}.state-label{font-size:.75rem;text-transform:uppercase}.state-label,.state-new{color:#4b5563;color:var(--gray-600)}.state-learning{color:#eab308;color:var(--warning)}.state-review{color:#3b82f6;color:var(--primary)}.state-relearning{color:#ef4444;color:var(--error)}.retention-display{background:#fff;border-radius:12px;margin-top:1rem;padding:1.5rem;text-align:center}.retention-value{color:#22c55e;color:var(--success);font-size:2.5rem;font-weight:700}.retention-label{color:#4b5563;color:var(--gray-600);font-size:.875rem}.session-stats-card{background:#fff}.session-stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.session-stat{align-items:center;background:#f3f4f6;background:var(--gray-100);border-radius:8px;display:flex;flex-direction:column;padding:.75rem}.session-stat-value{color:#3b82f6;color:var(--primary);font-size:1.5rem;font-weight:700}.session-stat-label{color:#4b5563;color:var(--gray-600);font-size:.75rem;text-transform:uppercase}.lo-card{grid-column:1/-1}.lo-progress-card{width:100%}.lo-progress-card h3{color:#1f2937;color:var(--gray-800);font-size:1.1rem;margin-bottom:1.25rem}.lo-progress-card.loading{color:#4b5563;color:var(--gray-600);padding:2rem;text-align:center}.lo-summary{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem}.lo-summary .summary-item{align-items:center;border-radius:8px;display:flex;flex-direction:column;min-width:80px;padding:.75rem 1.25rem}.lo-summary .summary-item .count{font-size:1.5rem;font-weight:700}.lo-summary .summary-item .label{font-size:.75rem;opacity:.9;text-transform:uppercase}.lo-summary .summary-item.mastered{background:#dcfce7;color:#166534}.lo-summary .summary-item.proficient{background:#dbeafe;color:#1e40af}.lo-summary .summary-item.learning{background:#fef3c7;color:#92400e}.lo-summary .summary-item.struggling{background:#fee2e2;color:#991b1b}.lo-units{display:flex;flex-direction:column;gap:.5rem}.lo-unit{border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:8px;overflow:hidden}.unit-header-btn{align-items:center;background:#f3f4f6;background:var(--gray-100);border:none;cursor:pointer;display:flex;gap:1rem;justify-content:space-between;padding:1rem;text-align:left;transition:background .2s;width:100%}.unit-header-btn:hover{background:#e5e7eb;background:var(--gray-200)}.unit-header-btn .unit-name{color:#1f2937;color:var(--gray-800);flex:1 1;font-weight:600}.unit-header-btn .unit-stats{color:#4b5563;color:var(--gray-600);font-size:.875rem}.unit-header-btn .expand-icon{color:#4b5563;color:var(--gray-600);font-size:.75rem}.lo-list{background:#fff;display:flex;flex-direction:column;gap:.75rem;padding:1rem}.lo-item{background:#f3f4f6;background:var(--gray-100);border-left:4px solid #d1d5db;border-left:4px solid var(--gray-300);border-radius:8px;padding:.75rem 1rem}.lo-item.mastered{border-left-color:#22c55e}.lo-item.proficient{border-left-color:#3b82f6}.lo-item.learning{border-left-color:#eab308}.lo-item.struggling{border-left-color:#ef4444}.lo-item.not_started{border-left-color:#9ca3af}.lo-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.lo-code{color:#1f2937;color:var(--gray-800);font-size:.875rem;font-weight:600}.lo-status{border-radius:4px;color:#fff;font-size:.7rem;font-weight:600;padding:.25rem .5rem;text-transform:uppercase}.lo-description{color:#4b5563;color:var(--gray-600);font-size:.875rem;line-height:1.4;margin-bottom:.75rem}.lo-stats{align-items:center;display:flex;gap:.75rem}.lo-accuracy-bar{background:#e5e7eb;background:var(--gray-200);border-radius:3px;flex:1 1;height:6px;overflow:hidden}.lo-accuracy-fill{border-radius:3px;height:100%;transition:width .3s}.lo-accuracy-text{color:#4b5563;color:var(--gray-600);font-size:.75rem;font-weight:600;white-space:nowrap}.lo-not-attempted{color:var(--gray-500);font-size:.75rem;font-style:italic}.dashboard-grid:not(.streamlined) .misconception-card{grid-column:1/-1}.misconception-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.25rem}.misconception-report h3{color:#1f2937;color:var(--gray-800);font-size:1.1rem;margin:0}.practice-weak-btn{background:linear-gradient(135deg,#f97316,#ea580c);border:none;border-radius:8px;box-shadow:0 2px 4px #f973164d;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:.625rem 1.25rem;transition:all .2s}.practice-weak-btn:hover{background:linear-gradient(135deg,#ea580c,#c2410c);box-shadow:0 4px 8px #f9731666;transform:translateY(-1px)}.misconception-report h4{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);color:var(--gray-700);font-size:.95rem;margin:1rem 0 .75rem;padding-bottom:.5rem}.misconception-report.empty,.misconception-report.loading{color:#4b5563;color:var(--gray-600);padding:2rem;text-align:center}.misconception-report .no-data{color:#22c55e;color:var(--success);font-weight:500}.recommendations-section{background:#f0f9ff;border-radius:8px;margin-bottom:1rem;padding:1rem}.recommendations-section h4{border:none;color:#0369a1;margin-top:0;padding:0}.recommendations-list{margin:0;padding-left:1.25rem}.recommendations-list li{color:var(--gray-700);margin:.5rem 0}.misconception-list{display:flex;flex-direction:column;gap:.5rem}.misconception-item{align-items:center;background:#fef2f2;border-left:3px solid #ef4444;border-radius:6px;display:flex;gap:.75rem;padding:.5rem .75rem}.misconception-count{color:#dc2626;font-weight:700;min-width:30px}.misconception-desc{color:var(--gray-700);font-size:.875rem}.lo-mistake-list{display:flex;flex-direction:column;gap:.5rem}.lo-mistake-item{border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:8px;overflow:hidden}.lo-mistake-header{align-items:center;background:#f3f4f6;background:var(--gray-100);border:none;cursor:pointer;display:flex;gap:1rem;justify-content:space-between;padding:.75rem 1rem;text-align:left;width:100%}.lo-mistake-header:hover{background:#e5e7eb;background:var(--gray-200)}.lo-mistake-header .lo-code{color:#1f2937;color:var(--gray-800);font-weight:600}.lo-mistake-count{color:#dc2626;font-size:.875rem;font-weight:500}.lo-examples{background:#fff;border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200);padding:.75rem 1rem}.mistake-example{background:var(--gray-50);border-radius:6px;margin-bottom:.75rem;padding:.75rem}.mistake-example:last-child{margin-bottom:0}.example-prompt{color:var(--gray-700);font-size:.875rem;margin-bottom:.5rem}.example-answers{display:flex;flex-wrap:wrap;font-size:.8rem;gap:1rem}.wrong-answer{color:#dc2626}.correct-answer{color:#16a34a}.example-answers code{background:#e5e7eb;background:var(--gray-200);border-radius:3px;font-family:monospace;padding:.125rem .375rem}.example-misconception{color:#b45309;font-size:.8rem;font-style:italic;margin-top:.5rem}.recent-list{display:flex;flex-direction:column;gap:.75rem}.recent-mistake{background:var(--gray-50);border-left:3px solid #f97316;border-radius:8px;padding:.75rem}.recent-mistake-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.recent-lo{color:var(--gray-700);font-size:.875rem;font-weight:600}.recent-date{color:var(--gray-500);font-size:.75rem}.recent-prompt{color:#4b5563;color:var(--gray-600);font-size:.875rem;margin-bottom:.5rem}.recent-answers{display:flex;flex-wrap:wrap;font-size:.8rem;gap:1rem}.recent-answers .wrong{color:#dc2626}.recent-answers .correct{color:#16a34a}.total-mistakes{color:var(--gray-500);font-size:.75rem;margin-top:1rem;text-align:right}.error-patterns-section{margin-bottom:1.25rem}.error-patterns-section h4,.recent-mistakes-section h4{color:var(--gray-500);font-size:.85rem;font-weight:600;letter-spacing:.025em;margin-bottom:.5rem;text-transform:uppercase}.pattern-list{display:flex;flex-direction:column;gap:.375rem}.pattern-item{align-items:flex-start;background:#fef2f2;border-radius:6px;display:flex;font-size:.875rem;gap:.5rem;padding:.5rem}.pattern-count{color:#dc2626;font-weight:700;min-width:28px}.pattern-desc{color:var(--gray-700);line-height:1.4}.mistakes-list{display:flex;flex-direction:column;gap:.5rem}.mistake-item{background:var(--gray-50);border-left:3px solid #f97316;border-radius:8px;padding:.75rem}.mistake-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.375rem}.mistake-lo{color:var(--gray-700);font-size:.8rem;font-weight:600}.mistake-date{color:var(--gray-400);font-size:.7rem}.mistake-prompt{color:#4b5563;color:var(--gray-600);font-size:.875rem;line-height:1.4;margin-bottom:.375rem}.mistake-answers{display:flex;flex-wrap:wrap;font-size:.8rem;gap:.75rem}.answer-wrong{color:#dc2626}.answer-correct{color:#16a34a}.total-count{color:var(--gray-400);font-size:.7rem;margin-top:1rem;text-align:right}.practice-page.remediation-mode{background:linear-gradient(180deg,#fff7ed,#fff)}.practice-page.remediation-mode .practice-header{border-bottom:2px solid #f97316}.remediation-icon{margin-right:.5rem}.remediation-info-bar{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;margin-top:.75rem;padding:.75rem 1rem}.remediation-focus{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.remediation-focus .label{color:#c2410c;font-size:.875rem;font-weight:600}.focus-lo{align-items:center;background:#fff;border:1px solid #fdba74;border-radius:20px;color:#9a3412;display:inline-flex;font-size:.8rem;font-weight:500;gap:.25rem;padding:.25rem .625rem}.focus-lo .lo-accuracy{color:#c2410c;font-size:.7rem}.more-los{color:#9a3412;font-size:.8rem;font-style:italic}.remediation-badge{align-items:center;background:linear-gradient(135deg,#f97316,#ea580c);border-radius:4px;color:#fff;display:inline-flex;font-size:.7rem;font-weight:600;padding:.25rem .5rem;text-transform:uppercase}.remediation-message{color:#9a3412;font-size:1rem;margin-bottom:1.5rem}.remediation-mode .question-card{border-left:4px solid #f97316}.remediation-mode .session-complete h2{color:#c2410c}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes successPop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes progressGrow{0%{width:0}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes confetti{0%{opacity:1;transform:translateY(0) rotate(0deg)}to{opacity:0;transform:translateY(-100px) rotate(2turn)}}.result-box.correct{animation:fadeInScale .3s ease-out}.result-box.correct .result-header{animation:successPop .4s ease-out}.result-box.incorrect{animation:shake .5s ease-out,fadeIn .3s ease-out}.question-card{animation:fadeInUp .4s ease-out}.session-complete{animation:fadeInScale .5s ease-out}.session-complete .complete-icon{animation:bounce .6s ease-out .3s}.session-complete .stat-value{animation:fadeInUp .4s ease-out backwards}.session-complete .stat-box:first-child .stat-value{animation-delay:.2s}.session-complete .stat-box:nth-child(2) .stat-value{animation-delay:.3s}.session-complete .stat-box:nth-child(3) .stat-value{animation-delay:.4s}.gate-progress-fill,.lo-accuracy-fill,.mastery-fill,.progress-fill{animation:progressGrow .5s ease-out}.continue-btn,.next-btn,.primary-btn,.submit-btn{transition:all .2s ease}.continue-btn:hover,.next-btn:hover,.primary-btn:hover,.submit-btn:hover:not(:disabled){box-shadow:0 4px 12px #3b82f64d;transform:translateY(-2px)}.next-btn:active,.primary-btn:active,.submit-btn:active:not(:disabled){transform:translateY(0)}.hint-box{animation:fadeInUp .3s ease-out}.rating-badge{animation:fadeInScale .3s ease-out .2s backwards}.lesson-card{transition:all .2s ease}.lesson-card:hover{box-shadow:0 8px 25px #0000001f;transform:translateY(-4px)}.unit-card{transition:all .2s ease}.unit-card:hover:not(.locked){box-shadow:0 8px 25px #0000001f;transform:translateY(-4px)}.dashboard-card{animation:fadeInUp .4s ease-out backwards}.dashboard-grid .dashboard-card:first-child{animation-delay:.1s}.dashboard-grid .dashboard-card:nth-child(2){animation-delay:.15s}.dashboard-grid .dashboard-card:nth-child(3){animation-delay:.2s}.dashboard-grid .dashboard-card:nth-child(4){animation-delay:.25s}.answer-section input{transition:all .2s ease}.answer-section input:focus{box-shadow:0 0 0 4px #3b82f61a;transform:scale(1.01)}.loading{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb 50%,#f3f4f6 75%);background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-200) 50%,var(--gray-100) 75%);background-size:200% 100%}.loading-spinner{animation:spin .8s ease-in-out infinite;border:2px solid #ffffff4d;border-top-color:#fff;display:inline-block;height:16px;width:16px}.skeleton{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 50%,#e5e7eb 75%);background:linear-gradient(90deg,var(--gray-200) 25%,var(--gray-100) 50%,var(--gray-200) 75%);background-size:200% 100%;border-radius:4px}.skeleton-text{height:1em;margin:.5em 0}.skeleton-title{height:1.5em;margin-bottom:1em;width:60%}.skeleton-button{border-radius:8px;height:44px;width:120px}.keyboard-hint{align-items:center;color:var(--gray-500);display:inline-flex;font-size:.75rem;gap:.5rem;margin-top:.5rem}.kbd{background:#f3f4f6;background:var(--gray-100);border:1px solid #d1d5db;border:1px solid var(--gray-300);border-radius:4px;box-shadow:0 1px 2px #0000001a;display:inline-block;font-family:monospace;font-size:.7rem;padding:.125rem .5rem}.shortcuts-help{animation:fadeInUp .3s ease-out;background:#fff;border-radius:8px;bottom:1rem;box-shadow:0 4px 12px #00000026;font-size:.8rem;padding:.75rem 1rem;position:fixed;right:1rem;z-index:100}.shortcuts-help h4{color:var(--gray-700);font-size:.875rem;margin:0 0 .5rem}.shortcut-row{display:flex;gap:1rem;justify-content:space-between;padding:.25rem 0}.shortcut-row .kbd{margin-left:auto}@media (max-width:768px){.app-header{flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem}.app-header h1{font-size:1.25rem}.app-header nav{display:flex;gap:1rem;justify-content:center;width:100%}.app-header nav a{font-size:.9rem;margin-left:0}.app-main{padding:1rem}.dashboard-grid,.units-grid{grid-template-columns:1fr}.lessons-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.question-card{border-radius:8px;margin:0 -.5rem;padding:1.5rem}.question-prompt{font-size:1.1rem}.session-summary{gap:1rem}.stat-value{font-size:2rem}.practice-header-top{align-items:flex-start;flex-direction:column;gap:.5rem}.session-stats{text-align:center;width:100%}.action-buttons{flex-direction:column}.hint-btn,.submit-btn{width:100%}.gate-info{gap:1rem}.info-value{font-size:1.5rem}.sr-stats-grid{grid-template-columns:repeat(2,1fr)}.review-action-btn{padding:1rem}.action-title{font-size:1rem}.lesson-select-header{align-items:flex-start;flex-direction:column;gap:.75rem}.lesson-select-header h1{font-size:1.25rem}.remediation-focus{align-items:flex-start;flex-direction:column}.lo-summary{justify-content:center}.lo-summary .summary-item{flex:1 1;min-width:70px;padding:.5rem}.lo-summary .summary-item .count{font-size:1.25rem}.misconception-header{align-items:flex-start;flex-direction:column;gap:.75rem}.practice-weak-btn{width:100%}.adaptive-details{font-size:.8rem}.mastered-list,.struggling-list{align-items:flex-start;flex-direction:column}.calendar-grid{overflow-x:auto;padding-bottom:.5rem}.calendar-day{min-width:24px}.lo-cells{overflow-x:auto;padding-bottom:.5rem}}@media (max-width:480px){.app-header{padding:.5rem .75rem}.app-header h1{font-size:1.1rem}.app-header nav a{font-size:.8rem;padding:.25rem .5rem}.app-main{padding:.75rem}.question-card{margin:0;padding:1rem}.question-header{align-items:flex-start;flex-direction:column;gap:.5rem}.question-prompt{font-size:1rem;line-height:1.6}.answer-section input{font-size:1rem;padding:.875rem}.next-btn,.primary-btn,.submit-btn{font-size:.95rem;padding:.875rem 1.5rem}.result-box{padding:1rem}.result-header{font-size:1.1rem}.explanation{font-size:.9rem}.sr-feedback{flex-direction:column;gap:.5rem}.session-complete{padding:1.5rem 1rem}.session-complete h2{font-size:1.25rem}.session-summary{flex-direction:column;gap:.75rem}.stat-box{background:#f3f4f6;background:var(--gray-100);border-radius:8px;flex-direction:row;justify-content:space-between;padding:.5rem 1rem;width:100%}.stat-value{font-size:1.5rem}.complete-actions{gap:.5rem}.secondary-btn{font-size:.8rem;padding:.625rem 1rem}.lessons-grid{grid-template-columns:1fr}.gate-intro,.lesson-card{padding:1rem}.gate-info{flex-direction:column;gap:.75rem}.start-gate-button{font-size:1.1rem;padding:.875rem 2rem;width:100%}.gate-warning{font-size:.9rem;padding:1rem}.sr-stats-grid{gap:.5rem;grid-template-columns:1fr 1fr}.sr-stat-card{padding:.875rem}.sr-stat-value{font-size:1.5rem}.sr-stat-label{font-size:.75rem}.card-states{gap:.75rem}.state-count{font-size:1.25rem}.dashboard-header{align-items:flex-start;flex-direction:column;gap:1rem}.dashboard-card{padding:1rem}.dashboard-card h3{font-size:.9rem}.progress-ring svg{height:80px!important;width:80px!important}.streak-header{font-size:1rem}.due-reviews-badge{font-size:.875rem;padding:.375rem .75rem}.unit-header h4{font-size:.9rem}.unit-footer{flex-direction:column;gap:.5rem}.keyboard-hint,.shortcuts-help{display:none}}@media (hover:none) and (pointer:coarse){.back-btn,.hint-btn,.lesson-link{min-height:44px;min-width:44px}.choice-button{min-height:54px;padding:1.25rem}.lesson-card:hover,.unit-card:hover:not(.locked){transform:none}.lesson-card:active,.unit-card:active:not(.locked){transform:scale(.98)}.next-btn:active,.primary-btn:active,.submit-btn:active:not(:disabled){box-shadow:none;transform:scale(.98)}}@media (max-width:768px) and (orientation:landscape){.session-complete{padding:1rem}.session-complete .complete-icon{font-size:2.5rem}.session-summary{flex-direction:row;justify-content:space-around}.stat-box{flex-direction:column}.gate-intro{padding:1rem}.gate-info{flex-direction:row}}@media print{.action-buttons,.app-header,.back-link,.complete-actions,.keyboard-hint,.shortcuts-help{display:none!important}.question-card,.session-complete{border:1px solid #d1d5db;border:1px solid var(--gray-300);box-shadow:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.ai-help-panel{animation:fadeInUp .3s ease-out;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:12px;margin-top:1.5rem;padding:1rem}.ai-help-panel.ai-help-expanded{background:#fff;border-color:#e5e7eb;border-color:var(--gray-200)}.ai-help-header{align-items:center;display:flex;gap:.75rem;margin-bottom:.75rem}.ai-badge{align-items:center;background:linear-gradient(135deg,#8b5cf6,#6366f1);border-radius:9999px;color:#fff;display:inline-flex;font-size:.75rem;font-weight:600;gap:.375rem;letter-spacing:.025em;padding:.25rem .625rem;text-transform:uppercase}.ai-badge:before{content:"✨";font-size:.625rem}.ai-model{background:#f3f4f6;background:var(--gray-100);border-radius:4px;color:var(--gray-500);font-size:.7rem;padding:.125rem .5rem}.ai-back-btn{background:none;border:1px solid #d1d5db;border:1px solid var(--gray-300);border-radius:6px;color:#4b5563;color:var(--gray-600);cursor:pointer;font-size:.8rem;margin-left:auto;padding:.25rem .75rem;transition:all .2s}.ai-back-btn:hover{background:#f3f4f6;background:var(--gray-100);border-color:var(--gray-400)}.ai-close-btn{background:none;border:none;color:var(--gray-400);cursor:pointer;font-size:1.25rem;line-height:1;padding:.25rem .5rem}.ai-close-btn:hover{color:#4b5563;color:var(--gray-600)}.ai-help-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.ai-btn{align-items:center;background:#fff;border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:8px;color:var(--gray-700);cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.625rem 1rem;transition:all .2s}.ai-btn:hover{background:var(--gray-50);border-color:#d1d5db;border-color:var(--gray-300);box-shadow:0 2px 8px #00000014;transform:translateY(-1px)}.ai-btn:active{transform:translateY(0)}.ai-btn-icon{font-size:1rem}.ai-btn.explain-btn:hover{background:#faf5ff;border-color:#a78bfa}.ai-btn.example-btn:hover{background:#eff6ff;border-color:#60a5fa}.ai-btn.hint-btn:hover{background:#fffbeb;border-color:#fbbf24}.ai-btn.dialogue-btn:hover{background:#ecfdf5;border-color:#34d399}.ai-loading{align-items:center;color:#4b5563;color:var(--gray-600);display:flex;gap:.75rem;justify-content:center;padding:2rem}.ai-loading-spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border:3px solid var(--gray-200);border-radius:50%;border-top:3px solid #8b5cf6;height:24px;width:24px}.ai-error{align-items:center;background:#fef2f2;border-radius:8px;color:#dc2626;display:flex;font-size:.875rem;gap:.5rem;padding:1rem}.ai-error .error-icon{font-size:1.25rem}.ai-content{padding:.5rem 0}.ai-content h4{align-items:center;color:#1f2937;color:var(--gray-800);display:flex;font-size:1rem;gap:.5rem;margin:0 0 1rem}.ai-content h4:before{content:"✨";font-size:.875rem}.ai-text{color:var(--gray-700);font-size:.95rem;line-height:1.7;white-space:pre-wrap}.explain-content h4:before{content:"📖"}.example-content h4:before{content:"📝"}.example-content .ai-text{background:var(--gray-50);border-left:3px solid #3b82f6;border-radius:8px;padding:1rem}.hint-content h4:before{content:"💡"}.hint-content .ai-text{background:#fef3c7;border-radius:8px;padding:1rem}.dialogue-content h4:before{content:"💬"}.dialogue-messages{background:var(--gray-50);border-radius:8px;margin-bottom:1rem;max-height:300px;overflow-y:auto;padding:.5rem}.dialogue-intro{color:#4b5563;color:var(--gray-600);font-style:italic;padding:1rem;text-align:center}.dialogue-message{animation:fadeInUp .3s ease-out;border-radius:12px;margin-bottom:1rem;padding:.75rem 1rem}.dialogue-message:last-child{margin-bottom:0}.dialogue-message.student{background:#dbeafe;border-bottom-right-radius:4px;margin-left:1rem}.dialogue-message.tutor{background:#fff;border-bottom-left-radius:4px;box-shadow:0 1px 3px #0000000d;margin-right:1rem}.message-role{color:var(--gray-500);display:block;font-size:.7rem;font-weight:600;margin-bottom:.25rem;text-transform:uppercase}.message-content{color:#1f2937;color:var(--gray-800);font-size:.9rem;line-height:1.5}.dialogue-input-area{display:flex;gap:.5rem}.dialogue-input-area input{border:2px solid #e5e7eb;border:2px solid var(--gray-200);border-radius:8px;flex:1 1;font-size:.9rem;padding:.75rem 1rem}.dialogue-input-area input:focus{border-color:#8b5cf6;outline:none}.dialogue-send-btn{background:linear-gradient(135deg,#8b5cf6,#6366f1);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.25rem;transition:all .2s}.dialogue-send-btn:hover:not(:disabled){box-shadow:0 4px 12px #8b5cf64d;transform:translateY(-1px)}.dialogue-send-btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.ai-help-panel{margin-top:1rem;padding:.75rem}.ai-help-buttons{flex-direction:column}.ai-btn{justify-content:center;width:100%}.dialogue-messages{max-height:200px}.dialogue-input-area{flex-direction:column}.dialogue-send-btn{width:100%}}@media (max-width:480px){.ai-help-header{flex-wrap:wrap;gap:.5rem}.ai-back-btn{margin-left:0;margin-top:.5rem;order:3;text-align:center;width:100%}.ai-model{display:none}}.gate-readiness-card{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:1.5rem}.gate-readiness-card h3{color:#1f2937;color:var(--gray-800);margin-bottom:1rem}.gate-readiness-card.loading{align-items:center;color:#4b5563;color:var(--gray-600);display:flex;flex-direction:column;justify-content:center;min-height:200px}.readiness-content{align-items:center;display:flex;gap:1.5rem;margin-bottom:1.5rem}.circular-progress{flex-shrink:0}.readiness-info{flex:1 1}.readiness-label{display:block;font-size:1.25rem;font-weight:600;margin-bottom:.25rem}.estimated-days{display:block;font-size:.875rem;margin-bottom:.5rem}.estimated-days,.readiness-message{color:#4b5563;color:var(--gray-600)}.readiness-message{font-size:.9rem}.weak-areas{background:#0000000d;border-radius:8px;margin-bottom:1rem;padding:1rem}.weak-areas h4{color:#4b5563;color:var(--gray-600);font-size:.875rem;margin-bottom:.5rem}.weak-areas ul{list-style:none}.weak-areas li{display:flex;font-size:.875rem;justify-content:space-between;padding:.25rem 0}.weak-areas .lo-code{font-weight:500}.weak-areas .lo-accuracy{color:#ef4444;color:var(--error)}.breakdown-toggle{background:none;border:none;color:#3b82f6;color:var(--primary);cursor:pointer;font-size:.875rem;margin-bottom:1rem;padding:0}.breakdown-toggle:hover{text-decoration:underline}.score-breakdown{margin-bottom:1rem}.breakdown-item{margin-bottom:.75rem}.breakdown-header{display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:.25rem}.breakdown-name{font-weight:500}.breakdown-score{color:#4b5563;color:var(--gray-600)}.breakdown-weight{color:var(--gray-400);font-size:.75rem;margin-left:.25rem}.breakdown-bar{background:#e5e7eb;background:var(--gray-200);border-radius:3px;height:6px;margin-bottom:.25rem;overflow:hidden}.breakdown-fill{border-radius:3px;height:100%;transition:width .3s ease}.breakdown-details{color:var(--gray-500);font-size:.75rem}.gate-readiness-card .action-button{border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem;transition:opacity .2s;width:100%}.gate-readiness-card .action-button:hover{opacity:.9}.knowledge-gaps-card{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:1.5rem}.knowledge-gaps-card.empty,.knowledge-gaps-card.loading{display:flex;flex-direction:column;min-height:150px}.knowledge-gaps-card .no-gaps{align-items:center;color:#4b5563;color:var(--gray-600);display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:center}.knowledge-gaps-card .success-icon{color:#22c55e;color:var(--success);font-size:2rem;margin-bottom:.5rem}.knowledge-gaps-card .subtitle{color:var(--gray-400);font-size:.875rem}.gaps-header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:1rem}.gaps-header h3{margin:0}.severity-summary{display:flex;gap:.5rem}.severity-badge{border-radius:4px;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.severity-badge.high{background:#fef2f2;color:#ef4444}.severity-badge.medium{background:#fff7ed;color:#f97316}.severity-badge.low{background:#fefce8;color:#eab308}.gaps-list{list-style:none;margin:0;padding:0}.gap-item{border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:8px;margin-bottom:.5rem;overflow:hidden}.gap-item.high{border-left:3px solid #ef4444}.gap-item.medium{border-left:3px solid #f97316}.gap-item.low{border-left:3px solid #eab308}.gap-main{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:.75rem 1rem}.gap-main:hover{background:#f3f4f6;background:var(--gray-100)}.gap-header{align-items:center;display:flex;gap:.5rem}.severity-indicator{border-radius:50%;height:8px;width:8px}.gap-header .lo-code{font-weight:600}.trend-indicator{font-size:.875rem;font-weight:700}.gap-stats{align-items:center;display:flex;font-size:.875rem;gap:.5rem}.gap-stats .accuracy{color:#1f2937;color:var(--gray-800);font-weight:600}.gap-stats .attempts{color:var(--gray-500)}.gap-stats .expand-icon{color:var(--gray-400);font-size:.75rem}.gap-details{background:#f3f4f6;background:var(--gray-100);border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200);padding:1rem}.gap-details .description{color:#4b5563;color:var(--gray-600);margin-bottom:.75rem}.gap-details .detail-row{display:flex;font-size:.875rem;gap:.5rem;margin-bottom:.5rem}.gap-details .label{color:var(--gray-500)}.gap-details .value{font-weight:500}.error-patterns{margin-top:.75rem}.error-patterns .label{color:var(--gray-500);display:block;font-size:.875rem;margin-bottom:.25rem}.error-patterns ul{color:#4b5563;color:var(--gray-600);font-size:.875rem;list-style:disc;padding-left:1.25rem}.error-patterns li{margin-bottom:.25rem}.practice-button{background:#3b82f6;background:var(--primary);border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;margin-top:.75rem;padding:.5rem;width:100%}.practice-button:hover{background:#2563eb;background:var(--primary-dark)}.priority-notice{background:#fef2f2;border-radius:6px;color:#991b1b;font-size:.875rem;margin-top:1rem;padding:.75rem}.study-recommendations{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:1.5rem}.study-recommendations.empty,.study-recommendations.loading{min-height:150px}.study-recommendations .no-recommendations{align-items:center;color:#4b5563;color:var(--gray-600);display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:2rem 0;text-align:center}.study-recommendations h3{margin-bottom:1rem}.recommendations-list{display:flex;flex-direction:column;gap:.75rem}.recommendation-card{border-left:4px solid;border-radius:8px;cursor:pointer;padding:1rem;transition:transform .2s,box-shadow .2s}.recommendation-card:hover{box-shadow:0 2px 8px #0000001a;transform:translateX(4px)}.rec-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.rec-icon{font-size:1.25rem}.rec-priority{color:var(--gray-400);font-size:.75rem;font-weight:600}.rec-title{color:#1f2937;color:var(--gray-800);font-size:1rem;font-weight:600;margin:0 0 .25rem}.rec-description{color:#4b5563;color:var(--gray-600);font-size:.875rem;margin:0 0 .75rem}.rec-footer{align-items:center;display:flex;justify-content:space-between}.rec-time{color:var(--gray-500);font-size:.75rem}.rec-action-btn{border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.375rem .75rem;transition:opacity .2s}.rec-action-btn:hover{opacity:.9}.weekly-summary-card{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:1.5rem}.weekly-summary-card.loading{align-items:center;display:flex;justify-content:center;min-height:150px}.weekly-summary-card.not-loaded{min-height:200px}.summary-placeholder{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:1rem;text-align:center}.summary-placeholder .calendar-icon{font-size:2.5rem;margin-bottom:.5rem}.summary-placeholder p{color:#4b5563;color:var(--gray-600);margin-bottom:.25rem}.summary-placeholder .subtitle{color:var(--gray-400);font-size:.875rem;margin-bottom:1rem}.generate-btn{background:#3b82f6;background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:background .2s}.generate-btn:hover:not(:disabled){background:#2563eb;background:var(--primary-dark)}.generate-btn:disabled{background:#d1d5db;background:var(--gray-300);cursor:not-allowed}.error-message{color:#ef4444;color:var(--error);font-size:.875rem;margin-top:.5rem}.summary-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.summary-header h3{margin:0}.refresh-btn{background:none;border:1px solid #d1d5db;border:1px solid var(--gray-300);border-radius:4px;color:#4b5563;color:var(--gray-600);cursor:pointer;font-size:1rem;padding:.25rem .5rem}.refresh-btn:hover:not(:disabled){background:#f3f4f6;background:var(--gray-100)}.refresh-btn:disabled{cursor:not-allowed;opacity:.5}.stats-grid{grid-gap:.5rem;background:#f3f4f6;background:var(--gray-100);border-radius:8px;display:grid;gap:.5rem;grid-template-columns:repeat(4,1fr);margin-bottom:1rem;padding:1rem}.stat-item{align-items:center;display:flex;flex-direction:column;text-align:center}.stat-value{color:#3b82f6;color:var(--primary);font-size:1.25rem;font-weight:700}.stat-label{color:var(--gray-500);font-size:.75rem}.summary-text{line-height:1.7;margin-bottom:1rem}.summary-text p{color:var(--gray-700);margin-bottom:.75rem}.summary-text p:last-child{margin-bottom:0}.focus-section,.highlights-section{margin-bottom:1rem}.focus-section h4,.highlights-section h4{color:var(--gray-500);font-size:.875rem;margin-bottom:.5rem}.focus-section ul,.highlights-section ul{list-style:none}.focus-item,.highlight{align-items:center;display:flex;font-size:.875rem;gap:.5rem;padding:.25rem 0}.focus-item .icon,.highlight .icon{font-size:.875rem}.highlight.positive{color:#22c55e;color:var(--success)}.focus-item{color:#eab308;color:var(--warning)}.due-notice{align-items:center;background:#fef3c7;border-radius:6px;color:#92400e;display:flex;font-size:.875rem;gap:.5rem;margin-bottom:1rem;padding:.75rem}.notice-icon{font-size:1rem}.summary-footer{border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200);margin-top:.5rem;padding-top:.75rem}.generated-at{color:var(--gray-400);font-size:.75rem}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-top-color:#3b82f6;border:3px solid var(--gray-200);border-radius:50%;border-top-color:var(--primary);height:24px;margin-bottom:.5rem;width:24px}@media (max-width:768px){.readiness-content{flex-direction:column;text-align:center}.stats-grid{grid-template-columns:repeat(2,1fr)}.gaps-header{align-items:flex-start;flex-direction:column}}.memory-strength-widget{padding:1rem}.memory-strength-widget.loading{align-items:center;display:flex;justify-content:center;min-height:200px}.memory-header{align-items:center;display:flex;gap:.5rem;margin-bottom:1rem}.memory-header h4{color:#1f2937;color:var(--gray-800);font-size:1rem;font-weight:600;margin:0}.memory-icon{font-size:1.25rem}.memory-stats{display:flex;gap:1.5rem;margin-bottom:1rem}.memory-main-stat{flex-shrink:0}.memory-ring{height:80px;width:80px}.memory-ring,.memory-ring-inner{align-items:center;border-radius:50%;display:flex;justify-content:center}.memory-ring-inner{background:#fff;flex-direction:column;height:60px;width:60px}.memory-percent{color:#1f2937;color:var(--gray-800);font-size:1.125rem;font-weight:700;line-height:1}.memory-label{color:var(--gray-500);font-size:.625rem;letter-spacing:.05em;text-transform:uppercase}.memory-details{display:flex;flex:1 1;flex-direction:column;gap:.375rem;justify-content:center}.memory-detail-row{align-items:center;display:flex;font-size:.8125rem;justify-content:space-between}.detail-label{color:var(--gray-500)}.detail-value{color:var(--gray-700);font-weight:600}.memory-cta{align-items:center;border-radius:8px;display:flex;gap:.5rem;padding:.75rem;text-decoration:none;transition:all .2s}.memory-cta.has-reviews{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;color:#1e40af;cursor:pointer}.memory-cta.has-reviews:hover{background:linear-gradient(135deg,#dbeafe,#bfdbfe);transform:translateY(-1px)}.memory-cta.all-done{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.cta-count{font-size:1.25rem;font-weight:700}.cta-text{flex:1 1;font-size:.875rem;font-weight:500}.cta-arrow{opacity:.7}.cta-arrow,.cta-icon{font-size:1rem}.memory-tip{color:var(--gray-500);font-size:.75rem;line-height:1.5;margin-top:.75rem}.timed-challenge-page{margin:0 auto;max-width:700px}.timed-challenge-page.intro{align-items:center;display:flex;justify-content:center;min-height:60vh}.challenge-intro{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000001a;max-width:500px;padding:2.5rem;text-align:center}.challenge-intro h1{color:#1f2937;color:var(--gray-800);font-size:2rem;margin-bottom:.5rem}.challenge-icon{font-size:3rem;margin-bottom:1.5rem}.challenge-rules,.challenge-tips{margin-bottom:1.5rem;text-align:left}.challenge-rules h3,.challenge-tips h3{color:var(--gray-700);font-size:1rem;margin-bottom:.75rem}.challenge-rules ul,.challenge-tips ul{list-style:none;padding:0}.challenge-rules li,.challenge-tips li{color:#4b5563;color:var(--gray-600);font-size:.9rem;padding:.375rem 0 .375rem 1.5rem;position:relative}.challenge-rules li:before{color:#3b82f6;color:var(--primary);content:"\2713";font-weight:700;left:0;position:absolute}.challenge-tips li:before{color:var(--gray-400);content:"\2022";left:.25rem;position:absolute}.start-challenge-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:10px;color:#fff;cursor:pointer;display:block;font-size:1.125rem;font-weight:600;margin-bottom:1rem;padding:1rem 2rem;transition:all .2s;width:100%}.start-challenge-btn:hover:not(:disabled){box-shadow:0 6px 20px #3b82f666;transform:translateY(-2px)}.start-challenge-btn:disabled{cursor:not-allowed;opacity:.6}.back-link{color:var(--gray-500);font-size:.9rem;text-decoration:none}.back-link:hover{color:#3b82f6;color:var(--primary)}.timed-challenge-page.active{padding-top:1rem}.challenge-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem;padding:1rem 1.5rem}.challenge-progress{flex:1 1;min-width:150px}.progress-text{color:#4b5563;color:var(--gray-600);display:block;font-size:.8rem;margin-bottom:.25rem}.progress-bar{background:#e5e7eb;background:var(--gray-200);border-radius:3px;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#3b82f6,#22c55e);border-radius:3px;height:100%;transition:width .3s ease}.challenge-timer{align-items:center;background:#f3f4f6;background:var(--gray-100);border-radius:8px;display:flex;gap:.5rem;padding:.5rem 1rem}.challenge-timer.low-time{animation:pulse 1s ease-in-out infinite;background:#fef2f2}.challenge-timer.low-time .timer-value{color:#dc2626}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.timer-icon{font-size:1rem}.timer-value{font-feature-settings:"tnum";color:#1f2937;color:var(--gray-800);font-size:1.25rem;font-variant-numeric:tabular-nums;font-weight:700}.challenge-score{align-items:baseline;display:flex;gap:.25rem}.score-correct{color:#22c55e;color:var(--success);font-size:1.5rem;font-weight:700}.score-divider{color:var(--gray-400)}.score-total{color:#4b5563;color:var(--gray-600);font-size:1.125rem;font-weight:600}.score-label{color:var(--gray-500);font-size:.75rem;margin-left:.25rem}.challenge-question-card{background:#fff;border-radius:16px;box-shadow:0 4px 12px #00000014;padding:2rem}.challenge-question-card .question-prompt{color:#1f2937;color:var(--gray-800);font-size:1.125rem;line-height:1.6;margin-bottom:1.5rem}.challenge-question-card .answer-section{align-items:stretch;display:flex;gap:.75rem}.challenge-question-card input{border:2px solid #e5e7eb;border:2px solid var(--gray-200);border-radius:10px;flex:1 1;font-size:1rem;padding:.875rem 1rem;transition:all .2s}.challenge-question-card input:focus{border-color:#3b82f6;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f626;outline:none}.challenge-question-card .submit-btn{background:#3b82f6;background:var(--primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;padding:.875rem 1.5rem;transition:all .2s;white-space:nowrap}.challenge-question-card .submit-btn:hover:not(:disabled){background:#2563eb;background:var(--primary-dark)}.challenge-question-card .submit-btn:disabled{cursor:not-allowed;opacity:.5}.challenge-question-card .keyboard-hint{margin-top:1rem;text-align:center}.timed-challenge-page.complete{padding-top:1rem}.challenge-results{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000001a;padding:2.5rem;text-align:center}.challenge-results h1{color:#1f2937;color:var(--gray-800);font-size:1.75rem;margin-bottom:1.5rem}.grade-display{align-items:center;background:#f3f4f6;background:var(--gray-100);border-radius:50%;display:flex;flex-direction:column;height:100px;justify-content:center;margin:0 auto 1.5rem;width:100px}.grade-display.grade-A{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.grade-display.grade-B{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.grade-display.grade-C{background:linear-gradient(135deg,#eab308,#ca8a04);color:#fff}.grade-display.grade-D{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff}.grade-display.grade-F{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.grade-letter{font-size:3rem;font-weight:800;line-height:1}.grade-label{font-size:.75rem;letter-spacing:.1em;opacity:.8;text-transform:uppercase}.results-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr);margin-bottom:1.5rem}.stat-card{background:var(--gray-50);border-radius:10px;padding:1rem}.stat-card .stat-value{color:#1f2937;color:var(--gray-800);display:block;font-size:1.5rem;font-weight:700}.stat-card .stat-label{color:var(--gray-500);font-size:.75rem;text-transform:uppercase}.achievement-banner{align-items:center;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:10px;display:flex;gap:.75rem;justify-content:center;margin-bottom:1.5rem;padding:1rem}.achievement-icon{font-size:1.5rem}.achievement-text{color:#92400e;font-weight:600}.results-breakdown{margin-bottom:1.5rem;text-align:left}.results-breakdown h3{color:var(--gray-700);font-size:1rem;margin-bottom:1rem}.breakdown-list{border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:10px;max-height:300px;overflow-y:auto}.breakdown-item{align-items:center;border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--gray-100);display:flex;gap:.75rem;padding:.75rem 1rem}.breakdown-item:last-child{border-bottom:none}.breakdown-num{align-items:center;background:#f3f4f6;background:var(--gray-100);border-radius:50%;color:#4b5563;color:var(--gray-600);display:flex;font-size:.75rem;font-weight:600;height:24px;justify-content:center;width:24px}.breakdown-icon{font-size:1rem}.breakdown-icon.correct{color:#22c55e;color:var(--success)}.breakdown-icon.incorrect{color:#ef4444;color:var(--error)}.breakdown-prompt{color:var(--gray-700);flex:1 1;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breakdown-answer{background:var(--gray-50);border-radius:4px;color:var(--gray-500);font-size:.75rem;padding:.25rem .5rem;white-space:nowrap}.results-actions{display:flex;gap:1rem;justify-content:center}.results-actions .primary-btn,.results-actions .secondary-btn{border-radius:10px;cursor:pointer;font-weight:600;padding:.875rem 1.5rem;text-decoration:none;transition:all .2s}.results-actions .primary-btn{background:#3b82f6;background:var(--primary);border:none;color:#fff}.results-actions .primary-btn:hover{background:#2563eb;background:var(--primary-dark)}.results-actions .secondary-btn{background:#fff;border:2px solid #e5e7eb;border:2px solid var(--gray-200);color:var(--gray-700)}.results-actions .secondary-btn:hover{background:var(--gray-50);border-color:#d1d5db;border-color:var(--gray-300)}.dashboard-card.full-width{grid-column:1/-1}@media (max-width:640px){.challenge-header{align-items:stretch;flex-direction:column}.challenge-progress{order:1}.challenge-timer{justify-content:center;order:0}.challenge-score{justify-content:center;order:2}.results-stats{grid-template-columns:repeat(2,1fr)}.challenge-question-card .answer-section,.results-actions{flex-direction:column}}.user-menu{align-items:center;display:flex;gap:1rem}.user-name{color:#1f2937;color:var(--gray-800);font-weight:500}.logout-button{background:#0000;border:1px solid #d1d5db;border:1px solid var(--gray-300);border-radius:6px;color:#4b5563;color:var(--gray-600);cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s}.logout-button:hover{border-color:var(--gray-400)}.app-loading,.logout-button:hover{background:#f3f4f6;background:var(--gray-100)}.app-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:100vh}.app-loading .loading-spinner{animation:spin .8s linear infinite;border:3px solid #e5e7eb;border-top-color:#3b82f6;border:3px solid var(--gray-200);border-radius:50%;border-top-color:var(--primary);height:48px;width:48px}@keyframes spin{to{transform:rotate(1turn)}}.desmos-section{border:1px solid #e5e7eb;border:1px solid var(--gray-200,#e5e7eb);border-radius:8px;margin:1rem 0;overflow:hidden}.desmos-container,.desmos-fallback{border-radius:8px}.desmos-fallback{background:#f9fafb;background:var(--gray-50,#f9fafb);color:#6b7280;color:var(--gray-500,#6b7280);padding:1.5rem;text-align:center}.desmos-fallback code{color:#374151;color:var(--gray-700,#374151);display:block;font-family:Courier New,monospace;margin:.5rem 0}.desmos-fallback a{color:#3b82f6;color:var(--primary,#6366f1);text-decoration:underline}.math-content .katex{font-size:1.1em}.math-content .katex-display{margin:.75rem 0}.math-error{background:#fef2f2;border-radius:3px;color:#dc2626;font-family:monospace;padding:.1rem .3rem}
/*# sourceMappingURL=main.512de470.css.map*/