/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@14.2.13_@playwright+test@1.60.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[2].use[1]!../../node_modules/.pnpm/next@14.2.13_@playwright+test@1.60.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[13].oneOf[2].use[2]!../../node_modules/.pnpm/next@14.2.13_@playwright+test@1.60.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/font/google/target.css?{"path":"app/layout.tsx","import":"Inter","arguments":[{"subsets":["latin"],"variable":"--font-inter"}],"variableName":"inter"} ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* cyrillic-ext */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/ba9851c3c22cd980-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/21350d82a1f187e9-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/df0a9ae256c0569c-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/8e9860b6e62d6359-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: '__Inter_Fallback_f367f3';src: local("Arial");ascent-override: 90.49%;descent-override: 22.56%;line-gap-override: 0.00%;size-adjust: 107.06%
}.__className_f367f3 {font-family: '__Inter_f367f3', '__Inter_Fallback_f367f3';font-style: normal
}.__variable_f367f3 {--font-inter: '__Inter_f367f3', '__Inter_Fallback_f367f3'
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@14.2.13_@playwright+test@1.60.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!../../node_modules/.pnpm/next@14.2.13_@playwright+test@1.60.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!../../node_modules/.pnpm/katex@0.17.0/node_modules/katex/dist/katex.min.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/_next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2) format("woff2"),url(/_next/static/media/KaTeX_AMS-Regular.1608a09b.woff) format("woff"),url(/_next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/_next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2) format("woff2"),url(/_next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff) format("woff"),url(/_next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/_next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2) format("woff2"),url(/_next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff) format("woff"),url(/_next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/_next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2) format("woff2"),url(/_next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff) format("woff"),url(/_next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/_next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2) format("woff2"),url(/_next/static/media/KaTeX_Fraktur-Regular.7c187121.woff) format("woff"),url(/_next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/_next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2) format("woff2"),url(/_next/static/media/KaTeX_Main-Bold.d181c465.woff) format("woff"),url(/_next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/_next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2) format("woff2"),url(/_next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff) format("woff"),url(/_next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/_next/static/media/KaTeX_Main-Italic.8916142b.woff2) format("woff2"),url(/_next/static/media/KaTeX_Main-Italic.9024d815.woff) format("woff"),url(/_next/static/media/KaTeX_Main-Italic.47373d1e.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/_next/static/media/KaTeX_Main-Regular.0462f03b.woff2) format("woff2"),url(/_next/static/media/KaTeX_Main-Regular.7f51fe03.woff) format("woff"),url(/_next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/_next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2) format("woff2"),url(/_next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff) format("woff"),url(/_next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/_next/static/media/KaTeX_Math-Italic.f28c23ac.woff2) format("woff2"),url(/_next/static/media/KaTeX_Math-Italic.5295ba48.woff) format("woff"),url(/_next/static/media/KaTeX_Math-Italic.939bc644.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/_next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2) format("woff2"),url(/_next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff) format("woff"),url(/_next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/_next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2) format("woff2"),url(/_next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff) format("woff"),url(/_next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/_next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2) format("woff2"),url(/_next/static/media/KaTeX_SansSerif-Regular.74048478.woff) format("woff"),url(/_next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/_next/static/media/KaTeX_Script-Regular.03e9641d.woff2) format("woff2"),url(/_next/static/media/KaTeX_Script-Regular.07505710.woff) format("woff"),url(/_next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/_next/static/media/KaTeX_Size1-Regular.eae34984.woff2) format("woff2"),url(/_next/static/media/KaTeX_Size1-Regular.e1e279cb.woff) format("woff"),url(/_next/static/media/KaTeX_Size1-Regular.fabc004a.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/_next/static/media/KaTeX_Size2-Regular.5916a24f.woff2) format("woff2"),url(/_next/static/media/KaTeX_Size2-Regular.57727022.woff) format("woff"),url(/_next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/_next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2) format("woff2"),url(/_next/static/media/KaTeX_Size3-Regular.9acaf01c.woff) format("woff"),url(/_next/static/media/KaTeX_Size3-Regular.a144ef58.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/_next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2) format("woff2"),url(/_next/static/media/KaTeX_Size4-Regular.7a996c9d.woff) format("woff"),url(/_next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/_next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2) format("woff2"),url(/_next/static/media/KaTeX_Typewriter-Regular.6258592b.woff) format("woff"),url(/_next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.17.0"}.katex .katex-mathml{border:0;clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@14.2.13_@playwright+test@1.60.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!../../node_modules/.pnpm/next@14.2.13_@playwright+test@1.60.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!./app/globals.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
*, ::before, ::after{
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop{
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

:root {
    /* Page shell background — dark enough for white cards to stand out */
    --background: 174 18% 93%;
    --foreground: 174 71% 4%;
    --card: 0 0% 100%;
    --card-foreground: 174 71% 4%;
    --popover: 0 0% 100%;
    --popover-foreground: 174 71% 4%;
    /* Verdant Teal — Growth, Balance, Calm Focus */
    --primary: 174 60% 28%;
    --primary-foreground: 0 0% 100%;
    --secondary: 174 40% 94%;
    --secondary-foreground: 174 60% 15%;
    --muted: 174 20% 95%;
    --muted-foreground: 174 10% 46%;
    --accent: 174 40% 94%;
    --accent-foreground: 174 60% 15%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 210 40% 98%;
    /* ── destructive as INK ──
       `--destructive` is the shadcn default, and in dark it is `0 62.8% 30.6%`:
       a colour designed as a SURFACE to put light text on. Used as a stroke, a
       fill or a glyph it measures 1.71:1 against the dark card, which put the
       incorrect state — the one mark a learner has to find — below the correct
       one. This role is the ink form of the same meaning: light aliases
       `--destructive` unchanged, dark takes its own step clearing 4.5:1 on the
       card. `--destructive` itself keeps every surface consumer it already has
       (`bg-destructive/10` banners, `bg-destructive/15` table cells), which
       still want the darker step behind foreground text. */
    --destructive-ink: var(--destructive);
    --border: 174 20% 88%;
    --input: 174 20% 88%;
    /* Stable learner-control boundaries; unlike --input, these are tuned for
       non-text contrast against the active --card surface. */
    --control-border: 174 35% 44%;
    --control-border-hover: 174 45% 34%;
    /* Supporting text on and around a live control: a placeholder inside the
       field, the secondary action beside the primary one. `--muted-foreground`
       is the wrong token for these — it is tuned for text on a card and reaches
       only 4.15:1 there and 3.60:1 on a field's own `--background` fill, both
       under the 4.5:1 these sizes need. This one clears 4.5:1 on *both* those
       grounds, which is what makes it a control token rather than a second
       muted grey. It is deliberately not `--muted-foreground` darkened: that
       token has hundreds of consumers, and repainting the whole product is a
       different decision from fixing two controls. */
    --control-support-foreground: 174 12% 39%;
    /* An inactive control still has to be readable. The primary action was
       drawing its disabled label at 2.08:1, which is unreadable rather than
       quiet, and `--muted-foreground` on `--muted` only reaches 3.84:1 — under
       the 4.5:1 a 16px bold label needs. This pair is a flat low-saturation
       surface with ink dark enough to read at a glance, and it carries no hue
       energy, so it still says "not yet" rather than "press me". */
    --control-disabled: 174 20% 92%;
    --control-disabled-foreground: 174 12% 38%;
    --ring: 174 60% 28%;
    --radius: 0.5rem;
    /* ── Subject grade cards ───────────────────────────────────────────
       Dedicated card accents, separate from --success/--warning/--info, which
       also drive correct-answer and alert states and must not be darkened to
       suit a marketing surface.

       Each card is a gradient from `-base` (top-left) to `-soft` (bottom-right).
       Both ends are solid, verifiable colours: the previous `to-X/70` form put an
       unverifiable light end on every card, measuring 3.48:1 on violet and
       1.69:1 on orange against white text.

       Violet-base is the untouched --primary (6.30:1) — it always passed and is
       kept exactly as designed. Only the failing colours moved, and only as far
       as they had to. Green is the hard case: green carries ~71% of perceived
       luminance, so white-on-green cannot be bright and stay legible;
       desaturating buys back roughly ten points of lightness, which is why the
       green here is muted rather than vivid. Everything clears 4.69:1. */
    --card-violet-base: 258 78% 56%;
    --card-violet-soft: 262 74% 60%;
    --card-green-base: 152 50% 29%;
    --card-green-soft: 148 44% 34%;
    --card-blue-base: 214 78% 41%;
    --card-blue-soft: 210 72% 46%;
    /* ── liquid-glass primitives ── */
    --glass-bg: 0 0% 100% / 0.75;
    --glass-border: 174 20% 80% / 0.40;
    --glass-blur: 12px;
    --glass-shadow: 174 40% 20% / 0.18;
    /* ── semantic color tokens ── */
    --success: 142 71% 45%;
    --success-foreground: 0 0% 100%;
    /* The ink twin of --success, for the same reason --destructive-ink exists,
       in the other direction: `--success` is a mid green tuned to carry white
       foreground text, and a bright green on white measures 2.30:1 as a stroke
       or an icon — under the 3:1 SC 1.4.11 floor. Light takes its own darker
       step; dark aliases `--success`, which already clears 6:1 on that card. */
    --success-ink: 142 71% 32%;
    --warning: 38 92% 50%;
    --warning-foreground: 0 0% 100%;
    --info: 199 89% 48%;
    --info-foreground: 0 0% 100%;
    /* ── geometry given-quantity annotation ──
       The stroke that marks *which* measurements a figure gives. It is a
       required part of the graphic under WCAG 2.1 SC 1.4.11, so it is tuned per
       palette to clear 3:1 against the card it is drawn on **and** against the
       5 %-primary-tinted figure interior the measured-angle arc sits over. It
       is deliberately separate from --info, which is shared with every other
       `info` consumer and is not tuned for a non-text contrast floor. */
    --geometry-measure: 205 92% 38%;
    /* ── solid front-face tint ──
       The surface a solid is drawn on. Plane polygons have carried
       `fill-primary/5` since the pilot; solids carried no fill at all, so the
       3D figures — the ones that need a surface cue most — were the only ones
       drawn as bare wireframes. One flat tint over the front-facing faces makes
       a cube read as a block rather than as a lattice of equal lines.

       It is a surface, not a boundary, and it is tuned as one: 1.17:1 against
       `--card`, between `--muted` (1.10:1) and `--border` (1.27:1), so it
       registers as a lit face without becoming a colour block. Nothing legible
       on the bare card stops being legible on it — `--foreground` measures
       16.42:1 over it and `--geometry-measure` 4.46:1, both far above the 3:1
       non-text floor — which is what lets the dashed hidden edges keep being
       counted while sitting on a filled solid. */
    --geometry-face: 174 22% 92%;
    /* ── manipulative objects ──
       The physical things a learner picks up and places — unit squares today,
       and any future tile that *is* the mathematical object rather than chrome
       around it.

       **The mat is deliberately neutral.** An earlier warm-cream mat sat in the
       same hue family as the tile, and a warm object on a warm ground reads
       dusty however saturated it is. Hue separation, not saturation, is what
       makes the tile look alive, so the ground gives up its colour entirely and
       the object keeps all of it.

       **Five tiles, one form.** A learner grinding forty area questions should
       not stare at one colour, so the tile hue rotates per question while the
       shape, base edge, seam, mat and empty-slot treatment stay identical.
       Colour is accent, never meaning: it does not encode correctness, model
       kind, or difficulty, and it is derived from the question identity so the
       same question is always the same colour.

       A `-N` value is a fill, not a boundary — no tile fill of this brightness
       can satisfy SC 1.4.11 alone — so every tile draws its `-N-edge` as base
       or seam, and that edge is what identifies the tile. Each edge clears 6:1
       on the mat. `-slot` marks an empty build space at ~3:1, quiet but
       stronger than the 1.3:1 `--border` hairlines it replaces. */
    --manipulative-1: 340 75% 60%;
    --manipulative-1-edge: 340 62% 34%;
    --manipulative-2: 32 92% 58%;
    --manipulative-2-edge: 26 80% 34%;
    --manipulative-3: 160 60% 45%;
    --manipulative-3-edge: 165 62% 24%;
    --manipulative-4: 228 72% 64%;
    --manipulative-4-edge: 230 60% 38%;
    --manipulative-5: 280 55% 62%;
    --manipulative-5-edge: 282 50% 36%;
    /* The active tile. A surface overrides these two per question; the default
       keeps every other consumer renderable on its own. */
    --manipulative-tile: var(--manipulative-1);
    --manipulative-tile-edge: var(--manipulative-1-edge);
    --manipulative-mat: 210 20% 97%;
    --manipulative-mat-border: 210 16% 86%;
    --manipulative-slot: 210 12% 66%;
    /* ── chart series & data-provenance tokens ──
       A bounded categorical ramp for W-D charts and tables, validated with the
       data-viz skill's six-check palette validator against this file's own
       light/dark card surfaces (`--card`): lightness band, chroma floor, CVD
       adjacent-pair separation (deutan/protan), the normal-vision floor, and
       contrast. The founder review's literal proposed hues failed that
       validator hard — the teal read below the chroma floor, and the
       proposed blue/violet pair sat at ΔE 1.6 under deuteranopia, essentially
       one colour — so these steps are the nearest validated substitute rather
       than the literal proposal: a role and a bounded palette, not a specific
       hex the review can be assumed to have pixel-checked.

       Steps 3, 4 and 5 sat at 2.78, 2.20 and 2.65:1 against this file's own
       light card while dark measured fine, so the light block — and only the
       light block — was re-stepped down the lightness axis with hue and
       saturation frozen: re-hueing would spend the CVD work the hue angles
       bought. Re-validated after the move: all six ≥ 3:1, worst adjacent CVD
       pair ΔE 9.8 (protan), up from 9.1, normal-vision floor 18.3.

       `-given` and `-yours` are provenance roles, not extra series: they carry
       WHICH data is fixed versus the learner's own. `-yours` aliases --primary
       and needs no separate validation. `-given` used to alias
       --muted-foreground, and grey is the universal signal for disabled: on a
       construct figure the fixed bars are the reference a learner READS to
       build their own, and they were the quietest ink on the chart at 1.74:1.
       It is now its own step of the same teal family as `-yours` — lighter and
       quieter in light, dimmer in dark, both clearing 4.5:1 on their card — so
       provenance is carried by treatment (a lighter tint, a 45° hatch, a
       thinner stroke) rather than by draining the colour out of the data.
       Consumers must still pair them with a non-colour cue (hatch, fill
       weight, stroke, dash, target well) per WCAG 1.4.1 — these tokens are
       never the only carrier of that distinction.

       `-datum` is the third role, and it exists because the other two are
       about provenance and a read-only figure has none. Every datum on a read
       chart used to be painted in `-yours` — the LEARNER'S OWN WORK role — on
       figures the learner cannot edit. It rendered correctly and said
       something false. `-datum` is "this is the data", aliases --primary so
       nothing about the picture changes, and lets a reader of the class name
       tell a read figure from a construct one. */
    /* ── the categorical identity ramp ──
       Aliases the manipulative family rather than carrying its own hues, so
       the two labs cannot drift apart and a colour is defined once. Approved
       palette, adopted 2026-08-19. **Five steps, because that is what the
       family has** — a sixth was invented to keep the ramp's old arity and
       thrown away: it was the one colour here nobody had approved, and it
       looked it. The ramp cycles, only nominal models use it (bar graph,
       picture graph), and the most categories any fixture draws is four, so
       the fifth-to-sixth wrap is unreachable today and non-adjacent if it
       ever is.

       Each step is a FILL paired with a darker EDGE, which is how the
       manipulative tiles already work and why the swap had to bring the edges
       with it. **The two swap roles between the themes, and neither is
       sufficient alone** — measured on the running figure:

         light card   fill 2.19-3.80   edge 6.03-9.70   <- the EDGE clears 3:1
         dark card    fill 5.25-8.64   edge 1.50-1.85   <- the FILL clears 3:1

       In light the fills are saturated mid-tones that can sit under the floor
       on white; in dark the family lightens its fills and darkens its rims, so
       the rim becomes an inner detail and the fill does the work. Either way
       one member of the pair clears SC 1.4.11 and the other is visible against
       it (edge-vs-fill 2.35-2.82 light, 3.31-4.68 dark). **A consumer that
       paints a fill without its edge is under-contrasted in light**; the
       renderer pairs them by construction.

       The ramp is decoration, never encoding: every W-D figure labels its
       categories on the axis or beside the row, so no reading depends on
       telling two of these apart (WCAG 1.4.1). That is what lets the family
       be chosen for hue variety rather than for luminance separation. If a
       figure ever grows a legend, this stops being true and the ramp needs
       re-checking. */
    --chart-1: var(--manipulative-1);
    --chart-2: var(--manipulative-2);
    --chart-3: var(--manipulative-3);
    --chart-4: var(--manipulative-4);
    --chart-5: var(--manipulative-5);
    --chart-1-edge: var(--manipulative-1-edge);
    --chart-2-edge: var(--manipulative-2-edge);
    --chart-3-edge: var(--manipulative-3-edge);
    --chart-4-edge: var(--manipulative-4-edge);
    --chart-5-edge: var(--manipulative-5-edge);
    --chart-given: 174 52% 34%;
    --chart-yours: var(--primary);
    --chart-datum: var(--primary);
    /* ── W-E fraction and ratio models ──
       W-E carries no hues of its own. A question's shaded quantity is painted
       in the rotating `--manipulative-tile` accent it shares with the Lane 1a
       manipulatives, so one question is one coherent colour family and repeated
       practice rotates rather than repeats. These four are the neutrals that
       accent sits on, and they are a weight hierarchy, not a palette:

         `--fraction-boundary`  every structural line in a model
         `--fraction-empty`     an unshaded equal part
         `--ratio-unknown`      an unbuilt or unknown quantity's well

       There is one boundary colour, not three. The hierarchy a learner reads —
       a whole's outer edge, an equal-part partition, a hundredths grid line —
       is carried by weight and opacity off that single neutral, so a line can
       never be lighter in one model and darker in another, and dark mode has
       one value to get right instead of three.

       No reading depends on hue alone: an unshaded part differs in lightness,
       an unknown quantity keeps its dashed edge and question mark, the product
       bands differ in orientation and in tonal depth at their crosshatched
       overlap, and every ratio row is labelled. Dark mode lifts the neutrals
       off the card rather than inverting them, so a grid line stays legible at
       hundredths density without turning into a bright mesh. */
    --fraction-empty: 212 24% 98%;
    --fraction-boundary: 214 18% 55%;
    --ratio-unknown: 214 18% 95%;
    /* ── W-F1 measurable-attribute comparison ──
       One neutral, on the same principle as `--fraction-boundary`: the compared
       objects wear the rotating `--manipulative-tile` accent, and everything
       that is *not* the object — the shared baseline a comparison is read
       against, a container wall, the arms and stand of a balance, the boundary
       of a covered region — is this single colour spent at different weights and
       opacities. Deriving all four from one value is what stops "the line the
       objects are lined up against" from being one colour in the length figure
       and another in the cover figure.

       It is deliberately the same value as `--fraction-boundary` rather than an
       alias of it: the two families must be free to move independently, and a
       measurement figure that borrowed a token named for fractions would tie
       them together by accident. */
    --measure-frame: 214 18% 55%;
    /* ── W-F2 clock face ──
       One neutral again, for everything on the dial that is not a hand: the
       rim, the twelve hour marks, the sixty minute marks, and the chip an
       ordered clock's badge sits in. The hands wear the rotating
       `--manipulative-tile` accent, so the whole face is read against one
       colour spent at four weights.

       Same value as `--measure-frame`, and deliberately not an alias of it, for
       the reason stated above: a clock is a different family from a ruler, and
       the two must be free to move apart without one dragging the other. */
    --clock-frame: 214 18% 55%;
    /* ── W-F3 formal measuring instruments ──
       One neutral again, for everything on an instrument that is not the
       reading: the glass of a thermometer and its bulb, the case and printed
       marks of a dial scale, the wall and handle of a graduated vessel, and the
       dashed box a worked answer is written in. The liquid, the needle and the
       clock hands wear the rotating `--manipulative-tile` accent, so an
       instrument is read against one colour spent at four weights.

       Same value as `--measure-frame` and `--clock-frame`, and deliberately not
       an alias of either, for the reason stated above: a thermometer is a
       different family from a balance and from a clock, and the three must be
       free to move apart. */
    --tool-frame: 214 18% 55%;
    /* ── W-F3D measured subjects ──
       The six things W-F3D's rows actually name: a pencil, a crayon, a ribbon,
       a piece of string, a stick and — where a stem names nothing concrete — a
       plain strip of card. A Grade-1 learner told to measure a pencil is shown
       a pencil, which is the whole reason these exist.

       They are deliberately *paler and less saturated* than the five rotating
       `--manipulative-*` accents, because in a W-F3D figure both are on screen
       at once: the thing being measured, and the units being laid along it. The
       units carry the question's accent at full strength and the subject sits
       under them as a quieter object, so which is the tool and which is the
       task never depends on remembering a hue.

       No subject colour means anything. It does not encode length, correctness,
       or which of two objects is longer — it encodes only what the object *is*,
       and it is the same colour on every question that names that object. */
    --subject-pencil: 42 76% 68%;
    --subject-pencil-edge: 38 52% 42%;
    --subject-crayon: 268 44% 72%;
    --subject-crayon-edge: 268 34% 46%;
    --subject-ribbon: 196 50% 70%;
    --subject-ribbon-edge: 200 38% 42%;
    --subject-string: 36 30% 66%;
    --subject-string-edge: 32 28% 40%;
    --subject-wood: 33 46% 76%;
    --subject-wood-edge: 30 32% 46%;
    --subject-eraser: 350 46% 76%;
    --subject-ferrule: 214 12% 76%;
    --subject-graphite: 220 10% 40%;
    /* ── K positional-language objects ──
       One fill/edge pair per object the positional reading family draws, and
       every one of them an ALIAS of a hue that already exists — the five
       manipulative accents for the things, and the wooden subject pair for the
       container they sit in or beside. Aliasing rather than minting is the same
       decision `--chart-N` records above, and it matters more here: these
       tokens must theme correctly in all four theme blocks, and a value defined
       once themes everywhere it is referenced.

       Hue is RECOGNITION, never encoding. A red apple and a mint cup help a
       five-year-old find the object the question names; nothing about *where*
       the objects are is carried by colour, and the accessible description
       names the objects by noun, so no reading depends on telling two hues
       apart (WCAG 1.4.1). Each fill is paired with its darker edge for the
       reason the chart ramp is: in light the edge clears the non-text contrast
       floor and in dark the fill does, and a consumer that paints one without
       the other is under-contrasted in one of the two themes. */
    --object-ball: var(--manipulative-4);
    --object-ball-edge: var(--manipulative-4-edge);
    --object-book: var(--manipulative-5);
    --object-book-edge: var(--manipulative-5-edge);
    --object-cup: var(--manipulative-3);
    --object-cup-edge: var(--manipulative-3-edge);
    --object-apple: var(--manipulative-1);
    --object-apple-edge: var(--manipulative-1-edge);
    --object-hat: var(--manipulative-2);
    --object-hat-edge: var(--manipulative-2-edge);
    --object-container: var(--subject-wood);
    --object-container-edge: var(--subject-wood-edge);
    /* ── United States money ──
       One token, because the money itself is no longer painted. The coins and
       notes are governed photographs of the real articles, so the metals, the
       paper and the printing ink they used to be drawn in are the picture's own
       and not this file's. The eight tokens that supplied them are gone rather
       than left defined-but-unused.

       `--money-frame` is the neutral for everything on the tray that is not
       money — the rule between two compared groups, and the baseline a written
       count sits on. Same value as `--tool-frame`, `--clock-frame` and
       `--measure-frame`, and deliberately not an alias of any of them, for the
       reason those three are not aliases of each other: a money tray is a
       different family from a thermometer, and the four must be free to move
       apart. */
    --money-frame: 214 18% 55%;
    /* ── mastery heatmap stops (0 → 100 % mastery) ── */
    --mastery-0: 0 0% 75%;
    --mastery-25: 24 85% 65%;
    --mastery-50: 45 88% 60%;
    --mastery-75: 142 62% 48%;
    --mastery-100: 174 60% 35%;
    /* ── gamification accent tokens ── */
    --streak-flame: 25 95% 54%;
    --star-gold: 45 93% 58%;
    /* ── practice screen sky tokens ── */
    --sky-top: 200 52% 84%;
    --sky-cloud: 0 0% 100%;
    /* ── motion duration tokens ── */
    --motion-fast: 100ms;
    --motion-default: 200ms;
    --motion-slow: 400ms;
  }

.dark {
    --background: 174 40% 5%;
    --foreground: 174 30% 97%;
    --card: 174 30% 9%;
    --card-foreground: 174 30% 97%;
    --popover: 174 30% 9%;
    --popover-foreground: 174 30% 97%;
    --primary: 174 52% 50%;
    --primary-foreground: 0 0% 100%;
    --secondary: 174 30% 14%;
    --secondary-foreground: 174 30% 97%;
    --muted: 174 30% 14%;
    --muted-foreground: 174 15% 60%;
    --accent: 174 30% 14%;
    --accent-foreground: 174 30% 97%;
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 210 40% 98%;
    /* 4.76:1 on the dark card, against 1.71:1 for --destructive itself. This
       is the step the badge disc, the unmatched stroke and the banner icon
       take here; --destructive stays put for the tinted surfaces. */
    --destructive-ink: 0 75% 62%;
    --border: 174 30% 16%;
    --input: 174 30% 16%;
    --control-border: 174 25% 40%;
    --control-border-hover: 174 38% 50%;
    /* Dark reads the other way: the grounds are the near-black card and the
       darker field fill, so this steps up rather than down. */
    --control-support-foreground: 174 15% 62%;
    --control-disabled: 174 25% 18%;
    --control-disabled-foreground: 174 15% 66%;
    --ring: 174 52% 50%;
    /* dark glass */
    --glass-bg: 174 30% 8% / 0.75;
    --glass-border: 174 20% 30% / 0.35;
    --glass-shadow: 0 0% 0% / 0.35;
    /* dark semantic */
    --success: 142 65% 42%;
    /* 6.13:1 on the dark card already — no separate step needed here. */
    --success-ink: var(--success);
    --warning: 38 85% 52%;
    --info: 199 80% 52%;
    /* Light azure against the dark card; same 3:1 floor, other direction. */
    --geometry-measure: 199 85% 62%;
    /* The same face lit for a dark room: it rises off the card instead of
       darkening into it. 1.24:1 against `--card`, with `--foreground` at
       13.12:1 over it and `--geometry-measure` at 6.46:1. */
    --geometry-face: 174 26% 15%;
    /* The same object lit for a dark room: the tile brightens, its edge drops
       so the seam still reads against it, and the mat stays a warm-neutral
       work surface instead of becoming another panel. */
    --manipulative-1: 340 72% 64%;
    --manipulative-1-edge: 340 50% 28%;
    --manipulative-2: 34 88% 62%;
    --manipulative-2-edge: 26 52% 26%;
    --manipulative-3: 160 52% 52%;
    --manipulative-3-edge: 165 48% 20%;
    --manipulative-4: 228 70% 70%;
    --manipulative-4-edge: 230 46% 30%;
    --manipulative-5: 280 52% 68%;
    --manipulative-5-edge: 282 42% 30%;
    --manipulative-tile: var(--manipulative-1);
    --manipulative-tile-edge: var(--manipulative-1-edge);
    --manipulative-mat: 210 16% 12%;
    --manipulative-mat-border: 210 12% 24%;
    --manipulative-slot: 210 10% 40%;
    /* W-F3D subjects, lifted off the dark card rather than inverted: the same
       objects, still quieter than the accent the units wear. */
    --subject-pencil: 42 62% 62%;
    --subject-pencil-edge: 38 40% 30%;
    --subject-crayon: 268 38% 66%;
    --subject-crayon-edge: 268 28% 32%;
    --subject-ribbon: 196 42% 62%;
    --subject-ribbon-edge: 200 32% 30%;
    --subject-string: 36 26% 58%;
    --subject-string-edge: 32 24% 28%;
    --subject-wood: 33 38% 66%;
    --subject-wood-edge: 30 26% 32%;
    --subject-eraser: 350 38% 66%;
    --subject-ferrule: 214 10% 62%;
    --subject-graphite: 220 8% 68%;
    /* Re-stepped for the dark card surface, not an automatic inversion —
       see the :root chart-token comment for how these were validated. */
    --chart-1: var(--manipulative-1);
    --chart-2: var(--manipulative-2);
    --chart-3: var(--manipulative-3);
    --chart-4: var(--manipulative-4);
    --chart-5: var(--manipulative-5);
    --chart-1-edge: var(--manipulative-1-edge);
    --chart-2-edge: var(--manipulative-2-edge);
    --chart-3-edge: var(--manipulative-3-edge);
    --chart-4-edge: var(--manipulative-4-edge);
    --chart-5-edge: var(--manipulative-5-edge);
    /* Quieter than --primary rather than lighter: in a dark room "lighter"
       means louder, so the given step goes down the lightness axis while the
       light-mode step goes up. 4.63:1 on this card. */
    --chart-given: 174 35% 42%;
    --fraction-empty: 210 14% 16%;
    --fraction-boundary: 210 13% 58%;
    --ratio-unknown: 210 12% 19%;
    /* Lifted off the dark card the same way the fraction neutral is, so a
       baseline stays readable under a bright accent without becoming a glare. */
    --measure-frame: 210 13% 58%;
    /* Lifted off the dark card the same way, so the minute marks stay countable
       at sixty-mark density without the rim turning into a glare. */
    --clock-frame: 210 13% 58%;
    --tool-frame: 210 13% 58%;
    /* Money stays a light object in a dark room, because that is what money is:
       metal and paper are lit things, and inverting them would make a coin read
       as a hole in the mat. The fills come down far enough not to glare against
       `--manipulative-mat`, the two edges and the relief ink go darker so rim
       ridges and relief still read on the fill, and the frame lifts the way
       every other family's neutral does. */
    --money-frame: 210 13% 58%;
    --mastery-100: 174 52% 50%;
    --streak-flame: 25 90% 58%;
    --star-gold: 45 88% 60%;
    --sky-top: 210 42% 18%;
    --sky-cloud: 210 20% 52%;
  }

/* ── Student surface — fresh ice-blue, premium, energetic ── */

.theme-student {
    --background: 226 50% 95%;
    --foreground: 230 35% 18%;
    --card: 0 0% 100%;
    --card-foreground: 230 35% 18%;
    --popover: 0 0% 100%;
    --popover-foreground: 230 35% 18%;
    --primary: 258 78% 56%;
    --primary-foreground: 0 0% 100%;
    --primary-vivid: 268 80% 62%;
    --primary-deep: 244 82% 46%;
    --secondary: 226 40% 91%;
    --secondary-foreground: 226 35% 30%;
    --muted: 226 25% 93%;
    --muted-foreground: 230 12% 46%;
    --accent: 45 90% 60%;
    --accent-foreground: 230 35% 18%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 100%;
    --border: 226 30% 86%;
    --input: 226 30% 86%;
    --control-border: 226 38% 60%;
    --control-border-hover: 226 45% 52%;
    --control-support-foreground: 226 14% 40%;
    --control-disabled: 226 25% 92%;
    --control-disabled-foreground: 226 14% 38%;
    --ring: 258 78% 56%;
    /* glass */
    --glass-bg: 0 0% 100% / 0.75;
    --glass-border: 226 50% 70% / 0.28;
    --glass-shadow: 226 60% 25% / 0.18;
    /* semantic */
    --success: 142 68% 42%;
    --success-foreground: 0 0% 100%;
    --warning: 38 90% 52%;
    --warning-foreground: 0 0% 100%;
    --info: 217 82% 55%;
    --info-foreground: 0 0% 100%;
    /* Indigo-leaning, to sit with this palette's violet primary. */
    --geometry-measure: 224 80% 44%;
    /* mastery */
    --mastery-0: 226 15% 80%;
    --mastery-25: 24 88% 67%;
    --mastery-50: 45 90% 62%;
    --mastery-75: 142 65% 48%;
    --mastery-100: 258 78% 56%;
    /* gamification */
    --streak-flame: 22 96% 52%;
    --star-gold: 45 95% 56%;
    /* sky */
    --sky-top: 210 55% 85%;
    --sky-cloud: 0 0% 100%;
    /* ── practice workspace sky gradient ── */
    --practice-sky-from: 215 70% 97%;
    --practice-sky-to: 248 50% 92%;
  }

/* ── Parent surface — teal brand, matches login/marketing ── */

.theme-parent {
    --background: 174 18% 93%;
    --foreground: 174 60% 8%;
    --card: 0 0% 100%;
    --card-foreground: 174 60% 8%;
    --popover: 0 0% 100%;
    --popover-foreground: 174 60% 8%;
    --primary: 174 60% 28%;
    --primary-foreground: 0 0% 100%;
    --secondary: 174 22% 91%;
    --secondary-foreground: 174 30% 22%;
    --muted: 174 16% 92%;
    --muted-foreground: 174 14% 42%;
    --accent: 174 22% 91%;
    --accent-foreground: 174 30% 22%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 100%;
    --border: 174 20% 85%;
    --input: 174 20% 85%;
    --control-border: 174 30% 44%;
    --control-border-hover: 174 42% 34%;
    --control-support-foreground: 174 12% 39%;
    --control-disabled: 174 20% 92%;
    --control-disabled-foreground: 174 12% 38%;
    --ring: 174 60% 28%;
    /* glass */
    --glass-bg: 0 0% 100% / 0.72;
    --glass-border: 174 20% 72% / 0.45;
    --glass-shadow: 174 40% 15% / 0.08;
    /* semantic */
    --success: 160 55% 40%;
    --success-foreground: 0 0% 100%;
    --warning: 38 80% 50%;
    --warning-foreground: 0 0% 100%;
    --info: 199 72% 48%;
    --info-foreground: 0 0% 100%;
    /* Slightly softer than :root, matching this palette's lower saturation. */
    --geometry-measure: 205 85% 36%;
    /* mastery */
    --mastery-0: 0 0% 78%;
    --mastery-25: 24 72% 65%;
    --mastery-50: 45 78% 58%;
    --mastery-75: 160 58% 46%;
    --mastery-100: 174 60% 28%;
    /* gamification */
    --streak-flame: 25 85% 50%;
    --star-gold: 45 85% 52%;
    /* sky */
    --sky-top: 200 50% 84%;
    --sky-cloud: 0 0% 100%;
  }

/* Cap all motion tokens to 0 for users who prefer reduced motion */

@media (prefers-reduced-motion: reduce) {
    :root {
      --motion-fast: 0ms;
      --motion-default: 0ms;
      --motion-slow: 0ms;
    }
  }

/* Fallback for browsers without backdrop-filter (Android < 11, Chrome < 90).
     Feature detection in ticket 5.4 adds this class to <body>. */

.no-backdrop-filter {
    --glass-blur: 0px;
  }

*{
  border-color: hsl(var(--border));
}

html{
  overflow-x: hidden;
    /* Remove blue tap highlight on mobile (no-op on non-touch pointers) */
    -webkit-tap-highlight-color: transparent;
}

body{
  overflow-x: hidden;
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
}

/* ── Native App / Capacitor Resets — mobile/touch only ──
     There is no Capacitor native-shell runtime flag yet, so this is scoped by
     viewport width AND the coarse-pointer (touch) capability check already
     established in apps/web/lib/capabilities.ts's coarsePointer(). Width alone
     isn't a reliable mobile/native boundary: a narrow, split-screen, or zoomed
     desktop browser with a mouse/trackpad (fine pointer) still matches a
     width-only query. Requiring pointer:coarse too means a fine-pointer
     desktop keeps normal scrollbars and text selection regardless of window
     width (SUDP-CR-001 follow-up). */

@media (max-width: 767px) and (pointer: coarse) {
    * {
      /* Hide scrollbars for native app feel */
      -ms-overflow-style: none;  /* IE and Edge */
      scrollbar-width: none;     /* Firefox */
    }
    *::-webkit-scrollbar {
      display: none;             /* Chrome, Safari and Opera */
    }

    html {
      /* Prevent accidental text selection and context menus */
      -webkit-touch-callout: none;
      -webkit-user-select: none;
         -moz-user-select: none;
              user-select: none;
    }

    /* Re-enable text selection for actual input fields */
    input, textarea, [contenteditable="true"] {
      -webkit-user-select: auto;
         -moz-user-select: auto;
              user-select: auto;
    }

    body {
      /* Safe areas for iOS notch and home indicator */
      padding-top: env(safe-area-inset-top);
      padding-bottom: env(safe-area-inset-bottom);
      padding-left: env(safe-area-inset-left);
      padding-right: env(safe-area-inset-right);
    }
  }
.\!container{
  width: 100% !important;
}
.container{
  width: 100%;
}
@media (min-width: 640px){

  .\!container{
    max-width: 640px !important;
  }

  .container{
    max-width: 640px;
  }
}
@media (min-width: 768px){

  .\!container{
    max-width: 768px !important;
  }

  .container{
    max-width: 768px;
  }
}
@media (min-width: 1024px){

  .\!container{
    max-width: 1024px !important;
  }

  .container{
    max-width: 1024px;
  }
}
@media (min-width: 1280px){

  .\!container{
    max-width: 1280px !important;
  }

  .container{
    max-width: 1280px;
  }
}
@media (min-width: 1536px){

  .\!container{
    max-width: 1536px !important;
  }

  .container{
    max-width: 1536px;
  }
}
.sr-only{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.pointer-events-none{
  pointer-events: none;
}
.pointer-events-auto{
  pointer-events: auto;
}
.\!visible{
  visibility: visible !important;
}
.visible{
  visibility: visible;
}
.invisible{
  visibility: hidden;
}
.collapse{
  visibility: collapse;
}
.static{
  position: static;
}
.fixed{
  position: fixed;
}
.absolute{
  position: absolute;
}
.relative{
  position: relative;
}
.sticky{
  position: sticky;
}
.inset-0{
  inset: 0px;
}
.inset-x-0{
  left: 0px;
  right: 0px;
}
.inset-x-4{
  left: 1rem;
  right: 1rem;
}
.inset-y-0{
  top: 0px;
  bottom: 0px;
}
.-bottom-0\.5{
  bottom: -0.125rem;
}
.-bottom-1{
  bottom: -0.25rem;
}
.-bottom-20{
  bottom: -5rem;
}
.-bottom-3{
  bottom: -0.75rem;
}
.-bottom-3\.5{
  bottom: -0.875rem;
}
.-bottom-6{
  bottom: -1.5rem;
}
.-left-1{
  left: -0.25rem;
}
.-left-10{
  left: -2.5rem;
}
.-left-3{
  left: -0.75rem;
}
.-left-4{
  left: -1rem;
}
.-left-6{
  left: -1.5rem;
}
.-left-7{
  left: -1.75rem;
}
.-right-0\.5{
  right: -0.125rem;
}
.-right-16{
  right: -4rem;
}
.-right-2{
  right: -0.5rem;
}
.-right-3{
  right: -0.75rem;
}
.-right-4{
  right: -1rem;
}
.-right-5{
  right: -1.25rem;
}
.-right-8{
  right: -2rem;
}
.-top-10{
  top: -2.5rem;
}
.-top-16{
  top: -4rem;
}
.-top-3{
  top: -0.75rem;
}
.-top-4{
  top: -1rem;
}
.-top-7{
  top: -1.75rem;
}
.bottom-0{
  bottom: 0px;
}
.bottom-4{
  bottom: 1rem;
}
.bottom-\[15\%\]{
  bottom: 15%;
}
.left-0{
  left: 0px;
}
.left-1\/2{
  left: 50%;
}
.left-2{
  left: 0.5rem;
}
.left-4{
  left: 1rem;
}
.left-\[50\%\]{
  left: 50%;
}
.right-0{
  right: 0px;
}
.right-2{
  right: 0.5rem;
}
.right-3{
  right: 0.75rem;
}
.right-32{
  right: 8rem;
}
.right-4{
  right: 1rem;
}
.right-5{
  right: 1.25rem;
}
.right-8{
  right: 2rem;
}
.top-0{
  top: 0px;
}
.top-1\/2{
  top: 50%;
}
.top-2{
  top: 0.5rem;
}
.top-3{
  top: 0.75rem;
}
.top-4{
  top: 1rem;
}
.top-5{
  top: 1.25rem;
}
.top-\[50\%\]{
  top: 50%;
}
.top-\[calc\(100\%\+4px\)\]{
  top: calc(100% + 4px);
}
.top-\[calc\(100\%\+6px\)\]{
  top: calc(100% + 6px);
}
.top-full{
  top: 100%;
}
.z-0{
  z-index: 0;
}
.z-10{
  z-index: 10;
}
.z-20{
  z-index: 20;
}
.z-30{
  z-index: 30;
}
.z-40{
  z-index: 40;
}
.z-50{
  z-index: 50;
}
.z-\[100\]{
  z-index: 100;
}
.z-\[5\]{
  z-index: 5;
}
.z-\[9999\]{
  z-index: 9999;
}
.col-span-full{
  grid-column: 1 / -1;
}
.m-0{
  margin: 0px;
}
.-mx-1{
  margin-left: -0.25rem;
  margin-right: -0.25rem;
}
.-mx-4{
  margin-left: -1rem;
  margin-right: -1rem;
}
.-mx-6{
  margin-left: -1.5rem;
  margin-right: -1.5rem;
}
.mx-1{
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.mx-1\.5{
  margin-left: 0.375rem;
  margin-right: 0.375rem;
}
.mx-10{
  margin-left: 2.5rem;
  margin-right: 2.5rem;
}
.mx-2{
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.mx-3{
  margin-left: 0.75rem;
  margin-right: 0.75rem;
}
.mx-auto{
  margin-left: auto;
  margin-right: auto;
}
.my-1{
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.my-2{
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.my-\[1px\]{
  margin-top: 1px;
  margin-bottom: 1px;
}
.mb-0\.5{
  margin-bottom: 0.125rem;
}
.mb-1{
  margin-bottom: 0.25rem;
}
.mb-1\.5{
  margin-bottom: 0.375rem;
}
.mb-10{
  margin-bottom: 2.5rem;
}
.mb-2{
  margin-bottom: 0.5rem;
}
.mb-2\.5{
  margin-bottom: 0.625rem;
}
.mb-3{
  margin-bottom: 0.75rem;
}
.mb-4{
  margin-bottom: 1rem;
}
.mb-5{
  margin-bottom: 1.25rem;
}
.mb-6{
  margin-bottom: 1.5rem;
}
.mb-7{
  margin-bottom: 1.75rem;
}
.mb-8{
  margin-bottom: 2rem;
}
.ml-1{
  margin-left: 0.25rem;
}
.ml-2{
  margin-left: 0.5rem;
}
.ml-3{
  margin-left: 0.75rem;
}
.ml-4{
  margin-left: 1rem;
}
.ml-auto{
  margin-left: auto;
}
.mr-1{
  margin-right: 0.25rem;
}
.mr-2{
  margin-right: 0.5rem;
}
.mr-3{
  margin-right: 0.75rem;
}
.mt-0{
  margin-top: 0px;
}
.mt-0\.5{
  margin-top: 0.125rem;
}
.mt-1{
  margin-top: 0.25rem;
}
.mt-1\.5{
  margin-top: 0.375rem;
}
.mt-10{
  margin-top: 2.5rem;
}
.mt-14{
  margin-top: 3.5rem;
}
.mt-16{
  margin-top: 4rem;
}
.mt-2{
  margin-top: 0.5rem;
}
.mt-2\.5{
  margin-top: 0.625rem;
}
.mt-3{
  margin-top: 0.75rem;
}
.mt-4{
  margin-top: 1rem;
}
.mt-5{
  margin-top: 1.25rem;
}
.mt-6{
  margin-top: 1.5rem;
}
.mt-8{
  margin-top: 2rem;
}
.mt-\[14px\]{
  margin-top: 14px;
}
.mt-\[7px\]{
  margin-top: 7px;
}
.mt-auto{
  margin-top: auto;
}
.mt-px{
  margin-top: 1px;
}
.line-clamp-1{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.line-clamp-2{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.block{
  display: block;
}
.inline-block{
  display: inline-block;
}
.inline{
  display: inline;
}
.flex{
  display: flex;
}
.inline-flex{
  display: inline-flex;
}
.table{
  display: table;
}
.table-caption{
  display: table-caption;
}
.table-cell{
  display: table-cell;
}
.\!grid{
  display: grid !important;
}
.grid{
  display: grid;
}
.inline-grid{
  display: inline-grid;
}
.contents{
  display: contents;
}
.hidden{
  display: none;
}
.aspect-square{
  aspect-ratio: 1 / 1;
}
.aspect-video{
  aspect-ratio: 16 / 9;
}
.size-1{
  width: 0.25rem;
  height: 0.25rem;
}
.size-1\.5{
  width: 0.375rem;
  height: 0.375rem;
}
.size-10{
  width: 2.5rem;
  height: 2.5rem;
}
.size-11{
  width: 2.75rem;
  height: 2.75rem;
}
.size-12{
  width: 3rem;
  height: 3rem;
}
.size-14{
  width: 3.5rem;
  height: 3.5rem;
}
.size-16{
  width: 4rem;
  height: 4rem;
}
.size-2{
  width: 0.5rem;
  height: 0.5rem;
}
.size-2\.5{
  width: 0.625rem;
  height: 0.625rem;
}
.size-3{
  width: 0.75rem;
  height: 0.75rem;
}
.size-3\.5{
  width: 0.875rem;
  height: 0.875rem;
}
.size-4{
  width: 1rem;
  height: 1rem;
}
.size-5{
  width: 1.25rem;
  height: 1.25rem;
}
.size-6{
  width: 1.5rem;
  height: 1.5rem;
}
.size-7{
  width: 1.75rem;
  height: 1.75rem;
}
.size-8{
  width: 2rem;
  height: 2rem;
}
.size-9{
  width: 2.25rem;
  height: 2.25rem;
}
.size-\[18px\]{
  width: 18px;
  height: 18px;
}
.h-1{
  height: 0.25rem;
}
.h-1\.5{
  height: 0.375rem;
}
.h-10{
  height: 2.5rem;
}
.h-11{
  height: 2.75rem;
}
.h-12{
  height: 3rem;
}
.h-14{
  height: 3.5rem;
}
.h-16{
  height: 4rem;
}
.h-2{
  height: 0.5rem;
}
.h-2\.5{
  height: 0.625rem;
}
.h-20{
  height: 5rem;
}
.h-24{
  height: 6rem;
}
.h-3{
  height: 0.75rem;
}
.h-3\.5{
  height: 0.875rem;
}
.h-32{
  height: 8rem;
}
.h-4{
  height: 1rem;
}
.h-40{
  height: 10rem;
}
.h-48{
  height: 12rem;
}
.h-5{
  height: 1.25rem;
}
.h-56{
  height: 14rem;
}
.h-6{
  height: 1.5rem;
}
.h-64{
  height: 16rem;
}
.h-7{
  height: 1.75rem;
}
.h-8{
  height: 2rem;
}
.h-80{
  height: 20rem;
}
.h-9{
  height: 2.25rem;
}
.h-96{
  height: 24rem;
}
.h-\[1px\]{
  height: 1px;
}
.h-\[600px\]{
  height: 600px;
}
.h-\[70vh\]{
  height: 70vh;
}
.h-\[calc\(var\(--bt-unit\)\*10\)\]{
  height: calc(var(--bt-unit) * 10);
}
.h-\[calc\(var\(--bt-unit\)\*10_\+_20px\)\]{
  height: calc(var(--bt-unit) * 10 + 20px);
}
.h-\[calc\(var\(--bt-unit\)_\+_28px\)\]{
  height: calc(var(--bt-unit) + 28px);
}
.h-\[var\(--bt-unit\)\]{
  height: var(--bt-unit);
}
.h-\[var\(--radix-select-trigger-height\)\]{
  height: var(--radix-select-trigger-height);
}
.h-auto{
  height: auto;
}
.h-full{
  height: 100%;
}
.h-px{
  height: 1px;
}
.max-h-40{
  max-height: 10rem;
}
.max-h-72{
  max-height: 18rem;
}
.max-h-80{
  max-height: 20rem;
}
.max-h-\[--radix-select-content-available-height\]{
  max-height: var(--radix-select-content-available-height);
}
.max-h-\[72vh\]{
  max-height: 72vh;
}
.max-h-\[85dvh\]{
  max-height: 85dvh;
}
.max-h-\[90vh\]{
  max-height: 90vh;
}
.max-h-\[92dvh\]{
  max-height: 92dvh;
}
.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{
  max-height: var(--radix-dropdown-menu-content-available-height);
}
.max-h-screen{
  max-height: 100vh;
}
.min-h-0{
  min-height: 0px;
}
.min-h-10{
  min-height: 2.5rem;
}
.min-h-11{
  min-height: 2.75rem;
}
.min-h-12{
  min-height: 3rem;
}
.min-h-14{
  min-height: 3.5rem;
}
.min-h-16{
  min-height: 4rem;
}
.min-h-20{
  min-height: 5rem;
}
.min-h-32{
  min-height: 8rem;
}
.min-h-40{
  min-height: 10rem;
}
.min-h-48{
  min-height: 12rem;
}
.min-h-5{
  min-height: 1.25rem;
}
.min-h-8{
  min-height: 2rem;
}
.min-h-9{
  min-height: 2.25rem;
}
.min-h-\[1\.25rem\]{
  min-height: 1.25rem;
}
.min-h-\[100dvh\]{
  min-height: 100dvh;
}
.min-h-\[120px\]{
  min-height: 120px;
}
.min-h-\[132px\]{
  min-height: 132px;
}
.min-h-\[160px\]{
  min-height: 160px;
}
.min-h-\[18px\]{
  min-height: 18px;
}
.min-h-\[200px\]{
  min-height: 200px;
}
.min-h-\[40px\]{
  min-height: 40px;
}
.min-h-\[44px\]{
  min-height: 44px;
}
.min-h-\[48px\]{
  min-height: 48px;
}
.min-h-\[50vh\]{
  min-height: 50vh;
}
.min-h-\[56px\]{
  min-height: 56px;
}
.min-h-\[60vh\]{
  min-height: 60vh;
}
.min-h-\[64px\]{
  min-height: 64px;
}
.min-h-\[70vh\]{
  min-height: 70vh;
}
.min-h-\[74px\]{
  min-height: 74px;
}
.min-h-\[96px\]{
  min-height: 96px;
}
.min-h-\[calc\(100vh-4rem\)\]{
  min-height: calc(100vh - 4rem);
}
.min-h-\[calc\(100vh-9rem\)\]{
  min-height: calc(100vh - 9rem);
}
.min-h-\[calc\(var\(--bt-unit\)\*10_\+_8px\)\]{
  min-height: calc(var(--bt-unit) * 10 + 8px);
}
.min-h-full{
  min-height: 100%;
}
.min-h-screen{
  min-height: 100vh;
}
.w-1\.5{
  width: 0.375rem;
}
.w-1\/2{
  width: 50%;
}
.w-10{
  width: 2.5rem;
}
.w-11{
  width: 2.75rem;
}
.w-11\/12{
  width: 91.666667%;
}
.w-12{
  width: 3rem;
}
.w-14{
  width: 3.5rem;
}
.w-16{
  width: 4rem;
}
.w-2{
  width: 0.5rem;
}
.w-2\.5{
  width: 0.625rem;
}
.w-20{
  width: 5rem;
}
.w-24{
  width: 6rem;
}
.w-28{
  width: 7rem;
}
.w-3{
  width: 0.75rem;
}
.w-3\.5{
  width: 0.875rem;
}
.w-3\/4{
  width: 75%;
}
.w-32{
  width: 8rem;
}
.w-36{
  width: 9rem;
}
.w-4{
  width: 1rem;
}
.w-4\/5{
  width: 80%;
}
.w-40{
  width: 10rem;
}
.w-44{
  width: 11rem;
}
.w-48{
  width: 12rem;
}
.w-5{
  width: 1.25rem;
}
.w-5\/6{
  width: 83.333333%;
}
.w-52{
  width: 13rem;
}
.w-56{
  width: 14rem;
}
.w-6{
  width: 1.5rem;
}
.w-64{
  width: 16rem;
}
.w-7{
  width: 1.75rem;
}
.w-8{
  width: 2rem;
}
.w-80{
  width: 20rem;
}
.w-9{
  width: 2.25rem;
}
.w-\[1px\]{
  width: 1px;
}
.w-\[600px\]{
  width: 600px;
}
.w-\[calc\(100\%\+3rem\)\]{
  width: calc(100% + 3rem);
}
.w-\[calc\(var\(--bt-unit\)\*10\)\]{
  width: calc(var(--bt-unit) * 10);
}
.w-\[calc\(var\(--bt-unit\)\*10_\+_20px\)\]{
  width: calc(var(--bt-unit) * 10 + 20px);
}
.w-\[calc\(var\(--bt-unit\)_\+_28px\)\]{
  width: calc(var(--bt-unit) + 28px);
}
.w-\[var\(--bt-unit\)\]{
  width: var(--bt-unit);
}
.w-fit{
  width: -moz-fit-content;
  width: fit-content;
}
.w-full{
  width: 100%;
}
.w-max{
  width: -moz-max-content;
  width: max-content;
}
.w-px{
  width: 1px;
}
.w-\[--radix-select-trigger-width\]{
  width: var(--radix-select-trigger-width);
}
.min-w-0{
  min-width: 0px;
}
.min-w-10{
  min-width: 2.5rem;
}
.min-w-11{
  min-width: 2.75rem;
}
.min-w-12{
  min-width: 3rem;
}
.min-w-32{
  min-width: 8rem;
}
.min-w-40{
  min-width: 10rem;
}
.min-w-48{
  min-width: 12rem;
}
.min-w-56{
  min-width: 14rem;
}
.min-w-\[11rem\]{
  min-width: 11rem;
}
.min-w-\[2\.25rem\]{
  min-width: 2.25rem;
}
.min-w-\[240px\]{
  min-width: 240px;
}
.min-w-\[2rem\]{
  min-width: 2rem;
}
.min-w-\[44px\]{
  min-width: 44px;
}
.min-w-\[48px\]{
  min-width: 48px;
}
.min-w-\[8rem\]{
  min-width: 8rem;
}
.min-w-\[var\(--radix-select-trigger-width\)\]{
  min-width: var(--radix-select-trigger-width);
}
.min-w-max{
  min-width: -moz-max-content;
  min-width: max-content;
}
.max-w-2xl{
  max-width: 42rem;
}
.max-w-3xl{
  max-width: 48rem;
}
.max-w-4xl{
  max-width: 56rem;
}
.max-w-5xl{
  max-width: 64rem;
}
.max-w-6xl{
  max-width: 72rem;
}
.max-w-7xl{
  max-width: 80rem;
}
.max-w-\[120px\]{
  max-width: 120px;
}
.max-w-\[280px\]{
  max-width: 280px;
}
.max-w-\[28ch\]{
  max-width: 28ch;
}
.max-w-\[320px\]{
  max-width: 320px;
}
.max-w-\[420px\]{
  max-width: 420px;
}
.max-w-\[46ch\]{
  max-width: 46ch;
}
.max-w-\[46rem\]{
  max-width: 46rem;
}
.max-w-\[480px\]{
  max-width: 480px;
}
.max-w-\[49rem\]{
  max-width: 49rem;
}
.max-w-\[600px\]{
  max-width: 600px;
}
.max-w-\[640px\]{
  max-width: 640px;
}
.max-w-\[8rem\]{
  max-width: 8rem;
}
.max-w-\[var\(--bt-mat\)\]{
  max-width: var(--bt-mat);
}
.max-w-full{
  max-width: 100%;
}
.max-w-lg{
  max-width: 32rem;
}
.max-w-md{
  max-width: 28rem;
}
.max-w-none{
  max-width: none;
}
.max-w-prose{
  max-width: 65ch;
}
.max-w-sm{
  max-width: 24rem;
}
.max-w-xl{
  max-width: 36rem;
}
.max-w-xs{
  max-width: 20rem;
}
.max-w-\[--radix-select-content-available-width\]{
  max-width: var(--radix-select-content-available-width);
}
.flex-1{
  flex: 1 1 0%;
}
.shrink{
  flex-shrink: 1;
}
.shrink-0{
  flex-shrink: 0;
}
.grow{
  flex-grow: 1;
}
.basis-48{
  flex-basis: 12rem;
}
.basis-56{
  flex-basis: 14rem;
}
.basis-\[150px\]{
  flex-basis: 150px;
}
.basis-\[168px\]{
  flex-basis: 168px;
}
.basis-full{
  flex-basis: 100%;
}
.caption-bottom{
  caption-side: bottom;
}
.border-collapse{
  border-collapse: collapse;
}
.origin-\[--radix-dropdown-menu-content-transform-origin\]{
  transform-origin: var(--radix-dropdown-menu-content-transform-origin);
}
.origin-\[--radix-select-content-transform-origin\]{
  transform-origin: var(--radix-select-content-transform-origin);
}
.origin-\[--radix-tooltip-content-transform-origin\]{
  transform-origin: var(--radix-tooltip-content-transform-origin);
}
.-translate-x-1\/2{
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-x-full{
  --tw-translate-x: -100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-0\.5{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\/2{
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\/4{
  --tw-translate-y: -25%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-full{
  --tw-translate-y: -100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-0{
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-1\/4{
  --tw-translate-x: 25%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-\[-50\%\]{
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-\[-50\%\]{
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-rotate-90{
  --tw-rotate: -90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-180{
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-45{
  --tw-rotate: 45deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-\[-12deg\]{
  --tw-rotate: -12deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-\[-20deg\]{
  --tw-rotate: -20deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-\[-8deg\]{
  --tw-rotate: -8deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-\[14deg\]{
  --tw-rotate: 14deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-\[16deg\]{
  --tw-rotate: 16deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-105{
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform{
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes shimmer{

  100%{
    transform: translateX(200%);
  }
}
.animate-\[shimmer_2s_ease-in-out_infinite\]{
  animation: shimmer 2s ease-in-out infinite;
}
@keyframes pulse{

  50%{
    opacity: .5;
  }
}
.animate-pulse{
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes spin{

  to{
    transform: rotate(360deg);
  }
}
.animate-spin{
  animation: spin 1s linear infinite;
}
.cursor-crosshair{
  cursor: crosshair;
}
.cursor-default{
  cursor: default;
}
.cursor-grab{
  cursor: grab;
}
.cursor-grabbing{
  cursor: grabbing;
}
.cursor-not-allowed{
  cursor: not-allowed;
}
.cursor-pointer{
  cursor: pointer;
}
.touch-none{
  touch-action: none;
}
.touch-pan-y{
  --tw-pan-y: pan-y;
  touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.touch-manipulation{
  touch-action: manipulation;
}
.select-none{
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.select-all{
  -webkit-user-select: all;
     -moz-user-select: all;
          user-select: all;
}
.resize-none{
  resize: none;
}
.resize-y{
  resize: vertical;
}
.resize{
  resize: both;
}
.scroll-mt-20{
  scroll-margin-top: 5rem;
}
.scroll-mt-8{
  scroll-margin-top: 2rem;
}
.list-decimal{
  list-style-type: decimal;
}
.list-disc{
  list-style-type: disc;
}
.list-none{
  list-style-type: none;
}
.columns-1{
  -moz-columns: 1;
       columns: 1;
}
.break-inside-avoid{
  -moz-column-break-inside: avoid;
       break-inside: avoid;
}
.grid-cols-1{
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-\[3\.75rem_max-content\]{
  grid-template-columns: 3.75rem max-content;
}
.grid-cols-\[auto_1fr\]{
  grid-template-columns: auto 1fr;
}
.grid-rows-2{
  grid-template-rows: repeat(2, minmax(0, 1fr));
}
.flex-col{
  flex-direction: column;
}
.flex-col-reverse{
  flex-direction: column-reverse;
}
.flex-wrap{
  flex-wrap: wrap;
}
.content-start{
  align-content: flex-start;
}
.items-start{
  align-items: flex-start;
}
.items-end{
  align-items: flex-end;
}
.items-center{
  align-items: center;
}
.items-baseline{
  align-items: baseline;
}
.items-stretch{
  align-items: stretch;
}
.justify-start{
  justify-content: flex-start;
}
.justify-end{
  justify-content: flex-end;
}
.justify-center{
  justify-content: center;
}
.justify-between{
  justify-content: space-between;
}
.gap-0{
  gap: 0px;
}
.gap-0\.5{
  gap: 0.125rem;
}
.gap-1{
  gap: 0.25rem;
}
.gap-1\.5{
  gap: 0.375rem;
}
.gap-10{
  gap: 2.5rem;
}
.gap-12{
  gap: 3rem;
}
.gap-2{
  gap: 0.5rem;
}
.gap-2\.5{
  gap: 0.625rem;
}
.gap-3{
  gap: 0.75rem;
}
.gap-4{
  gap: 1rem;
}
.gap-5{
  gap: 1.25rem;
}
.gap-6{
  gap: 1.5rem;
}
.gap-8{
  gap: 2rem;
}
.gap-\[2px\]{
  gap: 2px;
}
.gap-x-0{
  -moz-column-gap: 0px;
       column-gap: 0px;
}
.gap-x-1\.5{
  -moz-column-gap: 0.375rem;
       column-gap: 0.375rem;
}
.gap-x-2{
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}
.gap-x-3{
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.gap-x-4{
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
.gap-x-5{
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}
.gap-y-1{
  row-gap: 0.25rem;
}
.gap-y-1\.5{
  row-gap: 0.375rem;
}
.gap-y-2{
  row-gap: 0.5rem;
}
.gap-y-3{
  row-gap: 0.75rem;
}
.space-x-4 > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(1rem * var(--tw-space-x-reverse));
  margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-y-0\.5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}
.space-y-10 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2.5rem * var(--tw-space-y-reverse));
}
.space-y-14 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(3.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(3.5rem * var(--tw-space-y-reverse));
}
.space-y-16 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(4rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(4rem * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-2\.5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.space-y-8 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}
.divide-x > :not([hidden]) ~ :not([hidden]){
  --tw-divide-x-reverse: 0;
  border-right-width: calc(1px * var(--tw-divide-x-reverse));
  border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
}
.divide-y > :not([hidden]) ~ :not([hidden]){
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
.divide-border > :not([hidden]) ~ :not([hidden]){
  border-color: hsl(var(--border));
}
.divide-border\/50 > :not([hidden]) ~ :not([hidden]){
  border-color: hsl(var(--border) / 0.5);
}
.divide-border\/60 > :not([hidden]) ~ :not([hidden]){
  border-color: hsl(var(--border) / 0.6);
}
.divide-manipulative-mat-border > :not([hidden]) ~ :not([hidden]){
  border-color: hsl(var(--manipulative-mat-border));
}
.self-start{
  align-self: flex-start;
}
.self-center{
  align-self: center;
}
.self-stretch{
  align-self: stretch;
}
.overflow-auto{
  overflow: auto;
}
.overflow-hidden{
  overflow: hidden;
}
.overflow-visible{
  overflow: visible;
}
.overflow-x-auto{
  overflow-x: auto;
}
.overflow-y-auto{
  overflow-y: auto;
}
.overflow-x-hidden{
  overflow-x: hidden;
}
.overflow-y-hidden{
  overflow-y: hidden;
}
.overflow-x-clip{
  overflow-x: clip;
}
.scroll-smooth{
  scroll-behavior: smooth;
}
.truncate{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.whitespace-normal{
  white-space: normal;
}
.whitespace-nowrap{
  white-space: nowrap;
}
.break-words{
  overflow-wrap: break-word;
}
.break-all{
  word-break: break-all;
}
.rounded{
  border-radius: 0.25rem;
}
.rounded-2xl{
  border-radius: 1rem;
}
.rounded-3xl{
  border-radius: 1.5rem;
}
.rounded-\[2px\]{
  border-radius: 2px;
}
.rounded-\[3px\]{
  border-radius: 3px;
}
.rounded-\[4px\]{
  border-radius: 4px;
}
.rounded-full{
  border-radius: 9999px;
}
.rounded-glass{
  border-radius: 1rem;
}
.rounded-lg{
  border-radius: var(--radius);
}
.rounded-md{
  border-radius: calc(var(--radius) - 2px);
}
.rounded-sm{
  border-radius: calc(var(--radius) - 4px);
}
.rounded-xl{
  border-radius: 0.75rem;
}
.rounded-l-xl{
  border-top-left-radius: 0.75rem;
  border-bottom-left-radius: 0.75rem;
}
.rounded-r-xl{
  border-top-right-radius: 0.75rem;
  border-bottom-right-radius: 0.75rem;
}
.rounded-t-2xl{
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}
.border{
  border-width: 1px;
}
.border-0{
  border-width: 0px;
}
.border-2{
  border-width: 2px;
}
.border-4{
  border-width: 4px;
}
.border-\[24px\]{
  border-width: 24px;
}
.border-\[32px\]{
  border-width: 32px;
}
.border-\[3px\]{
  border-width: 3px;
}
.border-b{
  border-bottom-width: 1px;
}
.border-b-2{
  border-bottom-width: 2px;
}
.border-b-4{
  border-bottom-width: 4px;
}
.border-l-4{
  border-left-width: 4px;
}
.border-r-2{
  border-right-width: 2px;
}
.border-t{
  border-top-width: 1px;
}
.border-t-2{
  border-top-width: 2px;
}
.border-t-\[3px\]{
  border-top-width: 3px;
}
.border-solid{
  border-style: solid;
}
.border-dashed{
  border-style: dashed;
}
.border-amber-200{
  --tw-border-opacity: 1;
  border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
}
.border-amber-300{
  --tw-border-opacity: 1;
  border-color: rgb(252 211 77 / var(--tw-border-opacity, 1));
}
.border-border{
  border-color: hsl(var(--border));
}
.border-border\/20{
  border-color: hsl(var(--border) / 0.2);
}
.border-border\/30{
  border-color: hsl(var(--border) / 0.3);
}
.border-border\/40{
  border-color: hsl(var(--border) / 0.4);
}
.border-border\/50{
  border-color: hsl(var(--border) / 0.5);
}
.border-border\/60{
  border-color: hsl(var(--border) / 0.6);
}
.border-border\/70{
  border-color: hsl(var(--border) / 0.7);
}
.border-card{
  border-color: hsl(var(--card));
}
.border-control-border{
  border-color: hsl(var(--control-border));
}
.border-current{
  border-color: currentColor;
}
.border-destructive{
  border-color: hsl(var(--destructive));
}
.border-destructive\/20{
  border-color: hsl(var(--destructive) / 0.2);
}
.border-destructive\/25{
  border-color: hsl(var(--destructive) / 0.25);
}
.border-destructive\/30{
  border-color: hsl(var(--destructive) / 0.3);
}
.border-destructive\/35{
  border-color: hsl(var(--destructive) / 0.35);
}
.border-destructive\/40{
  border-color: hsl(var(--destructive) / 0.4);
}
.border-destructive\/50{
  border-color: hsl(var(--destructive) / 0.5);
}
.border-emerald-200{
  --tw-border-opacity: 1;
  border-color: rgb(167 243 208 / var(--tw-border-opacity, 1));
}
.border-foreground{
  border-color: hsl(var(--foreground));
}
.border-info{
  border-color: hsl(var(--info));
}
.border-info\/30{
  border-color: hsl(var(--info) / 0.3);
}
.border-input{
  border-color: hsl(var(--input));
}
.border-manipulative-mat-border{
  border-color: hsl(var(--manipulative-mat-border));
}
.border-manipulative-tile-edge{
  border-color: hsl(var(--manipulative-tile-edge));
}
.border-muted-foreground\/30{
  border-color: hsl(var(--muted-foreground) / 0.3);
}
.border-muted-foreground\/40{
  border-color: hsl(var(--muted-foreground) / 0.4);
}
.border-muted\/50{
  border-color: hsl(var(--muted) / 0.5);
}
.border-primary{
  border-color: hsl(var(--primary));
}
.border-primary-foreground\/15{
  border-color: hsl(var(--primary-foreground) / 0.15);
}
.border-primary-foreground\/20{
  border-color: hsl(var(--primary-foreground) / 0.2);
}
.border-primary-foreground\/25{
  border-color: hsl(var(--primary-foreground) / 0.25);
}
.border-primary-foreground\/30{
  border-color: hsl(var(--primary-foreground) / 0.3);
}
.border-primary\/20{
  border-color: hsl(var(--primary) / 0.2);
}
.border-primary\/25{
  border-color: hsl(var(--primary) / 0.25);
}
.border-primary\/30{
  border-color: hsl(var(--primary) / 0.3);
}
.border-primary\/40{
  border-color: hsl(var(--primary) / 0.4);
}
.border-primary\/45{
  border-color: hsl(var(--primary) / 0.45);
}
.border-primary\/50{
  border-color: hsl(var(--primary) / 0.5);
}
.border-red-200{
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}
.border-ring\/70{
  border-color: hsl(var(--ring) / 0.7);
}
.border-slate-200{
  --tw-border-opacity: 1;
  border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
}
.border-success{
  border-color: hsl(var(--success));
}
.border-success\/40{
  border-color: hsl(var(--success) / 0.4);
}
.border-success\/60{
  border-color: hsl(var(--success) / 0.6);
}
.border-transparent{
  border-color: transparent;
}
.border-warning{
  border-color: hsl(var(--warning));
}
.border-warning\/30{
  border-color: hsl(var(--warning) / 0.3);
}
.border-warning\/70{
  border-color: hsl(var(--warning) / 0.7);
}
.border-white\/10{
  border-color: rgb(255 255 255 / 0.1);
}
.border-white\/20{
  border-color: rgb(255 255 255 / 0.2);
}
.border-white\/60{
  border-color: rgb(255 255 255 / 0.6);
}
.border-white\/70{
  border-color: rgb(255 255 255 / 0.7);
}
.border-l-info{
  border-left-color: hsl(var(--info));
}
.border-l-primary{
  border-left-color: hsl(var(--primary));
}
.border-l-success{
  border-left-color: hsl(var(--success));
}
.border-l-warning{
  border-left-color: hsl(var(--warning));
}
.border-t-foreground\/90{
  border-top-color: hsl(var(--foreground) / 0.9);
}
.border-t-primary{
  border-top-color: hsl(var(--primary));
}
.bg-\[\#1AB7EA\]{
  --tw-bg-opacity: 1;
  background-color: rgb(26 183 234 / var(--tw-bg-opacity, 1));
}
.bg-\[\#1AB7EA\]\/15{
  background-color: rgb(26 183 234 / 0.15);
}
.bg-accent\/40{
  background-color: hsl(var(--accent) / 0.4);
}
.bg-amber-100{
  --tw-bg-opacity: 1;
  background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}
.bg-amber-50{
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}
.bg-amber-500{
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}
.bg-background{
  background-color: hsl(var(--background));
}
.bg-background\/60{
  background-color: hsl(var(--background) / 0.6);
}
.bg-background\/70{
  background-color: hsl(var(--background) / 0.7);
}
.bg-background\/80{
  background-color: hsl(var(--background) / 0.8);
}
.bg-background\/90{
  background-color: hsl(var(--background) / 0.9);
}
.bg-background\/95{
  background-color: hsl(var(--background) / 0.95);
}
.bg-black{
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}
.bg-black\/30{
  background-color: rgb(0 0 0 / 0.3);
}
.bg-black\/50{
  background-color: rgb(0 0 0 / 0.5);
}
.bg-black\/70{
  background-color: rgb(0 0 0 / 0.7);
}
.bg-black\/80{
  background-color: rgb(0 0 0 / 0.8);
}
.bg-blue-50{
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}
.bg-border{
  background-color: hsl(var(--border));
}
.bg-border\/30{
  background-color: hsl(var(--border) / 0.3);
}
.bg-border\/60{
  background-color: hsl(var(--border) / 0.6);
}
.bg-card{
  background-color: hsl(var(--card));
}
.bg-card\/50{
  background-color: hsl(var(--card) / 0.5);
}
.bg-card\/60{
  background-color: hsl(var(--card) / 0.6);
}
.bg-card\/75{
  background-color: hsl(var(--card) / 0.75);
}
.bg-card\/80{
  background-color: hsl(var(--card) / 0.8);
}
.bg-card\/90{
  background-color: hsl(var(--card) / 0.9);
}
.bg-card\/95{
  background-color: hsl(var(--card) / 0.95);
}
.bg-chart-yours{
  background-color: hsl(var(--chart-yours));
}
.bg-clock-frame\/20{
  background-color: hsl(var(--clock-frame) / 0.2);
}
.bg-control-disabled{
  background-color: hsl(var(--control-disabled));
}
.bg-current{
  background-color: currentColor;
}
.bg-destructive{
  background-color: hsl(var(--destructive));
}
.bg-destructive-foreground\/20{
  background-color: hsl(var(--destructive-foreground) / 0.2);
}
.bg-destructive\/10{
  background-color: hsl(var(--destructive) / 0.1);
}
.bg-destructive\/15{
  background-color: hsl(var(--destructive) / 0.15);
}
.bg-destructive\/30{
  background-color: hsl(var(--destructive) / 0.3);
}
.bg-destructive\/5{
  background-color: hsl(var(--destructive) / 0.05);
}
.bg-destructive\/70{
  background-color: hsl(var(--destructive) / 0.7);
}
.bg-emerald-100{
  --tw-bg-opacity: 1;
  background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1));
}
.bg-emerald-50{
  --tw-bg-opacity: 1;
  background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));
}
.bg-foreground\/30{
  background-color: hsl(var(--foreground) / 0.3);
}
.bg-foreground\/35{
  background-color: hsl(var(--foreground) / 0.35);
}
.bg-foreground\/50{
  background-color: hsl(var(--foreground) / 0.5);
}
.bg-foreground\/60{
  background-color: hsl(var(--foreground) / 0.6);
}
.bg-foreground\/90{
  background-color: hsl(var(--foreground) / 0.9);
}
.bg-glass-bg{
  background-color: hsl(var(--glass-bg));
}
.bg-green-50{
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
}
.bg-info{
  background-color: hsl(var(--info));
}
.bg-info\/10{
  background-color: hsl(var(--info) / 0.1);
}
.bg-manipulative-mat{
  background-color: hsl(var(--manipulative-mat));
}
.bg-manipulative-slot{
  background-color: hsl(var(--manipulative-slot));
}
.bg-manipulative-tile{
  background-color: hsl(var(--manipulative-tile));
}
.bg-manipulative-tile\/10{
  background-color: hsl(var(--manipulative-tile) / 0.1);
}
.bg-manipulative-tile\/25{
  background-color: hsl(var(--manipulative-tile) / 0.25);
}
.bg-manipulative-tile\/50{
  background-color: hsl(var(--manipulative-tile) / 0.5);
}
.bg-mastery-0{
  background-color: hsl(var(--mastery-0));
}
.bg-mastery-100{
  background-color: hsl(var(--mastery-100));
}
.bg-mastery-25{
  background-color: hsl(var(--mastery-25));
}
.bg-mastery-50{
  background-color: hsl(var(--mastery-50));
}
.bg-mastery-75{
  background-color: hsl(var(--mastery-75));
}
.bg-muted{
  background-color: hsl(var(--muted));
}
.bg-muted-foreground{
  background-color: hsl(var(--muted-foreground));
}
.bg-muted-foreground\/30{
  background-color: hsl(var(--muted-foreground) / 0.3);
}
.bg-muted-foreground\/60{
  background-color: hsl(var(--muted-foreground) / 0.6);
}
.bg-muted\/15{
  background-color: hsl(var(--muted) / 0.15);
}
.bg-muted\/20{
  background-color: hsl(var(--muted) / 0.2);
}
.bg-muted\/30{
  background-color: hsl(var(--muted) / 0.3);
}
.bg-muted\/40{
  background-color: hsl(var(--muted) / 0.4);
}
.bg-muted\/45{
  background-color: hsl(var(--muted) / 0.45);
}
.bg-muted\/50{
  background-color: hsl(var(--muted) / 0.5);
}
.bg-muted\/60{
  background-color: hsl(var(--muted) / 0.6);
}
.bg-muted\/70{
  background-color: hsl(var(--muted) / 0.7);
}
.bg-popover{
  background-color: hsl(var(--popover));
}
.bg-primary{
  background-color: hsl(var(--primary));
}
.bg-primary-foreground{
  background-color: hsl(var(--primary-foreground));
}
.bg-primary-foreground\/10{
  background-color: hsl(var(--primary-foreground) / 0.1);
}
.bg-primary-foreground\/15{
  background-color: hsl(var(--primary-foreground) / 0.15);
}
.bg-primary-foreground\/20{
  background-color: hsl(var(--primary-foreground) / 0.2);
}
.bg-primary-foreground\/30{
  background-color: hsl(var(--primary-foreground) / 0.3);
}
.bg-primary\/10{
  background-color: hsl(var(--primary) / 0.1);
}
.bg-primary\/15{
  background-color: hsl(var(--primary) / 0.15);
}
.bg-primary\/35{
  background-color: hsl(var(--primary) / 0.35);
}
.bg-primary\/40{
  background-color: hsl(var(--primary) / 0.4);
}
.bg-primary\/5{
  background-color: hsl(var(--primary) / 0.05);
}
.bg-primary\/80{
  background-color: hsl(var(--primary) / 0.8);
}
.bg-red-50{
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
.bg-rose-100{
  --tw-bg-opacity: 1;
  background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1));
}
.bg-secondary{
  background-color: hsl(var(--secondary));
}
.bg-slate-200{
  --tw-bg-opacity: 1;
  background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
}
.bg-slate-50{
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}
.bg-success{
  background-color: hsl(var(--success));
}
.bg-success-foreground\/20{
  background-color: hsl(var(--success-foreground) / 0.2);
}
.bg-success\/10{
  background-color: hsl(var(--success) / 0.1);
}
.bg-success\/15{
  background-color: hsl(var(--success) / 0.15);
}
.bg-success\/5{
  background-color: hsl(var(--success) / 0.05);
}
.bg-success\/70{
  background-color: hsl(var(--success) / 0.7);
}
.bg-transparent{
  background-color: transparent;
}
.bg-violet-100{
  --tw-bg-opacity: 1;
  background-color: rgb(237 233 254 / var(--tw-bg-opacity, 1));
}
.bg-warning{
  background-color: hsl(var(--warning));
}
.bg-warning\/10{
  background-color: hsl(var(--warning) / 0.1);
}
.bg-warning\/25{
  background-color: hsl(var(--warning) / 0.25);
}
.bg-warning\/5{
  background-color: hsl(var(--warning) / 0.05);
}
.bg-warning\/90{
  background-color: hsl(var(--warning) / 0.9);
}
.bg-white{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.bg-white\/10{
  background-color: rgb(255 255 255 / 0.1);
}
.bg-white\/15{
  background-color: rgb(255 255 255 / 0.15);
}
.bg-white\/20{
  background-color: rgb(255 255 255 / 0.2);
}
.bg-white\/5{
  background-color: rgb(255 255 255 / 0.05);
}
.bg-white\/50{
  background-color: rgb(255 255 255 / 0.5);
}
.bg-white\/80{
  background-color: rgb(255 255 255 / 0.8);
}
.bg-yellow-400{
  --tw-bg-opacity: 1;
  background-color: rgb(250 204 21 / var(--tw-bg-opacity, 1));
}
.bg-gradient-to-b{
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}
.bg-gradient-to-br{
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}
.bg-gradient-to-l{
  background-image: linear-gradient(to left, var(--tw-gradient-stops));
}
.bg-gradient-to-r{
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
.from-background{
  --tw-gradient-from: hsl(var(--background)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-500{
  --tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-card{
  --tw-gradient-from: hsl(var(--card)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--card) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-card-blue-base{
  --tw-gradient-from: hsl(var(--card-blue-base)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--card-blue-base) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-card-green-base{
  --tw-gradient-from: hsl(var(--card-green-base)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--card-green-base) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-card-violet-base{
  --tw-gradient-from: hsl(var(--card-violet-base)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--card-violet-base) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-destructive{
  --tw-gradient-from: hsl(var(--destructive)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--destructive) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-emerald-400{
  --tw-gradient-from: #34d399 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(52 211 153 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-fuchsia-500{
  --tw-gradient-from: #d946ef var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(217 70 239 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-muted\/30{
  --tw-gradient-from: hsl(var(--muted) / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--muted) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-orange-400{
  --tw-gradient-from: #fb923c var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(251 146 60 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-primary{
  --tw-gradient-from: hsl(var(--primary)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-primary\/10{
  --tw-gradient-from: hsl(var(--primary) / 0.1) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-primary\/5{
  --tw-gradient-from: hsl(var(--primary) / 0.05) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-primary\/75{
  --tw-gradient-from: hsl(var(--primary) / 0.75) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-rose-400{
  --tw-gradient-from: #fb7185 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(251 113 133 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-slate-400{
  --tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-success{
  --tw-gradient-from: hsl(var(--success)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--success) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-transparent{
  --tw-gradient-from: transparent var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-violet-600{
  --tw-gradient-from: #7c3aed var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(124 58 237 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-white\/95{
  --tw-gradient-from: rgb(255 255 255 / 0.95) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.via-card\/80{
  --tw-gradient-to: hsl(var(--card) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--card) / 0.8) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-indigo-500{
  --tw-gradient-to: rgb(99 102 241 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #6366f1 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-primary{
  --tw-gradient-to: hsl(var(--primary) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary)) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-primary\/70{
  --tw-gradient-to: hsl(var(--primary) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / 0.7) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-primary\/90{
  --tw-gradient-to: hsl(var(--primary) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / 0.9) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-purple-500{
  --tw-gradient-to: rgb(168 85 247 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #a855f7 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-rose-500{
  --tw-gradient-to: rgb(244 63 94 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #f43f5e var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-slate-500{
  --tw-gradient-to: rgb(100 116 139 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #64748b var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-teal-500{
  --tw-gradient-to: rgb(20 184 166 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #14b8a6 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-white\/20{
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / 0.2) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-white\/85{
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / 0.85) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.to-blue-600{
  --tw-gradient-to: #2563eb var(--tw-gradient-to-position);
}
.to-card-blue-soft{
  --tw-gradient-to: hsl(var(--card-blue-soft)) var(--tw-gradient-to-position);
}
.to-card-green-soft{
  --tw-gradient-to: hsl(var(--card-green-soft)) var(--tw-gradient-to-position);
}
.to-card-violet-soft{
  --tw-gradient-to: hsl(var(--card-violet-soft)) var(--tw-gradient-to-position);
}
.to-cyan-600{
  --tw-gradient-to: #0891b2 var(--tw-gradient-to-position);
}
.to-destructive\/85{
  --tw-gradient-to: hsl(var(--destructive) / 0.85) var(--tw-gradient-to-position);
}
.to-pink-500{
  --tw-gradient-to: #ec4899 var(--tw-gradient-to-position);
}
.to-primary\/10{
  --tw-gradient-to: hsl(var(--primary) / 0.1) var(--tw-gradient-to-position);
}
.to-primary\/15{
  --tw-gradient-to: hsl(var(--primary) / 0.15) var(--tw-gradient-to-position);
}
.to-primary\/30{
  --tw-gradient-to: hsl(var(--primary) / 0.3) var(--tw-gradient-to-position);
}
.to-primary\/70{
  --tw-gradient-to: hsl(var(--primary) / 0.7) var(--tw-gradient-to-position);
}
.to-primary\/80{
  --tw-gradient-to: hsl(var(--primary) / 0.8) var(--tw-gradient-to-position);
}
.to-primary\/85{
  --tw-gradient-to: hsl(var(--primary) / 0.85) var(--tw-gradient-to-position);
}
.to-red-600{
  --tw-gradient-to: #dc2626 var(--tw-gradient-to-position);
}
.to-slate-600{
  --tw-gradient-to: #475569 var(--tw-gradient-to-position);
}
.to-success\/85{
  --tw-gradient-to: hsl(var(--success) / 0.85) var(--tw-gradient-to-position);
}
.to-teal-500{
  --tw-gradient-to: #14b8a6 var(--tw-gradient-to-position);
}
.to-transparent{
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}
.to-violet-600{
  --tw-gradient-to: #7c3aed var(--tw-gradient-to-position);
}
.to-white\/70{
  --tw-gradient-to: rgb(255 255 255 / 0.7) var(--tw-gradient-to-position);
}
.fill-accent\/30{
  fill: hsl(var(--accent) / 0.3);
}
.fill-accent\/40{
  fill: hsl(var(--accent) / 0.4);
}
.fill-accent\/50{
  fill: hsl(var(--accent) / 0.5);
}
.fill-amber-400{
  fill: #fbbf24;
}
.fill-card{
  fill: hsl(var(--card));
}
.fill-chart-1{
  fill: hsl(var(--chart-1));
}
.fill-chart-2{
  fill: hsl(var(--chart-2));
}
.fill-chart-3{
  fill: hsl(var(--chart-3));
}
.fill-chart-4{
  fill: hsl(var(--chart-4));
}
.fill-chart-5{
  fill: hsl(var(--chart-5));
}
.fill-chart-datum{
  fill: hsl(var(--chart-datum));
}
.fill-chart-datum\/70{
  fill: hsl(var(--chart-datum) / 0.7);
}
.fill-chart-given{
  fill: hsl(var(--chart-given));
}
.fill-chart-given\/45{
  fill: hsl(var(--chart-given) / 0.45);
}
.fill-chart-yours{
  fill: hsl(var(--chart-yours));
}
.fill-chart-yours\/10{
  fill: hsl(var(--chart-yours) / 0.1);
}
.fill-chart-yours\/70{
  fill: hsl(var(--chart-yours) / 0.7);
}
.fill-clock-frame{
  fill: hsl(var(--clock-frame));
}
.fill-current{
  fill: currentColor;
}
.fill-destructive{
  fill: hsl(var(--destructive));
}
.fill-destructive-ink{
  fill: hsl(var(--destructive-ink));
}
.fill-destructive-ink\/60{
  fill: hsl(var(--destructive-ink) / 0.6);
}
.fill-destructive\/10{
  fill: hsl(var(--destructive) / 0.1);
}
.fill-destructive\/15{
  fill: hsl(var(--destructive) / 0.15);
}
.fill-foreground{
  fill: hsl(var(--foreground));
}
.fill-foreground\/15{
  fill: hsl(var(--foreground) / 0.15);
}
.fill-foreground\/75{
  fill: hsl(var(--foreground) / 0.75);
}
.fill-foreground\/\[0\.04\]{
  fill: hsl(var(--foreground) / 0.04);
}
.fill-fraction-empty{
  fill: hsl(var(--fraction-empty));
}
.fill-geometry-face{
  fill: hsl(var(--geometry-face));
}
.fill-geometry-measure{
  fill: hsl(var(--geometry-measure));
}
.fill-info{
  fill: hsl(var(--info));
}
.fill-info\/15{
  fill: hsl(var(--info) / 0.15);
}
.fill-manipulative-mat{
  fill: hsl(var(--manipulative-mat));
}
.fill-manipulative-slot{
  fill: hsl(var(--manipulative-slot));
}
.fill-manipulative-tile{
  fill: hsl(var(--manipulative-tile));
}
.fill-manipulative-tile-edge{
  fill: hsl(var(--manipulative-tile-edge));
}
.fill-measure-frame{
  fill: hsl(var(--measure-frame));
}
.fill-muted{
  fill: hsl(var(--muted));
}
.fill-muted-foreground{
  fill: hsl(var(--muted-foreground));
}
.fill-muted-foreground\/15{
  fill: hsl(var(--muted-foreground) / 0.15);
}
.fill-muted-foreground\/40{
  fill: hsl(var(--muted-foreground) / 0.4);
}
.fill-muted\/20{
  fill: hsl(var(--muted) / 0.2);
}
.fill-muted\/30{
  fill: hsl(var(--muted) / 0.3);
}
.fill-muted\/40{
  fill: hsl(var(--muted) / 0.4);
}
.fill-none{
  fill: none;
}
.fill-object-apple{
  fill: hsl(var(--object-apple));
}
.fill-object-ball{
  fill: hsl(var(--object-ball));
}
.fill-object-book{
  fill: hsl(var(--object-book));
}
.fill-object-container{
  fill: hsl(var(--object-container));
}
.fill-object-cup{
  fill: hsl(var(--object-cup));
}
.fill-object-hat{
  fill: hsl(var(--object-hat));
}
.fill-primary{
  fill: hsl(var(--primary));
}
.fill-primary\/10{
  fill: hsl(var(--primary) / 0.1);
}
.fill-primary\/15{
  fill: hsl(var(--primary) / 0.15);
}
.fill-primary\/20{
  fill: hsl(var(--primary) / 0.2);
}
.fill-primary\/25{
  fill: hsl(var(--primary) / 0.25);
}
.fill-primary\/30{
  fill: hsl(var(--primary) / 0.3);
}
.fill-primary\/5{
  fill: hsl(var(--primary) / 0.05);
}
.fill-primary\/70{
  fill: hsl(var(--primary) / 0.7);
}
.fill-ratio-unknown{
  fill: hsl(var(--ratio-unknown));
}
.fill-secondary{
  fill: hsl(var(--secondary));
}
.fill-star-gold{
  fill: hsl(var(--star-gold));
}
.fill-star-gold\/70{
  fill: hsl(var(--star-gold) / 0.7);
}
.fill-star-gold\/90{
  fill: hsl(var(--star-gold) / 0.9);
}
.fill-subject-crayon{
  fill: hsl(var(--subject-crayon));
}
.fill-subject-eraser{
  fill: hsl(var(--subject-eraser));
}
.fill-subject-ferrule{
  fill: hsl(var(--subject-ferrule));
}
.fill-subject-graphite{
  fill: hsl(var(--subject-graphite));
}
.fill-subject-pencil{
  fill: hsl(var(--subject-pencil));
}
.fill-subject-ribbon{
  fill: hsl(var(--subject-ribbon));
}
.fill-subject-string{
  fill: hsl(var(--subject-string));
}
.fill-subject-wood{
  fill: hsl(var(--subject-wood));
}
.fill-success{
  fill: hsl(var(--success));
}
.fill-success-ink{
  fill: hsl(var(--success-ink));
}
.fill-success\/15{
  fill: hsl(var(--success) / 0.15);
}
.fill-success\/5{
  fill: hsl(var(--success) / 0.05);
}
.fill-success\/60{
  fill: hsl(var(--success) / 0.6);
}
.fill-tool-frame{
  fill: hsl(var(--tool-frame));
}
.fill-transparent{
  fill: transparent;
}
.fill-warning{
  fill: hsl(var(--warning));
}
.fill-warning\/20{
  fill: hsl(var(--warning) / 0.2);
}
.stroke-background{
  stroke: hsl(var(--background));
}
.stroke-border{
  stroke: hsl(var(--border));
}
.stroke-border\/40{
  stroke: hsl(var(--border) / 0.4);
}
.stroke-border\/50{
  stroke: hsl(var(--border) / 0.5);
}
.stroke-card{
  stroke: hsl(var(--card));
}
.stroke-chart-1-edge{
  stroke: hsl(var(--chart-1-edge));
}
.stroke-chart-2-edge{
  stroke: hsl(var(--chart-2-edge));
}
.stroke-chart-3-edge{
  stroke: hsl(var(--chart-3-edge));
}
.stroke-chart-4-edge{
  stroke: hsl(var(--chart-4-edge));
}
.stroke-chart-5-edge{
  stroke: hsl(var(--chart-5-edge));
}
.stroke-chart-datum{
  stroke: hsl(var(--chart-datum));
}
.stroke-chart-given{
  stroke: hsl(var(--chart-given));
}
.stroke-chart-yours{
  stroke: hsl(var(--chart-yours));
}
.stroke-chart-yours\/80{
  stroke: hsl(var(--chart-yours) / 0.8);
}
.stroke-clock-frame{
  stroke: hsl(var(--clock-frame));
}
.stroke-destructive{
  stroke: hsl(var(--destructive));
}
.stroke-destructive-foreground{
  stroke: hsl(var(--destructive-foreground));
}
.stroke-destructive-ink{
  stroke: hsl(var(--destructive-ink));
}
.stroke-foreground{
  stroke: hsl(var(--foreground));
}
.stroke-fraction-boundary{
  stroke: hsl(var(--fraction-boundary));
}
.stroke-geometry-measure{
  stroke: hsl(var(--geometry-measure));
}
.stroke-info{
  stroke: hsl(var(--info));
}
.stroke-manipulative-mat-border{
  stroke: hsl(var(--manipulative-mat-border));
}
.stroke-manipulative-tile{
  stroke: hsl(var(--manipulative-tile));
}
.stroke-manipulative-tile-edge{
  stroke: hsl(var(--manipulative-tile-edge));
}
.stroke-measure-frame{
  stroke: hsl(var(--measure-frame));
}
.stroke-money-frame{
  stroke: hsl(var(--money-frame));
}
.stroke-muted{
  stroke: hsl(var(--muted));
}
.stroke-muted-foreground{
  stroke: hsl(var(--muted-foreground));
}
.stroke-muted-foreground\/30{
  stroke: hsl(var(--muted-foreground) / 0.3);
}
.stroke-muted-foreground\/85{
  stroke: hsl(var(--muted-foreground) / 0.85);
}
.stroke-none{
  stroke: none;
}
.stroke-object-apple-edge{
  stroke: hsl(var(--object-apple-edge));
}
.stroke-object-ball-edge{
  stroke: hsl(var(--object-ball-edge));
}
.stroke-object-book-edge{
  stroke: hsl(var(--object-book-edge));
}
.stroke-object-container-edge{
  stroke: hsl(var(--object-container-edge));
}
.stroke-object-cup-edge{
  stroke: hsl(var(--object-cup-edge));
}
.stroke-object-hat-edge{
  stroke: hsl(var(--object-hat-edge));
}
.stroke-primary{
  stroke: hsl(var(--primary));
}
.stroke-primary\/40{
  stroke: hsl(var(--primary) / 0.4);
}
.stroke-primary\/45{
  stroke: hsl(var(--primary) / 0.45);
}
.stroke-primary\/50{
  stroke: hsl(var(--primary) / 0.5);
}
.stroke-primary\/60{
  stroke: hsl(var(--primary) / 0.6);
}
.stroke-primary\/80{
  stroke: hsl(var(--primary) / 0.8);
}
.stroke-ring{
  stroke: hsl(var(--ring));
}
.stroke-subject-crayon-edge{
  stroke: hsl(var(--subject-crayon-edge));
}
.stroke-subject-pencil-edge{
  stroke: hsl(var(--subject-pencil-edge));
}
.stroke-subject-ribbon-edge{
  stroke: hsl(var(--subject-ribbon-edge));
}
.stroke-subject-string-edge{
  stroke: hsl(var(--subject-string-edge));
}
.stroke-subject-wood-edge{
  stroke: hsl(var(--subject-wood-edge));
}
.stroke-success{
  stroke: hsl(var(--success));
}
.stroke-success-foreground{
  stroke: hsl(var(--success-foreground));
}
.stroke-success-ink{
  stroke: hsl(var(--success-ink));
}
.stroke-tool-frame{
  stroke: hsl(var(--tool-frame));
}
.stroke-transparent{
  stroke: transparent;
}
.stroke-warning{
  stroke: hsl(var(--warning));
}
.stroke-\[2\.5\]{
  stroke-width: 2.5;
}
.object-contain{
  -o-object-fit: contain;
     object-fit: contain;
}
.object-cover{
  -o-object-fit: cover;
     object-fit: cover;
}
.p-0{
  padding: 0px;
}
.p-0\.5{
  padding: 0.125rem;
}
.p-1{
  padding: 0.25rem;
}
.p-1\.5{
  padding: 0.375rem;
}
.p-12{
  padding: 3rem;
}
.p-2{
  padding: 0.5rem;
}
.p-2\.5{
  padding: 0.625rem;
}
.p-3{
  padding: 0.75rem;
}
.p-3\.5{
  padding: 0.875rem;
}
.p-4{
  padding: 1rem;
}
.p-5{
  padding: 1.25rem;
}
.p-6{
  padding: 1.5rem;
}
.p-8{
  padding: 2rem;
}
.px-0{
  padding-left: 0px;
  padding-right: 0px;
}
.px-0\.5{
  padding-left: 0.125rem;
  padding-right: 0.125rem;
}
.px-1{
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-1\.5{
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}
.px-2{
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5{
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-3{
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-3\.5{
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}
.px-4{
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-5{
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-6{
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-7{
  padding-left: 1.75rem;
  padding-right: 1.75rem;
}
.px-8{
  padding-left: 2rem;
  padding-right: 2rem;
}
.px-9{
  padding-left: 2.25rem;
  padding-right: 2.25rem;
}
.py-0\.5{
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1{
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5{
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-10{
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.py-12{
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-16{
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.py-2{
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5{
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-20{
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.py-24{
  padding-top: 6rem;
  padding-bottom: 6rem;
}
.py-3{
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-3\.5{
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}
.py-4{
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-5{
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.py-6{
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-8{
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.py-\[14px\]{
  padding-top: 14px;
  padding-bottom: 14px;
}
.pb-1{
  padding-bottom: 0.25rem;
}
.pb-10{
  padding-bottom: 2.5rem;
}
.pb-16{
  padding-bottom: 4rem;
}
.pb-2{
  padding-bottom: 0.5rem;
}
.pb-20{
  padding-bottom: 5rem;
}
.pb-24{
  padding-bottom: 6rem;
}
.pb-3{
  padding-bottom: 0.75rem;
}
.pb-4{
  padding-bottom: 1rem;
}
.pb-5{
  padding-bottom: 1.25rem;
}
.pb-6{
  padding-bottom: 1.5rem;
}
.pb-8{
  padding-bottom: 2rem;
}
.pb-\[calc\(3\.5rem\+env\(safe-area-inset-bottom\2c 0px\)\)\]{
  padding-bottom: calc(3.5rem + env(safe-area-inset-bottom,0px));
}
.pl-2{
  padding-left: 0.5rem;
}
.pl-3{
  padding-left: 0.75rem;
}
.pl-4{
  padding-left: 1rem;
}
.pl-5{
  padding-left: 1.25rem;
}
.pl-6{
  padding-left: 1.5rem;
}
.pl-8{
  padding-left: 2rem;
}
.pr-2{
  padding-right: 0.5rem;
}
.pr-8{
  padding-right: 2rem;
}
.pt-0{
  padding-top: 0px;
}
.pt-1{
  padding-top: 0.25rem;
}
.pt-10{
  padding-top: 2.5rem;
}
.pt-2{
  padding-top: 0.5rem;
}
.pt-2\.5{
  padding-top: 0.625rem;
}
.pt-20{
  padding-top: 5rem;
}
.pt-3{
  padding-top: 0.75rem;
}
.pt-4{
  padding-top: 1rem;
}
.pt-5{
  padding-top: 1.25rem;
}
.pt-6{
  padding-top: 1.5rem;
}
.pt-8{
  padding-top: 2rem;
}
.text-left{
  text-align: left;
}
.text-center{
  text-align: center;
}
.text-right{
  text-align: right;
}
.align-middle{
  vertical-align: middle;
}
.font-mono{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.font-sans{
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
.text-2xl{
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl{
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl{
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-5xl{
  font-size: 3rem;
  line-height: 1;
}
.text-\[0\.65rem\]{
  font-size: 0.65rem;
}
.text-\[0\.875em\]{
  font-size: 0.875em;
}
.text-\[1\.2rem\]{
  font-size: 1.2rem;
}
.text-\[10px\]{
  font-size: 10px;
}
.text-\[11px\]{
  font-size: 11px;
}
.text-\[12px\]{
  font-size: 12px;
}
.text-\[13px\]{
  font-size: 13px;
}
.text-\[14px\]{
  font-size: 14px;
}
.text-\[15px\]{
  font-size: 15px;
}
.text-\[16px\]{
  font-size: 16px;
}
.text-\[17px\]{
  font-size: 17px;
}
.text-\[18px\]{
  font-size: 18px;
}
.text-\[2\.4rem\]{
  font-size: 2.4rem;
}
.text-\[2\.75rem\]{
  font-size: 2.75rem;
}
.text-\[23px\]{
  font-size: 23px;
}
.text-\[36px\]{
  font-size: 36px;
}
.text-\[9px\]{
  font-size: 9px;
}
.text-base{
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg{
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm{
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl{
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs{
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-black{
  font-weight: 900;
}
.font-bold{
  font-weight: 700;
}
.font-extrabold{
  font-weight: 800;
}
.font-medium{
  font-weight: 500;
}
.font-normal{
  font-weight: 400;
}
.font-semibold{
  font-weight: 600;
}
.uppercase{
  text-transform: uppercase;
}
.capitalize{
  text-transform: capitalize;
}
.italic{
  font-style: italic;
}
.ordinal{
  --tw-ordinal: ordinal;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.tabular-nums{
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.leading-5{
  line-height: 1.25rem;
}
.leading-6{
  line-height: 1.5rem;
}
.leading-7{
  line-height: 1.75rem;
}
.leading-none{
  line-height: 1;
}
.leading-relaxed{
  line-height: 1.625;
}
.leading-snug{
  line-height: 1.375;
}
.leading-tight{
  line-height: 1.25;
}
.tracking-\[0\.12em\]{
  letter-spacing: 0.12em;
}
.tracking-\[0\.15em\]{
  letter-spacing: 0.15em;
}
.tracking-\[0\.18em\]{
  letter-spacing: 0.18em;
}
.tracking-\[0\.22em\]{
  letter-spacing: 0.22em;
}
.tracking-\[0\.28em\]{
  letter-spacing: 0.28em;
}
.tracking-normal{
  letter-spacing: 0em;
}
.tracking-tight{
  letter-spacing: -0.025em;
}
.tracking-wide{
  letter-spacing: 0.025em;
}
.tracking-wider{
  letter-spacing: 0.05em;
}
.tracking-widest{
  letter-spacing: 0.1em;
}
.text-\[\#1AB7EA\]{
  --tw-text-opacity: 1;
  color: rgb(26 183 234 / var(--tw-text-opacity, 1));
}
.text-amber-400{
  --tw-text-opacity: 1;
  color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}
.text-amber-600{
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}
.text-amber-700{
  --tw-text-opacity: 1;
  color: rgb(180 83 9 / var(--tw-text-opacity, 1));
}
.text-amber-800{
  --tw-text-opacity: 1;
  color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}
.text-amber-800\/80{
  color: rgb(146 64 14 / 0.8);
}
.text-amber-900{
  --tw-text-opacity: 1;
  color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}
.text-background{
  color: hsl(var(--background));
}
.text-blue-400{
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}
.text-blue-700{
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}
.text-card{
  color: hsl(var(--card));
}
.text-card-blue-base{
  color: hsl(var(--card-blue-base));
}
.text-card-foreground{
  color: hsl(var(--card-foreground));
}
.text-card-green-base{
  color: hsl(var(--card-green-base));
}
.text-card-violet-base{
  color: hsl(var(--card-violet-base));
}
.text-control-disabled-foreground{
  color: hsl(var(--control-disabled-foreground));
}
.text-control-support-foreground{
  color: hsl(var(--control-support-foreground));
}
.text-destructive{
  color: hsl(var(--destructive));
}
.text-destructive-foreground{
  color: hsl(var(--destructive-foreground));
}
.text-destructive-foreground\/60{
  color: hsl(var(--destructive-foreground) / 0.6);
}
.text-destructive-foreground\/70{
  color: hsl(var(--destructive-foreground) / 0.7);
}
.text-destructive-foreground\/85{
  color: hsl(var(--destructive-foreground) / 0.85);
}
.text-destructive-foreground\/90{
  color: hsl(var(--destructive-foreground) / 0.9);
}
.text-destructive-ink{
  color: hsl(var(--destructive-ink));
}
.text-destructive\/60{
  color: hsl(var(--destructive) / 0.6);
}
.text-destructive\/65{
  color: hsl(var(--destructive) / 0.65);
}
.text-destructive\/70{
  color: hsl(var(--destructive) / 0.7);
}
.text-destructive\/75{
  color: hsl(var(--destructive) / 0.75);
}
.text-emerald-100{
  --tw-text-opacity: 1;
  color: rgb(209 250 229 / var(--tw-text-opacity, 1));
}
.text-emerald-600{
  --tw-text-opacity: 1;
  color: rgb(5 150 105 / var(--tw-text-opacity, 1));
}
.text-emerald-900{
  --tw-text-opacity: 1;
  color: rgb(6 78 59 / var(--tw-text-opacity, 1));
}
.text-foreground{
  color: hsl(var(--foreground));
}
.text-foreground\/50{
  color: hsl(var(--foreground) / 0.5);
}
.text-foreground\/55{
  color: hsl(var(--foreground) / 0.55);
}
.text-foreground\/60{
  color: hsl(var(--foreground) / 0.6);
}
.text-foreground\/70{
  color: hsl(var(--foreground) / 0.7);
}
.text-foreground\/75{
  color: hsl(var(--foreground) / 0.75);
}
.text-foreground\/80{
  color: hsl(var(--foreground) / 0.8);
}
.text-green-600{
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}
.text-green-700{
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}
.text-info{
  color: hsl(var(--info));
}
.text-info-foreground{
  color: hsl(var(--info-foreground));
}
.text-manipulative-tile-edge{
  color: hsl(var(--manipulative-tile-edge));
}
.text-muted{
  color: hsl(var(--muted));
}
.text-muted-foreground{
  color: hsl(var(--muted-foreground));
}
.text-muted-foreground\/30{
  color: hsl(var(--muted-foreground) / 0.3);
}
.text-muted-foreground\/40{
  color: hsl(var(--muted-foreground) / 0.4);
}
.text-muted-foreground\/50{
  color: hsl(var(--muted-foreground) / 0.5);
}
.text-muted-foreground\/60{
  color: hsl(var(--muted-foreground) / 0.6);
}
.text-muted-foreground\/70{
  color: hsl(var(--muted-foreground) / 0.7);
}
.text-muted-foreground\/80{
  color: hsl(var(--muted-foreground) / 0.8);
}
.text-popover-foreground{
  color: hsl(var(--popover-foreground));
}
.text-popover-foreground\/70{
  color: hsl(var(--popover-foreground) / 0.7);
}
.text-primary{
  color: hsl(var(--primary));
}
.text-primary-foreground{
  color: hsl(var(--primary-foreground));
}
.text-primary-foreground\/60{
  color: hsl(var(--primary-foreground) / 0.6);
}
.text-primary-foreground\/70{
  color: hsl(var(--primary-foreground) / 0.7);
}
.text-primary-foreground\/75{
  color: hsl(var(--primary-foreground) / 0.75);
}
.text-primary-foreground\/80{
  color: hsl(var(--primary-foreground) / 0.8);
}
.text-primary-foreground\/85{
  color: hsl(var(--primary-foreground) / 0.85);
}
.text-primary-foreground\/90{
  color: hsl(var(--primary-foreground) / 0.9);
}
.text-primary\/40{
  color: hsl(var(--primary) / 0.4);
}
.text-primary\/50{
  color: hsl(var(--primary) / 0.5);
}
.text-primary\/60{
  color: hsl(var(--primary) / 0.6);
}
.text-primary\/75{
  color: hsl(var(--primary) / 0.75);
}
.text-primary\/80{
  color: hsl(var(--primary) / 0.8);
}
.text-red-700{
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}
.text-red-800{
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}
.text-rose-100{
  --tw-text-opacity: 1;
  color: rgb(255 228 230 / var(--tw-text-opacity, 1));
}
.text-rose-100\/70{
  color: rgb(255 228 230 / 0.7);
}
.text-rose-100\/80{
  color: rgb(255 228 230 / 0.8);
}
.text-rose-600{
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}
.text-secondary-foreground{
  color: hsl(var(--secondary-foreground));
}
.text-slate-400{
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.text-slate-800{
  --tw-text-opacity: 1;
  color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.text-star-gold{
  color: hsl(var(--star-gold));
}
.text-star-gold\/70{
  color: hsl(var(--star-gold) / 0.7);
}
.text-star-gold\/75{
  color: hsl(var(--star-gold) / 0.75);
}
.text-star-gold\/80{
  color: hsl(var(--star-gold) / 0.8);
}
.text-star-gold\/90{
  color: hsl(var(--star-gold) / 0.9);
}
.text-streak-flame{
  color: hsl(var(--streak-flame));
}
.text-success{
  color: hsl(var(--success));
}
.text-success-foreground{
  color: hsl(var(--success-foreground));
}
.text-success-foreground\/75{
  color: hsl(var(--success-foreground) / 0.75);
}
.text-success-foreground\/85{
  color: hsl(var(--success-foreground) / 0.85);
}
.text-success-ink{
  color: hsl(var(--success-ink));
}
.text-violet-600{
  --tw-text-opacity: 1;
  color: rgb(124 58 237 / var(--tw-text-opacity, 1));
}
.text-warning{
  color: hsl(var(--warning));
}
.text-warning-foreground{
  color: hsl(var(--warning-foreground));
}
.text-white{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-white\/60{
  color: rgb(255 255 255 / 0.6);
}
.text-white\/70{
  color: rgb(255 255 255 / 0.7);
}
.text-white\/75{
  color: rgb(255 255 255 / 0.75);
}
.text-white\/80{
  color: rgb(255 255 255 / 0.8);
}
.text-white\/90{
  color: rgb(255 255 255 / 0.9);
}
.text-yellow-900{
  --tw-text-opacity: 1;
  color: rgb(113 63 18 / var(--tw-text-opacity, 1));
}
.underline{
  text-decoration-line: underline;
}
.underline-offset-2{
  text-underline-offset: 2px;
}
.underline-offset-4{
  text-underline-offset: 4px;
}
.accent-primary{
  accent-color: hsl(var(--primary));
}
.opacity-0{
  opacity: 0;
}
.opacity-20{
  opacity: 0.2;
}
.opacity-40{
  opacity: 0.4;
}
.opacity-50{
  opacity: 0.5;
}
.opacity-60{
  opacity: 0.6;
}
.opacity-70{
  opacity: 0.7;
}
.opacity-75{
  opacity: 0.75;
}
.opacity-80{
  opacity: 0.8;
}
.opacity-90{
  opacity: 0.9;
}
.shadow{
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-2xl{
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_1px_4px_rgba\(0\2c 0\2c 0\2c 0\.05\)\]{
  --tw-shadow: 0 1px 4px rgba(0,0,0,0.05);
  --tw-shadow-colored: 0 1px 4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_2px_10px_rgba\(0\2c 0\2c 0\2c 0\.08\)\2c inset_0_1px_0_rgba\(255\2c 255\2c 255\2c 0\.9\)\]{
  --tw-shadow: 0 2px 10px rgba(0,0,0,0.08),inset 0 1px 0 rgba(255,255,255,0.9);
  --tw-shadow-colored: 0 2px 10px var(--tw-shadow-color), inset 0 1px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_2px_12px_rgba\(0\2c 0\2c 0\2c 0\.10\)\]{
  --tw-shadow: 0 2px 12px rgba(0,0,0,0.10);
  --tw-shadow-colored: 0 2px 12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_4px_16px_rgba\(0\2c 0\2c 0\2c 0\.15\)\]{
  --tw-shadow: 0 4px 16px rgba(0,0,0,0.15);
  --tw-shadow-colored: 0 4px 16px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_4px_20px_rgba\(0\2c 0\2c 0\2c 0\.07\)\2c inset_0_1px_0_rgba\(255\2c 255\2c 255\2c 1\)\]{
  --tw-shadow: 0 4px 20px rgba(0,0,0,0.07),inset 0 1px 0 rgba(255,255,255,1);
  --tw-shadow-colored: 0 4px 20px var(--tw-shadow-color), inset 0 1px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_8px_40px_rgba\(0\2c 0\2c 0\2c 0\.08\)\]{
  --tw-shadow: 0 8px 40px rgba(0,0,0,0.08);
  --tw-shadow-colored: 0 8px 40px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[inset_0_0_0_2px_hsl\(var\(--primary\)\/0\.45\)\]{
  --tw-shadow: inset 0 0 0 2px hsl(var(--primary)/0.45);
  --tw-shadow-colored: inset 0 0 0 2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-glass{
  --tw-shadow: 0 4px 24px -2px hsl(var(--glass-shadow)), 0 0 0 1px hsl(var(--glass-border));
  --tw-shadow-colored: 0 4px 24px -2px var(--tw-shadow-color), 0 0 0 1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-glass-lg{
  --tw-shadow: 0 8px 40px -4px hsl(var(--glass-shadow)), 0 0 0 1px hsl(var(--glass-border));
  --tw-shadow-colored: 0 8px 40px -4px var(--tw-shadow-color), 0 0 0 1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-lg{
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-md{
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-none{
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm{
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-xl{
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-destructive\/25{
  --tw-shadow-color: hsl(var(--destructive) / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-emerald-200{
  --tw-shadow-color: #a7f3d0;
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-primary\/10{
  --tw-shadow-color: hsl(var(--primary) / 0.1);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-primary\/25{
  --tw-shadow-color: hsl(var(--primary) / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-rose-200{
  --tw-shadow-color: #fecdd3;
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-success\/25{
  --tw-shadow-color: hsl(var(--success) / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-violet-200{
  --tw-shadow-color: #ddd6fe;
  --tw-shadow: var(--tw-shadow-colored);
}
.outline-none{
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.outline{
  outline-style: solid;
}
.outline-2{
  outline-width: 2px;
}
.outline-offset-1{
  outline-offset: 1px;
}
.outline-offset-2{
  outline-offset: 2px;
}
.outline-manipulative-tile-edge{
  outline-color: hsl(var(--manipulative-tile-edge));
}
.outline-primary{
  outline-color: hsl(var(--primary));
}
.outline-ring{
  outline-color: hsl(var(--ring));
}
.ring{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-0{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-1{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-2{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-\[3px\]{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-inset{
  --tw-ring-inset: inset;
}
.ring-amber-200{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity, 1));
}
.ring-black\/10{
  --tw-ring-color: rgb(0 0 0 / 0.1);
}
.ring-blue-200{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1));
}
.ring-border{
  --tw-ring-color: hsl(var(--border));
}
.ring-border\/40{
  --tw-ring-color: hsl(var(--border) / 0.4);
}
.ring-destructive{
  --tw-ring-color: hsl(var(--destructive));
}
.ring-green-200{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(187 247 208 / var(--tw-ring-opacity, 1));
}
.ring-manipulative-tile{
  --tw-ring-color: hsl(var(--manipulative-tile));
}
.ring-primary{
  --tw-ring-color: hsl(var(--primary));
}
.ring-primary-foreground\/25{
  --tw-ring-color: hsl(var(--primary-foreground) / 0.25);
}
.ring-primary\/20{
  --tw-ring-color: hsl(var(--primary) / 0.2);
}
.ring-primary\/25{
  --tw-ring-color: hsl(var(--primary) / 0.25);
}
.ring-primary\/30{
  --tw-ring-color: hsl(var(--primary) / 0.3);
}
.ring-primary\/40{
  --tw-ring-color: hsl(var(--primary) / 0.4);
}
.ring-ring{
  --tw-ring-color: hsl(var(--ring));
}
.ring-ring\/20{
  --tw-ring-color: hsl(var(--ring) / 0.2);
}
.ring-ring\/30{
  --tw-ring-color: hsl(var(--ring) / 0.3);
}
.ring-slate-100{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(241 245 249 / var(--tw-ring-opacity, 1));
}
.ring-success-ink{
  --tw-ring-color: hsl(var(--success-ink));
}
.ring-success\/30{
  --tw-ring-color: hsl(var(--success) / 0.3);
}
.ring-white{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1));
}
.ring-white\/10{
  --tw-ring-color: rgb(255 255 255 / 0.1);
}
.ring-white\/30{
  --tw-ring-color: rgb(255 255 255 / 0.3);
}
.ring-offset-1{
  --tw-ring-offset-width: 1px;
}
.ring-offset-2{
  --tw-ring-offset-width: 2px;
}
.ring-offset-background{
  --tw-ring-offset-color: hsl(var(--background));
}
.ring-offset-card{
  --tw-ring-offset-color: hsl(var(--card));
}
.blur{
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-3xl{
  --tw-blur: blur(64px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow{
  --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow-md{
  --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow-sm{
  --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.grayscale{
  --tw-grayscale: grayscale(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter{
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur{
  --tw-backdrop-blur: blur(8px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-\[var\(--glass-blur\)\]{
  --tw-backdrop-blur: blur(var(--glass-blur));
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-glass{
  --tw-backdrop-blur: blur(12px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-md{
  --tw-backdrop-blur: blur(12px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-sm{
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-filter{
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition{
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: var(--motion-default);
}
.transition-\[border-color\2c background-color\2c box-shadow\]{
  transition-property: border-color,background-color,box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: var(--motion-default);
}
.transition-\[max-width\]{
  transition-property: max-width;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: var(--motion-default);
}
.transition-\[stroke-dashoffset\]{
  transition-property: stroke-dashoffset;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: var(--motion-default);
}
.transition-\[transform\2c box-shadow\]{
  transition-property: transform,box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: var(--motion-default);
}
.transition-\[width\]{
  transition-property: width;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: var(--motion-default);
}
.transition-all{
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: var(--motion-default);
}
.transition-colors{
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: var(--motion-default);
}
.transition-none{
  transition-property: none;
}
.transition-opacity{
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: var(--motion-default);
}
.transition-shadow{
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: var(--motion-default);
}
.transition-transform{
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: var(--motion-default);
}
.duration-150{
  transition-duration: 150ms;
}
.duration-200{
  transition-duration: 200ms;
}
.duration-300{
  transition-duration: 300ms;
}
.duration-500{
  transition-duration: 500ms;
}
.duration-700{
  transition-duration: 700ms;
}
.duration-fast{
  transition-duration: var(--motion-fast);
}
.ease-in{
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
.ease-in-out{
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out{
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
@keyframes enter{

  from{
    opacity: var(--tw-enter-opacity, 1);
    transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));
  }
}
@keyframes exit{

  to{
    opacity: var(--tw-exit-opacity, 1);
    transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));
  }
}
.animate-in{
  animation-name: enter;
  animation-duration: var(--motion-default);
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.fade-in{
  --tw-enter-opacity: 0;
}
.fade-in-0{
  --tw-enter-opacity: 0;
}
.zoom-in-90{
  --tw-enter-scale: .9;
}
.zoom-in-95{
  --tw-enter-scale: .95;
}
.duration-150{
  animation-duration: 150ms;
}
.duration-200{
  animation-duration: 200ms;
}
.duration-300{
  animation-duration: 300ms;
}
.duration-500{
  animation-duration: 500ms;
}
.duration-700{
  animation-duration: 700ms;
}
.duration-fast{
  animation-duration: var(--motion-fast);
}
.ease-in{
  animation-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
.ease-in-out{
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out{
  animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.running{
  animation-play-state: running;
}
.\[container-type\:inline-size\]{
  container-type: inline-size;
}
.\[mask-image\:linear-gradient\(to_right\2c transparent\2c black_6\%\2c black_94\%\2c transparent\)\]{
  -webkit-mask-image: linear-gradient(to right,transparent,black 6%,black 94%,transparent);
          mask-image: linear-gradient(to right,transparent,black 6%,black 94%,transparent);
}
.\[mask-image\:linear-gradient\(to_right\2c transparent\2c black_var\(--band-fade-start\2c 0px\)\2c black_calc\(100\%_-_var\(--band-fade-end\2c 0px\)\)\2c transparent\)\]{
  -webkit-mask-image: linear-gradient(to right,transparent,black var(--band-fade-start,0px),black calc(100% - var(--band-fade-end,0px)),transparent);
          mask-image: linear-gradient(to right,transparent,black var(--band-fade-start,0px),black calc(100% - var(--band-fade-end,0px)),transparent);
}
.\[overflow-wrap\:anywhere\]{
  overflow-wrap: anywhere;
}
.\[padding-bottom\:env\(safe-area-inset-bottom\2c 0px\)\]{
  padding-bottom: env(safe-area-inset-bottom,0px);
}
.\[padding-top\:env\(safe-area-inset-top\2c 0px\)\]{
  padding-top: env(safe-area-inset-top,0px);
}
.\[paint-order\:stroke\]{
  paint-order: stroke;
}
.\[scrollbar-width\:none\]{
  scrollbar-width: none;
}
.\[stroke-width\:4px\]{
  stroke-width: 4px;
}

/* ── KiteWidget animations ──────────────────────────────────────────────── */
@keyframes lk-kite-fly {
  0%   { transform: translateY(40px) rotate(-15deg) scale(0.8); opacity: 0; }
  55%  { transform: translateY(-16px) rotate(7deg) scale(1.12); opacity: 1; }
  78%  { transform: translateY(-5px) rotate(-3deg) scale(1.03); }
  100% { transform: translateY(0) rotate(0deg) scale(1); opacity: 1; }
}
@keyframes lk-kite-soar {
  0%,100% { transform: translateX(0)     translateY(0)     rotate(0deg)   scale(1);    }
  18%     { transform: translateX(28px)  translateY(-30px) rotate(10deg)  scale(1.14); }
  40%     { transform: translateX(14px)  translateY(-46px) rotate(4deg)   scale(1.18); }
  62%     { transform: translateX(-26px) translateY(-34px) rotate(-12deg) scale(1.12); }
  82%     { transform: translateX(-30px) translateY(-16px) rotate(-7deg)  scale(1.05); }
}
@keyframes lk-kite-glide {
  0%,100% { transform: translateX(0)     translateY(0)     rotate(0deg)   scale(1);    }
  25%     { transform: translateX(20px)  translateY(-20px) rotate(8deg)   scale(1.08); }
  50%     { transform: translateX(9px)   translateY(-30px) rotate(3deg)   scale(1.10); }
  75%     { transform: translateX(-18px) translateY(-14px) rotate(-9deg)  scale(1.05); }
}
@keyframes lk-kite-drift {
  0%,100% { transform: translateX(0)     translateY(0)     rotate(0deg);  }
  33%     { transform: translateX(12px)  translateY(-12px) rotate(5deg);  }
  66%     { transform: translateX(-10px) translateY(-6px)  rotate(-5deg); }
}
@keyframes lk-kite-droop {
  0%,100% { transform: translateX(0)   translateY(0)   rotate(2deg);  }
  50%     { transform: translateX(5px) translateY(6px) rotate(-2deg); }
}
@keyframes lk-kite-bob {
  /* Compact loop — pure rotation, no Y movement. Safe for logo/header use: won't shift vertical alignment. */
  0%,100% { transform: rotate(-4deg); }
  50%     { transform: rotate(5deg);  }
}
.lk-kite-fly        { animation: lk-kite-fly   1s   cubic-bezier(0.22, 1, 0.36, 1) both; }
.lk-kite-bob-loop   { animation: lk-kite-bob   2.8s ease-in-out infinite; }
.lk-kite-soar-loop  { animation: lk-kite-soar  4.0s ease-in-out infinite; }
.lk-kite-glide-loop { animation: lk-kite-glide 4.8s ease-in-out infinite; }
.lk-kite-drift-loop { animation: lk-kite-drift 6.0s ease-in-out infinite; }
.lk-kite-droop-loop { animation: lk-kite-droop 7.0s ease-in-out infinite; }

@media (prefers-reduced-motion: reduce) {
  .lk-kite-fly,
  .lk-kite-bob-loop,
  .lk-kite-soar-loop,
  .lk-kite-glide-loop,
  .lk-kite-drift-loop,
  .lk-kite-droop-loop { animation: none; }
}

/* ── Practice workspace sky gradient ─────────────────────────────────────── */
/* "Kite Sky": near-white top → brand periwinkle mid → soft violet bottom.
   Diagonal 160° for a dynamic feel; mid-stop reuses --background for a
   smooth, non-jarring transition. */
.lk-practice-sky {
  background: linear-gradient(
    160deg,
    hsl(var(--practice-sky-from)) 0%,
    hsl(var(--background))        42%,
    hsl(var(--practice-sky-to))   100%
  );
}

/* ── Practice widget feedback animations ──────────────────────────────────── */
@keyframes lk-shake {
  0%, 100% { transform: translateX(0); }
  15%      { transform: translateX(-5px); }
  35%      { transform: translateX(5px); }
  55%      { transform: translateX(-3px); }
  75%      { transform: translateX(2px); }
  90%      { transform: translateX(-1px); }
}
@keyframes lk-correct-flash {
  0%   { background-color: hsl(var(--success) / 0.65); transform: scale(1.015); }
  35%  { background-color: hsl(var(--success) / 0.28); transform: scale(1.005); }
  100% { background-color: hsl(var(--success) / 0.10); transform: scale(1); }
}
.lk-shake         { animation: lk-shake 0.42s ease-out both; }
.lk-correct-flash { animation: lk-correct-flash 0.55s ease-out both; }
@media (prefers-reduced-motion: reduce) {
  .lk-shake,
  .lk-correct-flash { animation: none; }
}
.file\:border-0::file-selector-button{
  border-width: 0px;
}
.file\:bg-transparent::file-selector-button{
  background-color: transparent;
}
.file\:text-sm::file-selector-button{
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.file\:font-medium::file-selector-button{
  font-weight: 500;
}
.file\:text-foreground::file-selector-button{
  color: hsl(var(--foreground));
}
.placeholder\:text-control-support-foreground::-moz-placeholder{
  color: hsl(var(--control-support-foreground));
}
.placeholder\:text-control-support-foreground::placeholder{
  color: hsl(var(--control-support-foreground));
}
.placeholder\:text-muted-foreground::-moz-placeholder{
  color: hsl(var(--muted-foreground));
}
.placeholder\:text-muted-foreground::placeholder{
  color: hsl(var(--muted-foreground));
}
.placeholder\:text-muted-foreground\/50::-moz-placeholder{
  color: hsl(var(--muted-foreground) / 0.5);
}
.placeholder\:text-muted-foreground\/50::placeholder{
  color: hsl(var(--muted-foreground) / 0.5);
}
.odd\:bg-muted\/20:nth-child(odd){
  background-color: hsl(var(--muted) / 0.2);
}
.hover\:-translate-y-0\.5:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:-translate-y-1:hover{
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:-translate-y-px:hover{
  --tw-translate-y: -1px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:border-amber-400:hover{
  --tw-border-opacity: 1;
  border-color: rgb(251 191 36 / var(--tw-border-opacity, 1));
}
.hover\:border-control-border-hover:hover{
  border-color: hsl(var(--control-border-hover));
}
.hover\:border-primary:hover{
  border-color: hsl(var(--primary));
}
.hover\:border-primary\/25:hover{
  border-color: hsl(var(--primary) / 0.25);
}
.hover\:border-primary\/30:hover{
  border-color: hsl(var(--primary) / 0.3);
}
.hover\:border-primary\/35:hover{
  border-color: hsl(var(--primary) / 0.35);
}
.hover\:border-primary\/40:hover{
  border-color: hsl(var(--primary) / 0.4);
}
.hover\:border-primary\/50:hover{
  border-color: hsl(var(--primary) / 0.5);
}
.hover\:border-primary\/60:hover{
  border-color: hsl(var(--primary) / 0.6);
}
.hover\:border-primary\/70:hover{
  border-color: hsl(var(--primary) / 0.7);
}
.hover\:bg-accent:hover{
  background-color: hsl(var(--accent));
}
.hover\:bg-accent\/30:hover{
  background-color: hsl(var(--accent) / 0.3);
}
.hover\:bg-amber-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}
.hover\:bg-card\/90:hover{
  background-color: hsl(var(--card) / 0.9);
}
.hover\:bg-destructive-foreground\/30:hover{
  background-color: hsl(var(--destructive-foreground) / 0.3);
}
.hover\:bg-destructive\/80:hover{
  background-color: hsl(var(--destructive) / 0.8);
}
.hover\:bg-destructive\/90:hover{
  background-color: hsl(var(--destructive) / 0.9);
}
.hover\:bg-manipulative-tile\/60:hover{
  background-color: hsl(var(--manipulative-tile) / 0.6);
}
.hover\:bg-muted:hover{
  background-color: hsl(var(--muted));
}
.hover\:bg-muted\/40:hover{
  background-color: hsl(var(--muted) / 0.4);
}
.hover\:bg-muted\/50:hover{
  background-color: hsl(var(--muted) / 0.5);
}
.hover\:bg-muted\/80:hover{
  background-color: hsl(var(--muted) / 0.8);
}
.hover\:bg-primary:hover{
  background-color: hsl(var(--primary));
}
.hover\:bg-primary-foreground\/10:hover{
  background-color: hsl(var(--primary-foreground) / 0.1);
}
.hover\:bg-primary-foreground\/20:hover{
  background-color: hsl(var(--primary-foreground) / 0.2);
}
.hover\:bg-primary\/10:hover{
  background-color: hsl(var(--primary) / 0.1);
}
.hover\:bg-primary\/15:hover{
  background-color: hsl(var(--primary) / 0.15);
}
.hover\:bg-primary\/20:hover{
  background-color: hsl(var(--primary) / 0.2);
}
.hover\:bg-primary\/5:hover{
  background-color: hsl(var(--primary) / 0.05);
}
.hover\:bg-primary\/80:hover{
  background-color: hsl(var(--primary) / 0.8);
}
.hover\:bg-primary\/90:hover{
  background-color: hsl(var(--primary) / 0.9);
}
.hover\:bg-secondary:hover{
  background-color: hsl(var(--secondary));
}
.hover\:bg-secondary\/80:hover{
  background-color: hsl(var(--secondary) / 0.8);
}
.hover\:bg-success-foreground\/30:hover{
  background-color: hsl(var(--success-foreground) / 0.3);
}
.hover\:bg-white:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.hover\:bg-white\/25:hover{
  background-color: rgb(255 255 255 / 0.25);
}
.hover\:bg-white\/30:hover{
  background-color: rgb(255 255 255 / 0.3);
}
.hover\:fill-manipulative-tile\/25:hover{
  fill: hsl(var(--manipulative-tile) / 0.25);
}
.hover\:text-accent-foreground:hover{
  color: hsl(var(--accent-foreground));
}
.hover\:text-amber-900:hover{
  --tw-text-opacity: 1;
  color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}
.hover\:text-foreground:hover{
  color: hsl(var(--foreground));
}
.hover\:text-primary:hover{
  color: hsl(var(--primary));
}
.hover\:text-primary-foreground:hover{
  color: hsl(var(--primary-foreground));
}
.hover\:text-primary\/80:hover{
  color: hsl(var(--primary) / 0.8);
}
.hover\:text-white\/90:hover{
  color: rgb(255 255 255 / 0.9);
}
.hover\:underline:hover{
  text-decoration-line: underline;
}
.hover\:no-underline:hover{
  text-decoration-line: none;
}
.hover\:opacity-100:hover{
  opacity: 1;
}
.hover\:opacity-80:hover{
  opacity: 0.8;
}
.hover\:opacity-90:hover{
  opacity: 0.9;
}
.hover\:shadow-\[0_4px_12px_rgba\(0\2c 0\2c 0\2c 0\.10\)\]:hover{
  --tw-shadow: 0 4px 12px rgba(0,0,0,0.10);
  --tw-shadow-colored: 0 4px 12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-\[0_4px_12px_rgba\(0\2c 0\2c 0\2c 0\.12\)\]:hover{
  --tw-shadow: 0 4px 12px rgba(0,0,0,0.12);
  --tw-shadow-colored: 0 4px 12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-\[0_6px_16px_rgba\(0\2c 0\2c 0\2c 0\.18\)\]:hover{
  --tw-shadow: 0 6px 16px rgba(0,0,0,0.18);
  --tw-shadow-colored: 0 6px 16px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-\[0_6px_20px_rgba\(0\2c 0\2c 0\2c 0\.18\)\]:hover{
  --tw-shadow: 0 6px 20px rgba(0,0,0,0.18);
  --tw-shadow-colored: 0 6px 20px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-glass-lg:hover{
  --tw-shadow: 0 8px 40px -4px hsl(var(--glass-shadow)), 0 0 0 1px hsl(var(--glass-border));
  --tw-shadow-colored: 0 8px 40px -4px var(--tw-shadow-color), 0 0 0 1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-lg:hover{
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-md:hover{
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-sm:hover{
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-xl:hover{
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-violet-300:hover{
  --tw-shadow-color: #c4b5fd;
  --tw-shadow: var(--tw-shadow-colored);
}
.hover\:ring-primary\/40:hover{
  --tw-ring-color: hsl(var(--primary) / 0.4);
}
.hover\:ring-warning\/40:hover{
  --tw-ring-color: hsl(var(--warning) / 0.4);
}
.focus\:not-sr-only:focus{
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}
.focus\:fixed:focus{
  position: fixed;
}
.focus\:left-4:focus{
  left: 1rem;
}
.focus\:top-4:focus{
  top: 1rem;
}
.focus\:border-primary:focus{
  border-color: hsl(var(--primary));
}
.focus\:bg-accent:focus{
  background-color: hsl(var(--accent));
}
.focus\:text-accent-foreground:focus{
  color: hsl(var(--accent-foreground));
}
.focus\:text-destructive:focus{
  color: hsl(var(--destructive));
}
.focus\:opacity-100:focus{
  opacity: 1;
}
.focus\:outline-none:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.focus\:ring-2:focus{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-destructive:focus{
  --tw-ring-color: hsl(var(--destructive));
}
.focus\:ring-primary:focus{
  --tw-ring-color: hsl(var(--primary));
}
.focus\:ring-ring:focus{
  --tw-ring-color: hsl(var(--ring));
}
.focus\:ring-success:focus{
  --tw-ring-color: hsl(var(--success));
}
.focus\:ring-offset-2:focus{
  --tw-ring-offset-width: 2px;
}
.focus-visible\:border-primary:focus-visible{
  border-color: hsl(var(--primary));
}
.focus-visible\:bg-primary\/5:focus-visible{
  background-color: hsl(var(--primary) / 0.05);
}
.focus-visible\:bg-primary\/\[0\.035\]:focus-visible{
  background-color: hsl(var(--primary) / 0.035);
}
.focus-visible\:stroke-primary:focus-visible{
  stroke: hsl(var(--primary));
}
.focus-visible\:outline-none:focus-visible{
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.focus-visible\:outline:focus-visible{
  outline-style: solid;
}
.focus-visible\:outline-dashed:focus-visible{
  outline-style: dashed;
}
.focus-visible\:outline-2:focus-visible{
  outline-width: 2px;
}
.focus-visible\:outline-offset-2:focus-visible{
  outline-offset: 2px;
}
.focus-visible\:outline-ring:focus-visible{
  outline-color: hsl(var(--ring));
}
.focus-visible\:outline-white:focus-visible{
  outline-color: #fff;
}
.focus-visible\:ring-2:focus-visible{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-inset:focus-visible{
  --tw-ring-inset: inset;
}
.focus-visible\:ring-primary:focus-visible{
  --tw-ring-color: hsl(var(--primary));
}
.focus-visible\:ring-primary-foreground:focus-visible{
  --tw-ring-color: hsl(var(--primary-foreground));
}
.focus-visible\:ring-ring:focus-visible{
  --tw-ring-color: hsl(var(--ring));
}
.focus-visible\:ring-offset-0:focus-visible{
  --tw-ring-offset-width: 0px;
}
.focus-visible\:ring-offset-1:focus-visible{
  --tw-ring-offset-width: 1px;
}
.focus-visible\:ring-offset-2:focus-visible{
  --tw-ring-offset-width: 2px;
}
.focus-visible\:ring-offset-background:focus-visible{
  --tw-ring-offset-color: hsl(var(--background));
}
.active\:translate-y-1:active{
  --tw-translate-y: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.active\:scale-95:active{
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.active\:scale-\[0\.98\]:active{
  --tw-scale-x: 0.98;
  --tw-scale-y: 0.98;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.active\:cursor-grabbing:active{
  cursor: grabbing;
}
.disabled\:pointer-events-none:disabled{
  pointer-events: none;
}
.disabled\:cursor-default:disabled{
  cursor: default;
}
.disabled\:cursor-not-allowed:disabled{
  cursor: not-allowed;
}
.disabled\:\!border-border:disabled{
  border-color: hsl(var(--border)) !important;
}
.disabled\:border-border:disabled{
  border-color: hsl(var(--border));
}
.disabled\:\!bg-muted\/60:disabled{
  background-color: hsl(var(--muted) / 0.6) !important;
}
.disabled\:\!text-muted-foreground:disabled{
  color: hsl(var(--muted-foreground)) !important;
}
.disabled\:text-muted-foreground:disabled{
  color: hsl(var(--muted-foreground));
}
.disabled\:accent-muted-foreground:disabled{
  accent-color: hsl(var(--muted-foreground));
}
.disabled\:\!opacity-60:disabled{
  opacity: 0.6 !important;
}
.disabled\:opacity-40:disabled{
  opacity: 0.4;
}
.disabled\:opacity-50:disabled{
  opacity: 0.5;
}
.disabled\:opacity-60:disabled{
  opacity: 0.6;
}
.disabled\:\!shadow-none:disabled{
  --tw-shadow: 0 0 #0000 !important;
  --tw-shadow-colored: 0 0 #0000 !important;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}
.group:hover .group-hover\:-translate-x-0\.5{
  --tw-translate-x: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:-translate-x-1{
  --tw-translate-x: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:-translate-y-0\.5{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:translate-x-0\.5{
  --tw-translate-x: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:bg-primary{
  background-color: hsl(var(--primary));
}
.group:hover .group-hover\:bg-primary\/10{
  background-color: hsl(var(--primary) / 0.1);
}
.group:hover .group-hover\:fill-primary\/10{
  fill: hsl(var(--primary) / 0.1);
}
.group:hover .group-hover\:fill-primary\/20{
  fill: hsl(var(--primary) / 0.2);
}
.group:hover .group-hover\:stroke-primary{
  stroke: hsl(var(--primary));
}
.group:hover .group-hover\:stroke-primary\/75{
  stroke: hsl(var(--primary) / 0.75);
}
.group:hover .group-hover\:stroke-primary\/80{
  stroke: hsl(var(--primary) / 0.8);
}
.group:hover .group-hover\:text-foreground{
  color: hsl(var(--foreground));
}
.group:hover .group-hover\:text-muted-foreground{
  color: hsl(var(--muted-foreground));
}
.group:hover .group-hover\:text-primary{
  color: hsl(var(--primary));
}
.group:hover .group-hover\:text-primary-foreground{
  color: hsl(var(--primary-foreground));
}
.group:hover .group-hover\:text-primary\/80{
  color: hsl(var(--primary) / 0.8);
}
.group:hover .group-hover\:underline{
  text-decoration-line: underline;
}
.group\/bar:hover .group-hover\/bar\:opacity-100{
  opacity: 1;
}
.group:hover .group-hover\:opacity-100{
  opacity: 1;
}
.group:hover .group-hover\:\[stroke-width\:2\.5\]{
  stroke-width: 2.5;
}
.group:hover .group-hover\:\[stroke-width\:3\.5\]{
  stroke-width: 3.5;
}
.group\/bar:focus .group-focus\/bar\:opacity-100{
  opacity: 1;
}
.group:focus-visible .group-focus-visible\:text-foreground{
  color: hsl(var(--foreground));
}
.group.destructive .group-\[\.destructive\]\:border-muted\/40{
  border-color: hsl(var(--muted) / 0.4);
}
.group.toaster .group-\[\.toaster\]\:border-border{
  border-color: hsl(var(--border));
}
.group.toast .group-\[\.toast\]\:bg-muted{
  background-color: hsl(var(--muted));
}
.group.toast .group-\[\.toast\]\:bg-primary{
  background-color: hsl(var(--primary));
}
.group.toaster .group-\[\.toaster\]\:bg-background{
  background-color: hsl(var(--background));
}
.group.destructive .group-\[\.destructive\]\:text-red-300{
  --tw-text-opacity: 1;
  color: rgb(252 165 165 / var(--tw-text-opacity, 1));
}
.group.toast .group-\[\.toast\]\:text-muted-foreground{
  color: hsl(var(--muted-foreground));
}
.group.toast .group-\[\.toast\]\:text-primary-foreground{
  color: hsl(var(--primary-foreground));
}
.group.toaster .group-\[\.toaster\]\:text-foreground{
  color: hsl(var(--foreground));
}
.group.toaster .group-\[\.toaster\]\:shadow-lg{
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{
  border-color: hsl(var(--destructive) / 0.3);
}
.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{
  background-color: hsl(var(--destructive));
}
.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{
  color: hsl(var(--destructive-foreground));
}
.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{
  --tw-text-opacity: 1;
  color: rgb(254 242 242 / var(--tw-text-opacity, 1));
}
.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{
  --tw-ring-color: hsl(var(--destructive));
}
.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1));
}
.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{
  --tw-ring-offset-color: #dc2626;
}
.peer:checked ~ .peer-checked\:border-primary{
  border-color: hsl(var(--primary));
}
.peer:checked ~ .peer-checked\:bg-primary\/5{
  background-color: hsl(var(--primary) / 0.05);
}
.peer:focus-visible ~ .peer-focus-visible\:ring-2{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.peer:focus-visible ~ .peer-focus-visible\:ring-ring{
  --tw-ring-color: hsl(var(--ring));
}
.peer:focus-visible ~ .peer-focus-visible\:ring-offset-2{
  --tw-ring-offset-width: 2px;
}
.peer:disabled ~ .peer-disabled\:cursor-not-allowed{
  cursor: not-allowed;
}
.peer:disabled ~ .peer-disabled\:opacity-70{
  opacity: 0.7;
}
.has-\[\:disabled\]\:cursor-not-allowed:has(:disabled){
  cursor: not-allowed;
}
.has-\[\:checked\]\:border-primary:has(:checked){
  border-color: hsl(var(--primary));
}
.has-\[\:disabled\]\:\!border-border:has(:disabled){
  border-color: hsl(var(--border)) !important;
}
.has-\[\:checked\]\:bg-primary\/5:has(:checked){
  background-color: hsl(var(--primary) / 0.05);
}
.has-\[\:disabled\]\:\!bg-muted\/60:has(:disabled){
  background-color: hsl(var(--muted) / 0.6) !important;
}
.has-\[\:disabled\]\:\!text-muted-foreground:has(:disabled){
  color: hsl(var(--muted-foreground)) !important;
}
.has-\[\:disabled\]\:\!opacity-60:has(:disabled){
  opacity: 0.6 !important;
}
.has-\[\:disabled\]\:\!shadow-none:has(:disabled){
  --tw-shadow: 0 0 #0000 !important;
  --tw-shadow-colored: 0 0 #0000 !important;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}
.has-\[\:focus-visible\]\:ring-2:has(:focus-visible){
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.has-\[\:focus-visible\]\:ring-primary:has(:focus-visible){
  --tw-ring-color: hsl(var(--primary));
}
.has-\[\:focus-visible\]\:ring-ring:has(:focus-visible){
  --tw-ring-color: hsl(var(--ring));
}
.has-\[\:focus-visible\]\:ring-offset-2:has(:focus-visible){
  --tw-ring-offset-width: 2px;
}
.aria-disabled\:cursor-not-allowed[aria-disabled="true"]{
  cursor: not-allowed;
}
.aria-disabled\:opacity-40[aria-disabled="true"]{
  opacity: 0.4;
}
.data-\[disabled\]\:pointer-events-none[data-disabled]{
  pointer-events: none;
}
.data-\[side\=bottom\]\:translate-y-1[data-side="bottom"]{
  --tw-translate-y: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[side\=left\]\:-translate-x-1[data-side="left"]{
  --tw-translate-x: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[side\=right\]\:translate-x-1[data-side="right"]{
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[side\=top\]\:-translate-y-1[data-side="top"]{
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[state\=checked\]\:translate-x-5[data-state="checked"]{
  --tw-translate-x: 1.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[state\=unchecked\]\:translate-x-0[data-state="unchecked"]{
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[swipe\=cancel\]\:translate-x-0[data-swipe="cancel"]{
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe="end"]{
  --tw-translate-x: var(--radix-toast-swipe-end-x);
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe="move"]{
  --tw-translate-x: var(--radix-toast-swipe-move-x);
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[complete\=true\]\:border-primary[data-complete="true"]{
  border-color: hsl(var(--primary));
}
.data-\[complete\=true\]\:bg-primary\/5[data-complete="true"]{
  background-color: hsl(var(--primary) / 0.05);
}
.data-\[state\=checked\]\:bg-primary[data-state="checked"]{
  background-color: hsl(var(--primary));
}
.data-\[state\=open\]\:bg-accent[data-state="open"]{
  background-color: hsl(var(--accent));
}
.data-\[state\=selected\]\:bg-muted[data-state="selected"]{
  background-color: hsl(var(--muted));
}
.data-\[state\=unchecked\]\:bg-input[data-state="unchecked"]{
  background-color: hsl(var(--input));
}
.data-\[placeholder\]\:text-foreground\/70[data-placeholder]{
  color: hsl(var(--foreground) / 0.7);
}
.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{
  color: hsl(var(--muted-foreground));
}
.data-\[state\=open\]\:text-muted-foreground[data-state="open"]{
  color: hsl(var(--muted-foreground));
}
.data-\[disabled\]\:opacity-50[data-disabled]{
  opacity: 0.5;
}
.data-\[swipe\=move\]\:transition-none[data-swipe="move"]{
  transition-property: none;
}
.data-\[state\=open\]\:animate-in[data-state="open"]{
  animation-name: enter;
  animation-duration: var(--motion-default);
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.data-\[state\=closed\]\:animate-out[data-state="closed"]{
  animation-name: exit;
  animation-duration: var(--motion-default);
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}
.data-\[swipe\=end\]\:animate-out[data-swipe="end"]{
  animation-name: exit;
  animation-duration: var(--motion-default);
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}
.data-\[state\=closed\]\:fade-out-0[data-state="closed"]{
  --tw-exit-opacity: 0;
}
.data-\[state\=closed\]\:fade-out-80[data-state="closed"]{
  --tw-exit-opacity: 0.8;
}
.data-\[state\=open\]\:fade-in-0[data-state="open"]{
  --tw-enter-opacity: 0;
}
.data-\[state\=closed\]\:zoom-out-95[data-state="closed"]{
  --tw-exit-scale: .95;
}
.data-\[state\=open\]\:zoom-in-95[data-state="open"]{
  --tw-enter-scale: .95;
}
.data-\[side\=bottom\]\:slide-in-from-top-2[data-side="bottom"]{
  --tw-enter-translate-y: -0.5rem;
}
.data-\[side\=left\]\:slide-in-from-right-2[data-side="left"]{
  --tw-enter-translate-x: 0.5rem;
}
.data-\[side\=right\]\:slide-in-from-left-2[data-side="right"]{
  --tw-enter-translate-x: -0.5rem;
}
.data-\[side\=top\]\:slide-in-from-bottom-2[data-side="top"]{
  --tw-enter-translate-y: 0.5rem;
}
.data-\[state\=closed\]\:slide-out-to-left-0[data-state="closed"]{
  --tw-exit-translate-x: -0px;
}
.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state="closed"]{
  --tw-exit-translate-x: -50%;
}
.data-\[state\=closed\]\:slide-out-to-right-full[data-state="closed"]{
  --tw-exit-translate-x: 100%;
}
.data-\[state\=closed\]\:slide-out-to-top-0[data-state="closed"]{
  --tw-exit-translate-y: -0px;
}
.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state="closed"]{
  --tw-exit-translate-y: -48%;
}
.data-\[state\=open\]\:slide-in-from-left-0[data-state="open"]{
  --tw-enter-translate-x: -0px;
}
.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state="open"]{
  --tw-enter-translate-x: -50%;
}
.data-\[state\=open\]\:slide-in-from-top-0[data-state="open"]{
  --tw-enter-translate-y: -0px;
}
.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state="open"]{
  --tw-enter-translate-y: -48%;
}
.data-\[state\=open\]\:slide-in-from-top-full[data-state="open"]{
  --tw-enter-translate-y: -100%;
}
@media (prefers-reduced-motion: no-preference){

  .motion-safe\:transition-transform{
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: var(--motion-default);
  }

  .motion-safe\:duration-200{
    transition-duration: 200ms;
  }

  .motion-safe\:ease-in-out{
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  }

  .motion-safe\:duration-200{
    animation-duration: 200ms;
  }

  .motion-safe\:ease-in-out{
    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  }
}
@media (prefers-reduced-motion: reduce){

  .motion-reduce\:block{
    display: block;
  }

  .motion-reduce\:hidden{
    display: none;
  }

  .motion-reduce\:transform-none{
    transform: none;
  }

  .motion-reduce\:animate-none{
    animation: none;
  }

  .motion-reduce\:transition-none{
    transition-property: none;
  }

  .motion-reduce\:duration-0{
    transition-duration: 0s;
    animation-duration: 0s;
  }
}
.dark\:border-amber-700:is(.dark *){
  --tw-border-opacity: 1;
  border-color: rgb(180 83 9 / var(--tw-border-opacity, 1));
}
.dark\:border-destructive:is(.dark *){
  border-color: hsl(var(--destructive));
}
.dark\:bg-amber-900\/40:is(.dark *){
  background-color: rgb(120 53 15 / 0.4);
}
.dark\:bg-amber-950\/30:is(.dark *){
  background-color: rgb(69 26 3 / 0.3);
}
.dark\:bg-emerald-900\/40:is(.dark *){
  background-color: rgb(6 78 59 / 0.4);
}
.dark\:bg-rose-900\/40:is(.dark *){
  background-color: rgb(136 19 55 / 0.4);
}
.dark\:text-amber-200:is(.dark *){
  --tw-text-opacity: 1;
  color: rgb(253 230 138 / var(--tw-text-opacity, 1));
}
.dark\:text-amber-300\/80:is(.dark *){
  color: rgb(252 211 77 / 0.8);
}
.dark\:text-amber-400:is(.dark *){
  --tw-text-opacity: 1;
  color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}
.dark\:text-emerald-400:is(.dark *){
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}
.dark\:text-green-400:is(.dark *){
  --tw-text-opacity: 1;
  color: rgb(74 222 128 / var(--tw-text-opacity, 1));
}
.dark\:text-rose-400:is(.dark *){
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}
.dark\:hover\:bg-amber-900\/20:hover:is(.dark *){
  background-color: rgb(120 53 15 / 0.2);
}
.dark\:hover\:text-amber-300:hover:is(.dark *){
  --tw-text-opacity: 1;
  color: rgb(252 211 77 / var(--tw-text-opacity, 1));
}
@media (min-width: 640px){

  .sm\:not-sr-only{
    position: static;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
  }

  .sm\:bottom-0{
    bottom: 0px;
  }

  .sm\:left-3{
    left: 0.75rem;
  }

  .sm\:right-0{
    right: 0px;
  }

  .sm\:right-3{
    right: 0.75rem;
  }

  .sm\:top-auto{
    top: auto;
  }

  .sm\:col-span-2{
    grid-column: span 2 / span 2;
  }

  .sm\:mx-auto{
    margin-left: auto;
    margin-right: auto;
  }

  .sm\:mb-5{
    margin-bottom: 1.25rem;
  }

  .sm\:block{
    display: block;
  }

  .sm\:inline{
    display: inline;
  }

  .sm\:flex{
    display: flex;
  }

  .sm\:hidden{
    display: none;
  }

  .sm\:size-3\.5{
    width: 0.875rem;
    height: 0.875rem;
  }

  .sm\:size-4{
    width: 1rem;
    height: 1rem;
  }

  .sm\:size-6{
    width: 1.5rem;
    height: 1.5rem;
  }

  .sm\:size-9{
    width: 2.25rem;
    height: 2.25rem;
  }

  .sm\:h-12{
    height: 3rem;
  }

  .sm\:h-14{
    height: 3.5rem;
  }

  .sm\:h-8{
    height: 2rem;
  }

  .sm\:w-12{
    width: 3rem;
  }

  .sm\:w-14{
    width: 3.5rem;
  }

  .sm\:w-16{
    width: 4rem;
  }

  .sm\:w-24{
    width: 6rem;
  }

  .sm\:w-64{
    width: 16rem;
  }

  .sm\:w-7{
    width: 1.75rem;
  }

  .sm\:w-8{
    width: 2rem;
  }

  .sm\:w-auto{
    width: auto;
  }

  .sm\:w-full{
    width: 100%;
  }

  .sm\:max-w-\[600px\]{
    max-width: 600px;
  }

  .sm\:max-w-md{
    max-width: 28rem;
  }

  .sm\:columns-2{
    -moz-columns: 2;
         columns: 2;
  }

  .sm\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sm\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .sm\:grid-cols-\[auto_1fr\]{
    grid-template-columns: auto 1fr;
  }

  .sm\:flex-row{
    flex-direction: row;
  }

  .sm\:flex-col{
    flex-direction: column;
  }

  .sm\:items-start{
    align-items: flex-start;
  }

  .sm\:items-center{
    align-items: center;
  }

  .sm\:justify-end{
    justify-content: flex-end;
  }

  .sm\:justify-between{
    justify-content: space-between;
  }

  .sm\:gap-4{
    gap: 1rem;
  }

  .sm\:space-x-2 > :not([hidden]) ~ :not([hidden]){
    --tw-space-x-reverse: 0;
    margin-right: calc(0.5rem * var(--tw-space-x-reverse));
    margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .sm\:truncate{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .sm\:rounded-glass{
    border-radius: 1rem;
  }

  .sm\:rounded-lg{
    border-radius: var(--radius);
  }

  .sm\:border-l{
    border-left-width: 1px;
  }

  .sm\:border-t-0{
    border-top-width: 0px;
  }

  .sm\:border-border{
    border-color: hsl(var(--border));
  }

  .sm\:bg-card\/75{
    background-color: hsl(var(--card) / 0.75);
  }

  .sm\:p-10{
    padding: 2.5rem;
  }

  .sm\:p-3{
    padding: 0.75rem;
  }

  .sm\:p-4{
    padding: 1rem;
  }

  .sm\:p-5{
    padding: 1.25rem;
  }

  .sm\:p-6{
    padding: 1.5rem;
  }

  .sm\:p-8{
    padding: 2rem;
  }

  .sm\:px-14{
    padding-left: 3.5rem;
    padding-right: 3.5rem;
  }

  .sm\:px-5{
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .sm\:px-6{
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .sm\:px-8{
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .sm\:py-14{
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }

  .sm\:py-2{
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }

  .sm\:py-4{
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .sm\:py-6{
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }

  .sm\:py-8{
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .sm\:pb-3{
    padding-bottom: 0.75rem;
  }

  .sm\:pb-5{
    padding-bottom: 1.25rem;
  }

  .sm\:pb-8{
    padding-bottom: 2rem;
  }

  .sm\:pt-6{
    padding-top: 1.5rem;
  }

  .sm\:text-left{
    text-align: left;
  }

  .sm\:text-right{
    text-align: right;
  }

  .sm\:text-2xl{
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .sm\:text-3xl{
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .sm\:text-4xl{
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .sm\:text-5xl{
    font-size: 3rem;
    line-height: 1;
  }

  .sm\:text-\[1\.45rem\]{
    font-size: 1.45rem;
  }

  .sm\:text-lg{
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .sm\:text-sm{
    font-size: 0.875rem;
    line-height: 1.25rem;
  }

  .sm\:text-xl{
    font-size: 1.25rem;
    line-height: 1.75rem;
  }

  .sm\:tracking-tight{
    letter-spacing: -0.025em;
  }

  .data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state="open"]{
    --tw-enter-translate-y: 100%;
  }
}
@media (min-width: 768px){

  .md\:col-span-2{
    grid-column: span 2 / span 2;
  }

  .md\:mb-6{
    margin-bottom: 1.5rem;
  }

  .md\:block{
    display: block;
  }

  .md\:flex{
    display: flex;
  }

  .md\:hidden{
    display: none;
  }

  .md\:max-w-\[420px\]{
    max-width: 420px;
  }

  .md\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .md\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .md\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .md\:bg-black\/30{
    background-color: rgb(0 0 0 / 0.3);
  }

  .md\:px-8{
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .md\:py-8{
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .md\:text-3xl{
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .md\:text-sm{
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}
@media (min-width: 1024px){

  .lg\:fixed{
    position: fixed;
  }

  .lg\:inset-y-0{
    top: 0px;
    bottom: 0px;
  }

  .lg\:block{
    display: block;
  }

  .lg\:inline{
    display: inline;
  }

  .lg\:flex{
    display: flex;
  }

  .lg\:grid{
    display: grid;
  }

  .lg\:hidden{
    display: none;
  }

  .lg\:min-h-\[calc\(100vh-9rem\)\]{
    min-height: calc(100vh - 9rem);
  }

  .lg\:w-64{
    width: 16rem;
  }

  .lg\:max-w-2xl{
    max-width: 42rem;
  }

  .lg\:max-w-3xl{
    max-width: 48rem;
  }

  .lg\:max-w-6xl{
    max-width: 72rem;
  }

  .lg\:max-w-none{
    max-width: none;
  }

  .lg\:columns-3{
    -moz-columns: 3;
         columns: 3;
  }

  .lg\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lg\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lg\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .lg\:grid-cols-6{
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .lg\:grid-cols-\[0\.9fr_1\.1fr\]{
    grid-template-columns: 0.9fr 1.1fr;
  }

  .lg\:grid-cols-\[minmax\(320px\2c 380px\)_1fr\]{
    grid-template-columns: minmax(320px,380px) 1fr;
  }

  .lg\:flex-col{
    flex-direction: column;
  }

  .lg\:items-center{
    align-items: center;
  }

  .lg\:gap-10{
    gap: 2.5rem;
  }

  .lg\:gap-16{
    gap: 4rem;
  }

  .lg\:gap-x-3{
    -moz-column-gap: 0.75rem;
         column-gap: 0.75rem;
  }

  .lg\:gap-y-2\.5{
    row-gap: 0.625rem;
  }

  .lg\:px-16{
    padding-left: 4rem;
    padding-right: 4rem;
  }

  .lg\:px-8{
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .lg\:py-10{
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }

  .lg\:py-16{
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .lg\:pb-2{
    padding-bottom: 0.5rem;
  }

  .lg\:pl-64{
    padding-left: 16rem;
  }

  .lg\:pt-6{
    padding-top: 1.5rem;
  }

  .lg\:text-6xl{
    font-size: 3.75rem;
    line-height: 1;
  }
}
@media (min-width: 1280px){

  .xl\:grid-cols-5{
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}
@media print{

  .print\:hidden{
    display: none;
  }

  .print\:border-solid{
    border-style: solid;
  }

  .print\:shadow-none{
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
}
.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{
  display: none;
}
.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){
  padding-right: 0px;
}
@media (min-width: 640px){

  .\[\&\:nth-child\(odd\)\]\:sm\:border-r:nth-child(odd){
    border-right-width: 1px;
  }
}
.\[\&\>span\:last-child\]\:w-full>span:last-child{
  width: 100%;
}
.\[\&\>span\:last-child\]\:min-w-0>span:last-child{
  min-width: 0px;
}
.\[\&\>span\]\:line-clamp-1>span{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{
  --tw-translate-y: -3px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\[\&\>svg\]\:absolute>svg{
  position: absolute;
}
.\[\&\>svg\]\:left-4>svg{
  left: 1rem;
}
.\[\&\>svg\]\:top-4>svg{
  top: 1rem;
}
.\[\&\>svg\]\:text-destructive>svg{
  color: hsl(var(--destructive));
}
.\[\&\>svg\]\:text-foreground>svg{
  color: hsl(var(--foreground));
}
.\[\&\>svg\]\:text-primary>svg{
  color: hsl(var(--primary));
}
.\[\&\>svg\]\:opacity-100>svg{
  opacity: 1;
}
.disabled\:\[\&\>svg\]\:\!text-muted-foreground>svg:disabled{
  color: hsl(var(--muted-foreground)) !important;
}
.disabled\:\[\&\>svg\]\:\!opacity-40>svg:disabled{
  opacity: 0.4 !important;
}
.\[\&\>svg\~\*\]\:pl-7>svg~*{
  padding-left: 1.75rem;
}
.\[\&\>tr\]\:last\:border-b-0:last-child>tr{
  border-bottom-width: 0px;
}
.\[\&_\*\]\:\[vector-effect\:non-scaling-stroke\] *{
  vector-effect: non-scaling-stroke;
}
.\[\&_\[data-geometry-element\=\'polygon\'\]\]\:opacity-40 [data-geometry-element='polygon']{
  opacity: 0.4;
}
.\[\&_\[data-geometry-element\=\'polygon\'\]\]\:\[stroke-width\:1\.25\] [data-geometry-element='polygon']{
  stroke-width: 1.25;
}
.\[\&_\[data-geometry-element\=\'segment\'\]\]\:opacity-40 [data-geometry-element='segment']{
  opacity: 0.4;
}
.\[\&_\[data-geometry-element\=\'segment\'\]\]\:\[stroke-width\:1\.25\] [data-geometry-element='segment']{
  stroke-width: 1.25;
}
.\[\&_p\]\:leading-relaxed p{
  line-height: 1.625;
}
.\[\&_span\]\:text-primary-foreground span{
  color: hsl(var(--primary-foreground));
}
.\[\&_svg\]\:pointer-events-none svg{
  pointer-events: none;
}
.\[\&_svg\]\:size-4 svg{
  width: 1rem;
  height: 1rem;
}
.\[\&_svg\]\:shrink-0 svg{
  flex-shrink: 0;
}
.\[\&_tr\:last-child\]\:border-0 tr:last-child{
  border-width: 0px;
}
.\[\&_tr\]\:border-b tr{
  border-bottom-width: 1px;
}

