@font-face{font-family:Grenze;font-style:normal;font-weight:400;font-display:swap;src:url(../media/80c19d759ef4fb05-s.0yby2vh4l.jv2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Grenze;font-style:normal;font-weight:400;font-display:swap;src:url(../media/94a6b74677572b5d-s.0xsc2cr25cbr~.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Grenze;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e6d0dcaea0f3558d-s.p.0qp2q5yah0~-z.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Grenze;font-style:normal;font-weight:600;font-display:swap;src:url(../media/80c19d759ef4fb05-s.0yby2vh4l.jv2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Grenze;font-style:normal;font-weight:600;font-display:swap;src:url(../media/94a6b74677572b5d-s.0xsc2cr25cbr~.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Grenze;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e6d0dcaea0f3558d-s.p.0qp2q5yah0~-z.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Grenze;font-style:normal;font-weight:700;font-display:swap;src:url(../media/80c19d759ef4fb05-s.0yby2vh4l.jv2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Grenze;font-style:normal;font-weight:700;font-display:swap;src:url(../media/94a6b74677572b5d-s.0xsc2cr25cbr~.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Grenze;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e6d0dcaea0f3558d-s.p.0qp2q5yah0~-z.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Grenze Fallback;src:local(Times New Roman);ascent-override:125.53%;descent-override:43.36%;line-gap-override:0.0%;size-adjust:87.63%}.grenze_7bbb34cd-module__zkpdDa__className{font-family:Grenze,Grenze Fallback;font-style:normal}.grenze_7bbb34cd-module__zkpdDa__variable{--font-grenze:"Grenze", "Grenze Fallback"}
@font-face{font-family:Sarabun;font-style:normal;font-weight:300;font-display:swap;src:url(../media/58fcc4ad15255874-s.p.00ps-epex49ys.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Sarabun;font-style:normal;font-weight:300;font-display:swap;src:url(../media/0752d9e9446886e3-s.0-c_nutpg04i8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Sarabun;font-style:normal;font-weight:300;font-display:swap;src:url(../media/477b48776687fc32-s.0.y.-0ywm~slf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Sarabun;font-style:normal;font-weight:300;font-display:swap;src:url(../media/e12efafcac952e69-s.p.107q0ua8zr74u.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sarabun;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e9ed0bc71a38d6c1-s.p.0u5q39-x1eb~d.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Sarabun;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7062a58b1da0e8a4-s.0h6tmlf7prt.t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Sarabun;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3d0c37763e1ee3aa-s.17rv3ecy-d6ky.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Sarabun;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a19976a16d351e92-s.p.17crbq7ydmr5f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sarabun;font-style:normal;font-weight:500;font-display:swap;src:url(../media/3836391c10060ce4-s.p.0wqw0038.w83i.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Sarabun;font-style:normal;font-weight:500;font-display:swap;src:url(../media/f35096588af3ac65-s.0ilx7o9brpvli.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Sarabun;font-style:normal;font-weight:500;font-display:swap;src:url(../media/4ef4c2244410ddd5-s.0jsv9x0osw205.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Sarabun;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6281857f0573b169-s.p.0sgid9t60u.kn.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sarabun;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a0529e96a7862c0d-s.p.14zgbrnr3xaxd.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Sarabun;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e1a185165aeb6b39-s.16dw~sfe8o6qi.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Sarabun;font-style:normal;font-weight:600;font-display:swap;src:url(../media/aa5e8dae0d902b15-s.13t0-7c6_ihkv.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Sarabun;font-style:normal;font-weight:600;font-display:swap;src:url(../media/22d7e241aeb09639-s.p.0_5.mx.b8ir~e.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sarabun;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0bbfe7d70ca362ab-s.p.0ee1tu67pvspi.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Sarabun;font-style:normal;font-weight:700;font-display:swap;src:url(../media/c9e7701bc8b3db09-s.0r8lrzgpn0odm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Sarabun;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fe9c9076d1cdc5cf-s.0i0199ss2.t9a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Sarabun;font-style:normal;font-weight:700;font-display:swap;src:url(../media/bcc136e7df79ae49-s.p.14w.3508dee91.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sarabun Fallback;src:local(Arial);ascent-override:109.45%;descent-override:23.78%;line-gap-override:0.0%;size-adjust:97.58%}.sarabun_1933fc8d-module__Qsfl2a__className{font-family:Sarabun,Sarabun Fallback;font-style:normal}.sarabun_1933fc8d-module__Qsfl2a__variable{--font-thai-sans:"Sarabun", "Sarabun Fallback"}
@font-face{font-family:Chakra Petch;font-style:normal;font-weight:400;font-display:swap;src:url(../media/785695c5b05eabf2-s.p.13y771y2cuudv.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ac548f9ce6284f94-s.0h9eq_2~60egi.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9728433aadc137d6-s.0hnqo_q0ubdks.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:400;font-display:swap;src:url(../media/638f182e7ded7477-s.p.0ma09l0txl3bt.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:500;font-display:swap;src:url(../media/cf9d54c4342bfde9-s.p.0u2lt3z6jk0o1.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c26308a965d8ee8a-s.0jr6d9hay5zd~.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d03928121523449c-s.11t2izo0mqvpp.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1ccf8ef962b3f693-s.p.057aej8p_z_92.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:600;font-display:swap;src:url(../media/664b8486c44baa2d-s.p.00xhdix476ajg.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:600;font-display:swap;src:url(../media/c5ac7bd8b2d9fce6-s.0e0vspo.utj71.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8457265da2739722-s.0ogqxe45yt4r2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:600;font-display:swap;src:url(../media/dc0c65e819e3bb6c-s.p.0fsjs_bs5qvt7.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:700;font-display:swap;src:url(../media/087f4c42b279024d-s.p.0i37wr8~oeiv6.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:700;font-display:swap;src:url(../media/891a32df73aa4402-s.110i.6crs7xrh.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9186901afaa5c996-s.0wcl~15mrhg5f.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:700;font-display:swap;src:url(../media/374a88ea0960b3d4-s.p.0sa4vsdykrttm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Chakra Petch Fallback;src:local(Arial);ascent-override:96.77%;descent-override:30.05%;line-gap-override:0.0%;size-adjust:102.51%}.chakra_petch_919702e1-module__FkahKa__className{font-family:Chakra Petch,Chakra Petch Fallback;font-style:normal}.chakra_petch_919702e1-module__FkahKa__variable{--font-thai-display:"Chakra Petch", "Chakra Petch Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-display-latin:var(--font-grenze), Georgia, "Times New Roman", serif;--font-sans-latin:"Avenir Next", var(--font-thai-sans), "Noto Sans Thai", "Segoe UI", sans-serif;--font-display-thai:"Sao Chingcha", var(--font-thai-display), "Chakra Petch", "Noto Sans Thai", sans-serif;--font-sans-thai:var(--font-thai-sans), "TH Sarabun New", "Sarabun", "Noto Sans Thai", "Segoe UI", sans-serif;--font-display:var(--font-display-latin);--font-sans:var(--font-sans-latin);--color-canvas:#faf8f4;--color-surface:#fbfcfe;--color-surface-soft:#e8eef6;--color-ink:#223648;--color-ink-soft:#5f7182;--color-line:#c7d2df;--color-school-primary:hsl(var(--school-hue) var(--school-sat) 43%);--color-school-primary-light:hsl(var(--school-hue) var(--school-sat) 91%);--color-school-primary-subtle:hsl(var(--school-hue) 54% 97%);--color-accent:#b98b35;--school-hue:210;--school-sat:54%;--school-primary:var(--color-school-primary);--school-primary-light:var(--color-school-primary-light);--school-primary-subtle:var(--color-school-primary-subtle);--school-primary-foreground:#fff;--base-60:#f4f7fb;--brand-30:#254f78;--accent-10:#b98b35;--secondary:#496a88;--secondary-strong:#2d4f70;--secondary-soft:#e7edf4;--accent:#b98b35;--accent-strong:#7d5a19;--accent-soft:#f1e3c4;--accent-subtle:#fbf6eb;--ornament:#b98b35;--ornament-strong:#7d5a19;--ornament-soft:#f1e3c4;--bg:#f1f5f9;--surface:#fbfcfe;--surface-soft:#e8eef6;--text:#223648;--text-soft:#5f7182;--line:#c7d2df;--brand:#254f78;--brand-strong:#183c61;--brand-soft:#dce7f3;--warning-soft:#fff4da;--warning-text:#8a5a00;--danger-soft:#ffe7e8;--danger-text:#a01e2a;--danger-action:#d93045;--danger-action-strong:#be2538;--danger-action-soft:#ffe2e6;--page-radial-soft:#f0f4fa;--page-radial-blue:#dee8f5;--page-gradient-start:#f8fbff;--page-gradient-end:#e7eef7;--shell-radial-soft:#edf3fa;--shell-gradient-start:#f5f9fd;--shell-gradient-end:#e3ecf6;--sidebar-border:#bfcee0;--sidebar-bg-start:#f2f6fb;--sidebar-bg-end:#dce7f3;--toolbar-border:#c2d1df;--toolbar-bg:#f4f8fce6;--radius-lg:18px;--radius-md:12px;--shadow-lg:0 24px 60px #122a431f;--shadow-md:0 10px 26px #122a4314;--transition-fast:.16s cubic-bezier(.2, .78, .18, 1);--transition-base:.22s cubic-bezier(.2, .78, .18, 1);--transition-slow:.36s cubic-bezier(.16, .78, .2, 1);--transition-workspace-cover:.48s cubic-bezier(.22, .72, .18, 1);--transition-workspace-reveal:.68s cubic-bezier(.16, .78, .2, 1);--z-app-toolbar:20;--z-app-sidebar:40;--z-app-profile-menu:60;--z-app-mobile-nav-backdrop:80;--z-app-mobile-nav:90;--z-app-overlay:1000;--z-app-overlay-panel:1001;--z-app-toast:2000;--z-workspace-transition:2100;--sidebar-control-text:#456985;--brand-wordmark:#25506e;--sidebar-note-text:#657789;--nav-link-text:#3e6482;--nav-link-active-text:#265371;--nav-parent-chevron:#6c8093;--submenu-border:#c4d3e1;--submenu-bg-end:#e9f0f7;--nav-sublink-text:#43718b;--toolbar-breadcrumb-text:#637b87;--toolbar-breadcrumb-sep:#90a6ad;--toolbar-breadcrumb-current:#315e79;--profile-trigger-border:#c2d1df;--profile-trigger-accent:#c07a2429;--profile-trigger-bg-end:#e9f0f7;--profile-trigger-hover-border:#acbed1;--profile-avatar-border:#d0dbe8;--profile-avatar-bg:#e7edf5;--profile-name-text:#2f5c76;--profile-subtext:#647d88;--profile-chevron:#607d88;--app-title-text:#25506e;--form-label-text:#3f6b82;--input-border:#bdccda;--input-bg:#fbfdff;--input-disabled-bg:#e5eef1;--input-disabled-text:#667d88;--select-placeholder:#718994;--select-caret:#5d7886;--select-option-code:#5d7886;--btn-primary-start:#477ba2;--btn-primary-hover-start:#356c92;--btn-outline-text:#356d8d;--btn-outline-border:#b8c9da;--btn-outline-hover-bg:#e9f0f7;--btn-google-bg:#111;--btn-google-text:#f7f7f7;--btn-google-border:#000;--btn-google-hover-bg:#202020;--alert-error-border:#e8c0c3;--alert-info-bg:#e6eef7;--alert-info-text:#315b70;--alert-info-border:#bfd1e3;--avatar-border:#d0dbe8;--avatar-bg:#e7edf5;--avatar-fallback-radial:#dfe9f5;--avatar-fallback-gradient-start:#f3f7fb;--avatar-fallback-gradient-end:#e5edf7;--surface-plain:#fbfdff;--rbac-card-border:#c6d3df;--rbac-chip-border:#bdccda;--rbac-chip-bg:#e7eef6;--rbac-chip-text:#356d8d;--rbac-chip-remove:#6d838b;--mobile-submenu-border-left:#c1d1e1;--status-success-soft:#e4f5ea;--status-success-tint:#d2eddd;--status-success-strong:#1f9156;--status-success-text:#176b40;--status-error-soft:var(--danger-soft);--status-error-tint:#ffd9dd;--status-error-strong:var(--danger-action);--status-error-text:var(--danger-text);--status-info-soft:var(--alert-info-bg);--status-info-tint:#d3e2f1;--status-info-strong:#2f6f97;--status-info-text:var(--alert-info-text);--status-warning-soft:var(--warning-soft);--status-warning-tint:#ffe7b8;--status-warning-strong:#c98a1e;--status-warning-text:var(--warning-text)}html[lang=th]{--font-display:var(--font-display-thai);--font-sans:var(--font-sans-thai)}
*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--brand) 52%, var(--line) 48%) color-mix(in srgb, var(--surface) 74%, var(--surface-soft) 26%)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:color-mix(in srgb, var(--surface) 74%, var(--surface-soft) 26%);border-radius:999px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg, color-mix(in srgb, var(--brand) 54%, var(--surface) 46%) 0%, color-mix(in srgb, var(--brand-strong) 70%, var(--surface) 30%) 100%);border:2px solid color-mix(in srgb, var(--surface) 74%, var(--surface-soft) 26%);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg, color-mix(in srgb, var(--brand) 66%, var(--surface) 34%) 0%, color-mix(in srgb, var(--brand-strong) 82%, var(--surface) 18%) 100%)}html,body{overscroll-behavior-y:none;min-height:100%;margin:0;padding:0}html{background:var(--color-canvas)}body{font-family:var(--font-sans);background-color:var(--color-canvas);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='96' height='96' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E"), radial-gradient(ellipse at 50% -18%, color-mix(in srgb, #fff 78%, var(--school-primary-light) 22%) 0%, transparent 58%), radial-gradient(ellipse at 82% 18%, color-mix(in srgb, var(--school-primary-light) 58%, transparent) 0%, transparent 42%), linear-gradient(180deg, color-mix(in srgb, #fff 42%, var(--color-canvas) 58%) 0%, color-mix(in srgb, var(--color-canvas) 88%, var(--page-gradient-start) 12%) 44%, color-mix(in srgb, var(--color-canvas) 84%, var(--school-primary-subtle) 16%) 100%), repeating-linear-gradient(94deg, #ffffff3d 0 1px, transparent 1px 7px), repeating-linear-gradient(2deg, transparent 0 4px, color-mix(in srgb, var(--text-soft) 6%, transparent) 4px 5px, transparent 5px 11px), radial-gradient(circle at 18% 24%, color-mix(in srgb, var(--text-soft) 18%, transparent) 0 .62px, transparent .9px), radial-gradient(circle at 72% 58%, #ffffff61 0 .72px, transparent 1.05px);background-blend-mode:multiply, screen, normal, normal, soft-light, multiply, multiply, screen;max-width:100%;min-height:100dvh;color:var(--text);background-position:0 0,0 0,0 0,0 0,0 0,4px 3px,2px 5px,6px 1px;background-repeat:repeat,no-repeat,no-repeat,no-repeat,repeat,repeat,repeat,repeat;background-size:96px 96px,100vw 100vh,100vw 100vh,100vw 100vh,34px 34px,28px 28px,18px 18px,11px 11px;background-attachment:fixed,fixed,fixed,fixed,fixed,fixed,fixed,fixed;position:relative;overflow-x:clip}.app-shell{background:0 0;grid-template-columns:260px minmax(0,1fr);align-items:start;min-height:100dvh;transition:grid-template-columns .28s cubic-bezier(.2,.78,.18,1);display:grid}.app-shell.collapsed{grid-template-columns:88px minmax(0,1fr)}.app-sidebar{z-index:var(--z-app-sidebar);border:1px solid color-mix(in srgb, var(--brand) 44%, var(--surface) 56%);border-right:1px solid color-mix(in srgb, var(--brand) 48%, var(--surface) 52%);background:radial-gradient(ellipse at 18% 4%, color-mix(in srgb, #fff 74%, var(--brand-soft) 26%) 0%, transparent 38%), radial-gradient(ellipse at 84% 18%, color-mix(in srgb, var(--brand-soft) 78%, transparent) 0%, transparent 44%), radial-gradient(ellipse at 50% 55%, color-mix(in srgb, var(--surface) 54%, transparent) 0%, transparent 62%), linear-gradient(155deg, color-mix(in srgb, var(--sidebar-bg-start) 54%, var(--surface) 46%) 0%, color-mix(in srgb, var(--sidebar-bg-start) 36%, var(--sidebar-bg-end) 64%) 38%, color-mix(in srgb, var(--sidebar-bg-end) 62%, var(--brand-soft) 38%) 100%);-webkit-backdrop-filter:blur(18px)saturate(1.32)brightness(1.04);backdrop-filter:blur(18px)saturate(1.32)brightness(1.04);box-shadow:0 24px 58px -36px color-mix(in srgb, var(--brand) 28%, transparent), 12px 0 30px -22px color-mix(in srgb, var(--brand-strong) 18%, transparent), inset 0 1px 0 #ffffffd1, inset 1px 0 0 #ffffff7a, inset -1px 0 0 color-mix(in srgb, var(--brand-strong) 8%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 12%, transparent);border-radius:28px;flex-direction:column;align-self:start;gap:16px;margin:14px 0 14px 14px;padding:20px 16px;transition:padding .28s cubic-bezier(.2,.78,.18,1);display:flex;position:sticky;top:14px}.app-sidebar:before{content:"";border-radius:inherit;background:linear-gradient(180deg, #ffffff75 0%, #ffffff1f 18%, transparent 48%, transparent 78%, color-mix(in srgb, var(--brand-soft) 12%, transparent) 100%);pointer-events:none;z-index:0;position:absolute;inset:1px}.app-sidebar:after{content:"";background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--ornament) 28%, transparent) 24%, color-mix(in srgb, var(--ornament-soft) 42%, transparent) 50%, color-mix(in srgb, var(--ornament) 18%, transparent) 76%, transparent 100%);pointer-events:none;z-index:0;border-radius:999px;height:1px;position:absolute;top:94px;left:22px;right:22px}.app-sidebar>*{z-index:1;position:relative}.app-sidebar-head{justify-content:space-between;align-items:flex-start;gap:8px;transition:gap .24s;display:flex}.app-sidebar-head>:first-child{justify-items:start;min-width:0;display:grid}.app-sidebar-head-actions{gap:6px;transition:width .24s;display:inline-flex}.app-sidebar-toggle{border:1px solid color-mix(in srgb, var(--brand) 26%, transparent);background:color-mix(in srgb, var(--surface) 66%, transparent);color:var(--sidebar-control-text);cursor:pointer;width:32px;height:32px;box-shadow:0 1px 0 color-mix(in srgb, var(--surface) 85%, transparent) inset, 0 6px 14px color-mix(in srgb, var(--brand-strong) 8%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-tap-highlight-color:transparent;border-radius:9px;place-items:center;transition:background-color .2s,border-color .2s,box-shadow .2s;display:grid}.app-sidebar-toggle:hover{background:color-mix(in srgb, var(--surface) 86%, var(--brand-soft) 14%);border-color:color-mix(in srgb, var(--brand) 42%, transparent);box-shadow:0 1px 0 color-mix(in srgb, var(--surface) 95%, transparent) inset, 0 8px 18px color-mix(in srgb, var(--brand-strong) 12%, transparent)}.app-sidebar-toggle:focus-visible{border-color:color-mix(in srgb, var(--brand) 52%, var(--surface) 48%);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 14%, transparent);outline:none}.app-sidebar-mobile-close{border:1px solid color-mix(in srgb, var(--brand) 26%, transparent);background:color-mix(in srgb, var(--surface) 66%, transparent);color:var(--sidebar-control-text);cursor:pointer;width:32px;height:32px;box-shadow:0 1px 0 color-mix(in srgb, var(--surface) 85%, transparent) inset, 0 6px 14px color-mix(in srgb, var(--brand-strong) 8%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-tap-highlight-color:transparent;border-radius:9px;place-items:center;display:none}.app-sidebar-mode-switch{border:1px solid color-mix(in srgb, var(--brand) 26%, var(--surface) 74%);width:100%;color:var(--nav-link-active-text);background:radial-gradient(circle at 12% 18%, color-mix(in srgb, #fff 76%, var(--brand-soft) 24%) 0%, transparent 38%), radial-gradient(circle at 86% 86%, color-mix(in srgb, var(--accent) 18%, transparent) 0%, transparent 42%), color-mix(in srgb, var(--surface) 58%, var(--brand-soft) 42%);box-shadow:0 12px 22px color-mix(in srgb, var(--brand-strong) 9%, transparent), inset 0 1px 0 #ffffffb8, inset 0 -1px 0 color-mix(in srgb, var(--brand) 12%, transparent);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 9px;transition:border-color .18s,box-shadow .18s,transform .18s,gap .24s,padding .26s cubic-bezier(.2,.78,.18,1);display:grid;position:relative;overflow:hidden}.app-sidebar-mode-switch:before{content:"";border-radius:inherit;background:linear-gradient(115deg, #ffffff57 0%, transparent 46%), linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--brand) 8%, transparent) 100%);pointer-events:none;position:absolute;inset:1px}.app-sidebar-mode-switch:hover{border-color:color-mix(in srgb, var(--brand) 44%, var(--surface) 56%);box-shadow:0 16px 26px color-mix(in srgb, var(--brand-strong) 13%, transparent), inset 0 1px 0 #ffffffd1, inset 0 -1px 0 color-mix(in srgb, var(--brand) 16%, transparent);transform:translateY(-1px)}.app-sidebar-mode-switch:focus-visible{border-color:color-mix(in srgb, var(--brand) 58%, var(--surface) 42%);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 16%, transparent), 0 16px 26px color-mix(in srgb, var(--brand-strong) 13%, transparent);outline:none}.app-sidebar-mode-switch>*{z-index:1;position:relative}.app-sidebar-mode-orb{width:30px;height:30px;color:color-mix(in srgb, var(--brand-strong) 88%, var(--text) 12%);background:radial-gradient(circle at 30% 22%, #ffffffd1 0%, transparent 42%), linear-gradient(150deg, color-mix(in srgb, var(--brand-soft) 74%, var(--surface) 26%) 0%, color-mix(in srgb, var(--secondary) 24%, var(--surface) 76%) 100%);box-shadow:inset 0 1px 0 #ffffffc7, 0 8px 14px color-mix(in srgb, var(--brand-strong) 13%, transparent);border-radius:12px;place-items:center;display:grid}.app-sidebar-mode-copy{white-space:nowrap;justify-items:start;gap:1px;min-width:0;transition:max-width .26s cubic-bezier(.2,.78,.18,1),opacity .16s,transform .24s;display:grid;overflow:hidden}.app-sidebar-mode-kicker{letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--text-soft) 86%, var(--brand) 14%);font-size:.66rem;font-weight:700}.app-sidebar-mode-label{letter-spacing:.01em;color:color-mix(in srgb, var(--brand-strong) 82%, var(--text) 18%);font-size:.9rem;font-weight:800}.app-sidebar-mode-track{background:linear-gradient(90deg, color-mix(in srgb, var(--surface) 74%, var(--brand-soft) 26%) 0%, color-mix(in srgb, var(--brand) 30%, var(--surface) 70%) 100%);width:36px;height:20px;box-shadow:inset 0 1px 2px color-mix(in srgb, var(--text) 12%, transparent), 0 1px 0 #ffffffad;border-radius:999px;padding:3px}.app-sidebar-mode-dot{background:radial-gradient(circle at 35% 25%, #fff 0%, color-mix(in srgb, #fff 78%, var(--accent-soft) 22%) 34%, var(--accent) 100%);width:14px;height:14px;box-shadow:0 3px 8px color-mix(in srgb, var(--accent-strong) 22%, transparent), inset 0 1px 0 #fffc;border-radius:50%;transition:transform .22s cubic-bezier(.2,.78,.18,1);display:block;transform:translate(0)}.app-sidebar-mode-switch.advance .app-sidebar-mode-dot{transform:translate(16px)}.app-sidebar-mode-switch.simple{color:var(--text-soft);background:radial-gradient(circle at 14% 20%, color-mix(in srgb, #fff 72%, var(--surface-soft) 28%) 0%, transparent 38%), color-mix(in srgb, var(--surface) 70%, var(--brand-soft) 30%)}.app-nav-empty{color:var(--text-soft);text-align:center;background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--brand-soft) 56%, transparent) 0%, transparent 58%), color-mix(in srgb, var(--surface) 34%, transparent);border:1px dashed color-mix(in srgb, var(--brand) 28%, var(--surface) 72%);border-radius:18px;justify-items:center;gap:5px;padding:18px 10px;display:grid}.app-nav-empty-mark{width:34px;height:34px;color:color-mix(in srgb, var(--brand) 86%, var(--text) 14%);background:color-mix(in srgb, var(--brand-soft) 64%, var(--surface) 36%);border-radius:50%;place-items:center;display:grid}.app-nav-empty-title{color:color-mix(in srgb, var(--brand-strong) 72%, var(--text) 28%);font-size:.82rem;font-weight:800}.app-nav-empty-note{font-size:.75rem}.app-brand{width:178px;min-width:0;min-height:62px;color:var(--brand-wordmark);justify-content:flex-start;align-items:center;gap:0;margin:0;transition:gap .24s,width .26s cubic-bezier(.2,.78,.18,1);display:inline-flex}.brand-logo{object-fit:contain;object-position:center;filter:drop-shadow(0 7px 10px color-mix(in srgb, var(--brand-strong) 14%, transparent));transition:width .24s,height .24s,flex-basis .24s,filter .18s,border-radius .18s;display:block}.brand-logo-wordmark{flex:0 0 178px;width:178px;height:auto}.brand-logo-mark{flex:0 0 56px;width:56px;height:56px;display:none}.brand-mark-image{object-fit:contain;width:48px;height:48px;filter:drop-shadow(0 7px 10px color-mix(in srgb, var(--brand-strong) 14%, transparent));border-radius:999px;flex:0 0 48px;transition:width .24s,height .24s,flex-basis .24s,filter .18s;display:block}.brand-word{white-space:nowrap;max-width:130px;color:var(--brand-wordmark);font-family:var(--font-display);letter-spacing:0;opacity:1;font-size:1.68rem;font-weight:700;line-height:1;transition:max-width .26s cubic-bezier(.2,.78,.18,1),opacity .16s,transform .24s;display:inline-block;overflow:hidden;transform:translate(0)}.app-sidebar-note{letter-spacing:.03em;width:210px;min-height:1.15em;color:var(--sidebar-note-text);margin:6px 0 0;font-size:.8rem;transition:width .26s cubic-bezier(.2,.78,.18,1),opacity .18s,transform .24s;position:relative}.app-sidebar-school-name{letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--sidebar-note-text) 88%, var(--surface) 12%);margin-top:4px;font-size:.76rem}.app-sidebar-note-full,.app-sidebar-note-short{white-space:nowrap;transition:max-width .26s cubic-bezier(.2,.78,.18,1),opacity .18s,transform .24s;display:block;overflow:hidden}.app-sidebar-note-full{opacity:1;max-width:210px;transform:translateY(0)}.app-sidebar-note-short{opacity:0;text-align:center;max-width:0;position:absolute;inset:0;transform:translateY(4px)}.app-nav{gap:8px;display:grid}.app-nav-item,.app-nav-group{z-index:1;gap:6px;display:grid;position:relative}.app-nav-group:hover,.app-nav-group:focus-within,.app-nav-group.mobile-expanded{z-index:30}.app-nav-item:after,.app-nav-group:after{content:"";width:18px;position:absolute;top:0;bottom:0;right:-18px}.app-nav-link{width:100%;color:var(--nav-link-text);transition:background-color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), gap .24s ease, padding .26s cubic-bezier(.2, .78, .18, 1);-webkit-tap-highlight-color:transparent;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:10px 11px;display:inline-flex;position:relative;overflow:hidden}.app-nav-link>*{z-index:1;position:relative}.app-nav-link:hover:not(.active){background:color-mix(in srgb, var(--surface) 36%, var(--school-primary-subtle) 64%);border-color:color-mix(in srgb, var(--school-primary) 18%, transparent);padding-left:15px;text-decoration:none;box-shadow:inset 0 1px #ffffff80}.app-nav-link.active{color:color-mix(in srgb, #fff 90%, var(--brand-soft) 10%);isolation:isolate;text-shadow:0 1px 2px color-mix(in srgb, var(--brand-strong) 48%, transparent);box-shadow:none;background:0 0;border-color:#0000;overflow:visible}.app-nav-link.active:before,.app-nav-sublink.active:before{--active-ink-opacity:.96;--active-ink-transform:rotate(-.42deg) scaleX(1.04);--active-ink-filter:saturate(1.08) contrast(1.08) blur(.12px) drop-shadow(0 5px 8px color-mix(in srgb, var(--brand-strong) 20%, transparent));--active-ink-mask-size:124% 150%;content:"";background:repeating-linear-gradient(178deg, #ffffff17 0 1px, transparent 1px 7px), linear-gradient(102deg, color-mix(in srgb, var(--brand) 82%, var(--brand-strong) 18%) 0%, color-mix(in srgb, var(--brand-strong) 94%, var(--brand) 6%) 38%, color-mix(in srgb, var(--brand) 78%, var(--brand-strong) 22%) 72%, color-mix(in srgb, var(--brand-strong) 76%, transparent) 90%, transparent 100%);background-blend-mode:soft-light, normal;-webkit-mask:center / var(--active-ink-mask-size) no-repeat url(/img/brush-stroke-wide-dry.svg);-webkit-mask:center / var(--active-ink-mask-size) no-repeat url(/img/brush-stroke-wide-dry.svg);mask:center / var(--active-ink-mask-size) no-repeat url(/img/brush-stroke-wide-dry.svg);opacity:var(--active-ink-opacity);transform:var(--active-ink-transform);transform-origin:50%;filter:var(--active-ink-filter);mix-blend-mode:multiply;pointer-events:none;z-index:0;will-change:background-position, opacity, filter;background-position:0%;background-repeat:no-repeat;background-size:230% 100%;animation:.52s cubic-bezier(.16,.78,.2,1) both nav-ink-active-in;position:absolute;inset:-7px -12px}.app-nav-parent-row:has(.app-nav-parent-link.active) .app-nav-parent-toggle{color:color-mix(in srgb, #fff 78%, var(--brand-soft) 22%)}.app-nav-parent-link{font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000}.app-nav-parent-row{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:6px;display:grid}.app-nav-parent-row .app-nav-parent-link{min-width:0}.app-nav-parent-row.active .app-nav-parent-link{grid-area:1/1/auto/-1;padding-right:55px}.app-nav-parent-toggle{z-index:2;width:38px;min-width:38px;color:var(--nav-parent-chevron);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;grid-area:1/2;justify-content:center;align-items:center;transition:color .2s;display:inline-flex}.app-nav-parent-toggle:hover,.app-nav-parent-toggle:focus-visible{background:0 0;border-color:#0000;outline:none}.app-nav-parent-chevron{color:var(--nav-parent-chevron);transition:transform .2s,color .2s}.app-nav-parent-row.active .app-nav-parent-toggle,.app-nav-parent-row.active .app-nav-parent-chevron{color:color-mix(in srgb, #fff 88%, var(--brand-soft) 12%)}.app-nav-parent-toggle:hover .app-nav-parent-chevron,.app-nav-parent-toggle:focus-visible .app-nav-parent-chevron{color:color-mix(in srgb, var(--brand) 62%, var(--nav-parent-chevron) 38%)}.app-nav-parent-row.active .app-nav-parent-toggle:hover .app-nav-parent-chevron,.app-nav-parent-row.active .app-nav-parent-toggle:focus-visible .app-nav-parent-chevron{color:#fff}.app-nav-parent-chevron.open{transform:rotate(0)}.app-nav-submenu,.app-profile-menu,.select-popover{border:1px solid var(--submenu-border);background:linear-gradient(180deg, #ffffff42 0%, transparent 44%), linear-gradient(180deg, var(--surface) 0%, var(--submenu-bg-end) 100%);box-shadow:0 18px 38px -18px color-mix(in srgb, var(--text) 24%, transparent), 0 8px 18px -18px color-mix(in srgb, var(--brand-strong) 20%, transparent), inset 0 1px 0 #ffffffdb, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 9%, transparent);border-radius:12px;padding:8px}.app-nav-submenu{z-index:140;opacity:0;pointer-events:none;gap:6px;min-width:220px;transition:opacity .2s,transform .2s;display:grid;position:absolute;top:-4px;left:calc(100% - 2px);overflow:hidden;transform:translate(-8px)}.app-nav-flyout-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft);padding:4px 8px 6px;font-size:.74rem;font-weight:800;display:none}.app-nav-flyout{z-index:140;opacity:0;pointer-events:none;border:1px solid var(--submenu-border);background:linear-gradient(180deg, var(--surface) 0%, var(--submenu-bg-end) 100%);min-width:200px;box-shadow:0 16px 34px color-mix(in srgb, var(--text) 18%, transparent), 0 1px 0 color-mix(in srgb, var(--surface) 92%, transparent) inset;border-radius:12px;gap:6px;padding:8px;transition:opacity .2s,transform .2s;display:grid;position:absolute;top:-4px;left:calc(100% - 2px);overflow:hidden;transform:translate(-8px)}.app-nav-flyout:before,.app-nav-submenu:before{content:"";width:12px;position:absolute;top:0;bottom:0;left:-12px}@media (min-width:921px){.app-nav-group:not(.submenu-dismissed):hover .app-nav-submenu,.app-nav-group:not(.submenu-dismissed):focus-within .app-nav-submenu,.app-shell.collapsed .app-nav-item:not(.submenu-dismissed):hover .app-nav-flyout,.app-shell.collapsed .app-nav-item:not(.submenu-dismissed):focus-within .app-nav-flyout{opacity:1;pointer-events:auto;transform:translate(0)}}.app-nav-sublink{width:100%;color:var(--nav-sublink-text);border-radius:9px;align-items:center;gap:8px;padding:8px 10px;font-size:.9rem;transition:background-color .2s,border-color .2s,gap .24s,padding .26s cubic-bezier(.2,.78,.18,1);display:inline-flex;position:relative}.app-nav-sublink:hover:not(.active){background:color-mix(in srgb, var(--surface) 34%, var(--school-primary-subtle) 66%);padding-left:14px;text-decoration:none}.app-nav-label{white-space:nowrap;opacity:1;max-width:190px;transition:max-width .26s cubic-bezier(.2,.78,.18,1),opacity .16s,transform .24s;display:inline-block;overflow:hidden;transform:translate(0)}.app-shell.collapsed .app-sidebar{padding-inline:12px}.app-shell.collapsed .app-sidebar-head{flex-direction:column;justify-content:flex-start;align-items:center;gap:10px}.app-shell.collapsed .app-sidebar-head>:first-child{justify-items:center}.app-shell.collapsed .app-sidebar-head-actions{justify-content:center;width:100%}.app-shell.collapsed .app-brand{justify-content:center;gap:0;width:52px}.app-shell.collapsed .brand-logo-wordmark{display:none}.app-shell.collapsed .brand-logo-mark{object-fit:contain;object-position:center;width:52px;height:52px;filter:drop-shadow(0 6px 8px color-mix(in srgb, var(--brand-strong) 12%, transparent));border-radius:0;flex-basis:52px;display:block}.app-shell.collapsed .brand-mark-image{filter:drop-shadow(0 6px 8px color-mix(in srgb, var(--brand-strong) 12%, transparent))}.app-shell.collapsed .brand-word{opacity:0;max-width:0;transform:translate(-6px)}.app-shell.collapsed .app-sidebar-note-full{opacity:0;max-width:0;transform:translateY(-4px)}.app-shell.collapsed .app-sidebar-note{width:54px}.app-shell.collapsed .app-sidebar-note-short{opacity:1;max-width:54px;transform:translateY(0)}.app-shell.collapsed .app-sidebar-mode-switch{grid-template-columns:1fr;justify-items:center;gap:6px;padding:8px 6px}.app-shell.collapsed .app-sidebar-mode-copy{opacity:0;max-width:0;transform:translateY(-4px)}.app-shell.collapsed .app-sidebar-mode-track{width:30px;height:18px;padding:3px}.app-shell.collapsed .app-sidebar-mode-dot{width:12px;height:12px}.app-shell.collapsed .app-sidebar-mode-switch.advance .app-sidebar-mode-dot{transform:translate(12px)}.app-shell.collapsed .app-nav-empty{padding:12px 6px}.app-shell.collapsed .app-nav-empty-title,.app-shell.collapsed .app-nav-empty-note{display:none}.app-shell.collapsed .app-nav-link{justify-content:center;gap:0;padding-inline:8px}.app-shell.collapsed .app-nav-parent-link{justify-content:center;padding-inline:8px}.app-shell.collapsed .app-nav-parent-row{display:block;position:relative;overflow:visible}.app-shell.collapsed .app-nav-parent-toggle{z-index:3;border:0;border-radius:9px;width:24px;min-width:24px;height:24px;padding:0;position:absolute;top:50%;right:-12px;transform:translateY(-50%)}.app-shell.collapsed .app-nav-link .app-nav-label{opacity:0;max-width:0;transform:translate(-6px)}.app-shell.collapsed .app-nav-flyout-heading{display:block}.app-shell.collapsed .app-nav-link.active:before{--active-ink-opacity:.96;--active-ink-transform:rotate(-.18deg) scaleX(1.08) scaleY(1.16);--active-ink-filter:saturate(1.08) contrast(1.08) blur(.1px) drop-shadow(0 5px 8px color-mix(in srgb, var(--brand-strong) 18%, transparent));--active-ink-mask-size:210% 250%;inset:-7px -9px}.app-main{z-index:auto;flex-direction:column;min-width:0;padding:10px 14px 18px;display:flex;position:relative}.app-main:before{content:none}.app-sidebar-overlay{background:color-mix(in srgb, var(--text) 42%, transparent);border:0;display:none}.app-toolbar{z-index:var(--z-app-toolbar);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:14px 20px 16px;position:relative}.app-toolbar:after{content:"";background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--ornament) 24%, transparent) 16%, color-mix(in srgb, var(--ornament-soft) 34%, transparent) 34%, transparent 62%, transparent 100%);pointer-events:none;border-radius:999px;height:2px;position:absolute;bottom:4px;left:20px;right:20px}.app-toolbar-row{z-index:1;justify-content:space-between;align-items:center;gap:16px;display:flex;position:relative}.app-toolbar-main{align-items:center;gap:10px;min-width:0;display:flex}.app-mobile-nav-btn{border:1px solid color-mix(in srgb, var(--brand) 26%, transparent);background:color-mix(in srgb, var(--surface) 66%, transparent);color:var(--sidebar-control-text);cursor:pointer;width:40px;height:40px;box-shadow:0 1px 0 color-mix(in srgb, var(--surface) 85%, transparent) inset, 0 6px 14px color-mix(in srgb, var(--brand-strong) 8%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-tap-highlight-color:transparent;border-radius:10px;place-items:center;display:none}.app-mobile-nav-btn:hover,.app-sidebar-mobile-close:hover{background:color-mix(in srgb, var(--surface) 86%, var(--brand-soft) 14%);border-color:color-mix(in srgb, var(--brand) 42%, transparent)}.app-mobile-nav-btn:focus-visible,.app-sidebar-mobile-close:focus-visible{border-color:color-mix(in srgb, var(--brand) 52%, var(--surface) 48%);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 14%, transparent);outline:none}.app-breadcrumb{color:var(--toolbar-breadcrumb-text);flex-wrap:wrap;align-items:center;gap:4px;font-size:.88rem;display:flex}.app-breadcrumb .sep{color:var(--toolbar-breadcrumb-sep);margin:0 5px}.app-breadcrumb .current{color:var(--toolbar-breadcrumb-current);font-weight:600}.app-title{font-family:var(--font-display);letter-spacing:0;margin:8px 0 0;font-size:clamp(1.35rem,1.1rem + .8vw,1.8rem);font-weight:600;line-height:1.1}.app-toolbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.app-language-toggle{min-height:40px;color:var(--text);align-items:center;display:inline-flex;position:relative}.app-language-toggle-trigger{border:1px solid color-mix(in srgb, var(--brand) 34%, var(--line) 66%);background:radial-gradient(circle at 22% 18%, #ffffffb3 0 18%, transparent 42%), linear-gradient(180deg, #ffffff85 0%, transparent 48%), linear-gradient(135deg, color-mix(in srgb, var(--surface) 88%, var(--school-primary-subtle) 12%) 0%, color-mix(in srgb, var(--surface-soft) 82%, var(--brand-soft) 18%) 100%);min-width:70px;min-height:40px;color:var(--brand-strong);font:inherit;cursor:pointer;box-shadow:0 14px 22px -18px color-mix(in srgb, var(--brand-strong) 42%, transparent), 0 2px 4px -3px #1c19175c, inset 0 1px 0 #ffffffeb, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 12%, transparent);border-radius:14px;justify-content:center;align-items:center;gap:7px;padding:0 12px 0 10px;line-height:1;transition:background .14s,border-color .14s,box-shadow .14s,transform .14s;display:inline-flex}.app-language-toggle-trigger:hover:not(:disabled),.app-language-toggle-trigger:focus-visible:not(:disabled),.app-language-toggle-trigger[aria-expanded=true]{border-color:color-mix(in srgb, var(--school-primary) 58%, var(--line) 42%);background:radial-gradient(circle at 22% 18%, #ffffffb8 0 18%, transparent 42%), linear-gradient(180deg, #ffffff75 0%, transparent 50%), linear-gradient(135deg, color-mix(in srgb, var(--school-primary-subtle) 74%, #fff 26%) 0%, color-mix(in srgb, var(--brand-soft) 54%, var(--surface) 46%) 100%);box-shadow:0 16px 24px -18px color-mix(in srgb, var(--brand-strong) 52%, transparent), 0 4px 8px -6px #1c191752, inset 0 1px 0 #ffffffe6, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 14%, transparent);transform:translateY(-1px)}.app-language-toggle-trigger:active:not(:disabled){transform:translateY(0)scale(.98)}.app-language-toggle-trigger:disabled{cursor:wait;opacity:.7}.app-language-toggle-flag{place-items:center;font-size:1.04rem;line-height:1;display:grid}.app-language-toggle-short{color:inherit;letter-spacing:.04em;text-shadow:0 1px #ffffffa3;font-size:.76rem;font-weight:900;line-height:1;display:inline-block}.app-language-toggle-menu{z-index:60;border:1px solid color-mix(in srgb, var(--line) 76%, var(--brand-soft) 24%);background:linear-gradient(180deg, #ffffff52 0%, transparent 62%), color-mix(in srgb, var(--surface) 94%, var(--surface-soft) 6%);min-width:148px;box-shadow:0 18px 34px -24px color-mix(in srgb, var(--brand-strong) 34%, transparent), 0 10px 18px -18px #1c19174d, inset 0 1px 0 #ffffffd6;transform-origin:100% 0;border-radius:12px;gap:3px;padding:6px;animation:.14s ease-out app-language-menu-in;display:grid;position:absolute;top:calc(100% + 8px);right:0}.app-language-toggle-option{width:100%;min-height:34px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:9px;padding:0 10px;font-size:.82rem;font-weight:700;transition:background .12s,color .12s,transform .12s;display:flex}.app-language-toggle-option:hover:not(:disabled),.app-language-toggle-option:focus-visible:not(:disabled){background:color-mix(in srgb, var(--school-primary-subtle) 82%, #fff 18%);color:var(--brand-strong)}.app-language-toggle-option.active{background:var(--school-primary);color:var(--school-primary-foreground)}.app-language-toggle-option:active:not(:disabled){transform:scale(.98)}.app-language-toggle-option:disabled{cursor:wait;opacity:.7}.app-language-toggle-option-flag{font-size:1.05rem;line-height:1}@keyframes app-language-menu-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.app-profile-switcher{gap:6px;min-width:220px;display:grid}.app-profile-switcher-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft);font-size:.78rem;font-weight:700}.app-profile-box{z-index:25;position:relative}.app-current-batch-box{min-width:210px;max-width:340px;font-family:var(--font-display);color:var(--text-soft);gap:2px;padding:8px 12px;font-size:.78rem;display:grid}.app-current-batch-box strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);font-size:.88rem;overflow:hidden}.app-current-batch-label{letter-spacing:.07em;text-transform:uppercase;color:color-mix(in srgb, var(--text-soft) 82%, var(--line) 18%);font-size:.68rem;font-weight:800}.app-current-batch-deadline{color:#c72b2b;font-weight:800;line-height:1.25}.app-profile-trigger{border:1px solid var(--profile-trigger-border);background:linear-gradient(180deg, #ffffff47 0%, transparent 46%), radial-gradient(circle at 90% -20%, var(--profile-trigger-accent) 0%, transparent 45%), linear-gradient(180deg, var(--surface) 0%, var(--profile-trigger-bg-end) 100%);text-align:left;min-width:300px;max-width:380px;box-shadow:0 14px 28px -22px color-mix(in srgb, var(--brand-strong) 24%, transparent), inset 0 1px 0 #ffffffdb, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 9%, transparent);border-radius:12px;align-items:center;gap:10px;padding:8px 10px;transition:border-color .2s,box-shadow .2s,transform .18s;display:inline-flex;transform:translateY(0)}.app-profile-trigger:hover{border-color:var(--profile-trigger-hover-border);box-shadow:0 18px 34px -24px color-mix(in srgb, var(--brand-strong) 30%, transparent), inset 0 1px 0 #ffffffeb, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 12%, transparent);transform:translateY(-1px)}.app-profile-trigger:focus{border-color:color-mix(in srgb, var(--brand) 52%, var(--surface) 48%);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 14%, transparent);outline:none}.app-profile-trigger:active{transform:translateY(0)}.app-profile-avatar{object-fit:cover;border:2px solid var(--profile-avatar-border);background:var(--profile-avatar-bg);width:40px;height:40px;box-shadow:0 6px 14px color-mix(in srgb, var(--brand-strong) 20%, transparent);border-radius:50%;flex:none}.app-profile-avatar-fallback{color:var(--brand);place-items:center;font-size:.86rem;font-weight:700;display:grid}.app-profile-lines{flex:1;gap:1px;min-width:0;display:grid}.app-profile-name{color:var(--profile-name-text);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:.9rem;font-weight:700;display:inline-flex;overflow:hidden}.app-profile-crown{color:color-mix(in srgb, var(--accent) 78%, #ffda78 22%);flex:none}.app-profile-nickname,.app-profile-email{color:var(--profile-subtext);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.app-profile-chevron{color:var(--profile-chevron);flex:none;transition:transform .2s}.app-profile-chevron.open{transform:rotate(180deg)}.app-profile-menu{width:220px;z-index:var(--z-app-profile-menu);gap:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.app-profile-menu-divider{background:color-mix(in srgb, var(--line) 78%, var(--brand-soft) 22%);height:1px;margin:4px 0}.app-profile-menu-item{width:100%;color:var(--nav-sublink-text);font:inherit;cursor:pointer;background:0 0;align-items:center;gap:8px;padding:8px 10px;text-decoration:none;display:inline-flex}.app-profile-menu-item-danger{color:var(--danger-action)}.app-profile-menu-item-danger:hover,.app-profile-menu-item-danger:focus{background:color-mix(in srgb, var(--danger-action-soft) 70%, var(--surface) 30%);border-color:color-mix(in srgb, var(--danger-action) 34%, var(--line) 66%);color:var(--danger-action)}.app-view{z-index:auto;opacity:1;transform-origin:top;will-change:opacity, transform;padding:10px 20px 22px;position:relative;transform:translateY(0)}.app-view.page-transition-exiting{pointer-events:none;animation:.12s ease-out forwards app-view-fade-out}.app-view.page-transition-entering{animation:.16s ease-out both app-view-fade-in}@keyframes app-view-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@keyframes app-view-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-modal-backdrop,.app-drawer-backdrop,.app-overlay-backdrop{z-index:var(--z-app-overlay);position:fixed;inset:0}.app-modal-panel,.app-drawer-panel,.app-overlay-panel{z-index:var(--z-app-overlay-panel);position:relative}.app-shell.viewport-guard .app-view{max-width:100%}.app-shell.viewport-guard .app-view>*,.app-shell.viewport-guard .app-content-stack,.app-shell.viewport-guard .app-surface,.app-shell.viewport-guard .section-grid{min-width:0;max-width:100%}.app-shell.viewport-guard .student-table-wrap,.app-shell.viewport-guard .course-table-wrap,.app-shell.viewport-guard .achievement-table-wrap,.app-shell.viewport-guard .course-responsibility-table-wrap{scrollbar-gutter:stable both-edges;height:clamp(260px,100dvh - 390px,720px);overflow-y:scroll}.app-shell.viewport-guard .achievement-table-shell{grid-template-rows:auto auto minmax(0,1fr) auto;height:clamp(460px,100dvh - 200px,1100px);min-height:0;display:grid}.app-shell.viewport-guard .achievement-table-shell .achievement-table-wrap{height:auto;min-height:0}.app-shell.viewport-guard .care-supervisor-map-roster,.app-shell.viewport-guard .care-supervisor-map-student-list{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:clamp(220px,100dvh - 430px,620px);padding-right:4px;overflow-y:scroll}.app-toolbar,.app-toolbar-row,.app-toolbar-main,.app-toolbar-actions,.app-view,.app-content-stack,.app-surface,.section-grid{min-width:0}.app-content-stack{align-content:start;gap:14px;display:grid}.app-surface{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.supervisor-workspace-shell,.supervisor-year-shell{overflow:hidden}.supervisor-workspace-head,.supervisor-year-head{grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);align-items:start;gap:16px;display:grid}.supervisor-workspace-kicker{letter-spacing:.06em;text-transform:uppercase;margin-top:0;font-weight:700}.supervisor-workspace-title{margin-top:6px;font-size:clamp(1.35rem,1.08rem + .85vw,1.85rem)}.supervisor-workspace-school-card,.supervisor-year-badge-card{border:1px solid color-mix(in srgb, var(--brand) 26%, var(--line) 74%);background:radial-gradient(circle at top right, color-mix(in srgb, var(--brand-soft) 72%, transparent) 0%, transparent 48%), linear-gradient(145deg, color-mix(in srgb, var(--surface) 80%, #fff 20%) 0%, color-mix(in srgb, var(--surface-soft) 62%, var(--brand-soft) 38%) 100%);box-shadow:inset 0 1px 0 #ffffffdb, 0 14px 26px color-mix(in srgb, var(--brand-strong) 10%, transparent);border-radius:20px;gap:6px;padding:16px 18px;display:grid}.supervisor-workspace-school-label,.supervisor-year-badge-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft);font-size:.76rem;font-weight:700}.supervisor-workspace-school-card strong,.supervisor-year-badge-card strong{color:var(--app-title-text);font-size:1.1rem}.supervisor-workspace-school-card span:last-child,.supervisor-year-badge-card span:last-child{color:var(--text-soft)}.supervisor-folder-grid{grid-template-columns:repeat(auto-fit,minmax(236px,1fr));gap:12px;display:grid}.supervisor-folder-card{border:1px solid color-mix(in srgb, var(--brand) 28%, var(--line) 72%);background:radial-gradient(circle at top right, color-mix(in srgb, var(--brand-soft) 64%, transparent) 0%, transparent 44%), linear-gradient(150deg, color-mix(in srgb, var(--surface) 78%, #fff 22%) 0%, color-mix(in srgb, var(--surface-soft) 58%, var(--brand-soft) 42%) 100%);min-height:184px;box-shadow:0 12px 24px -22px color-mix(in srgb, var(--brand-strong) 20%, transparent), inset 0 1px 0 #ffffffd1;border-radius:16px;align-content:start;gap:14px;padding:16px;transition:transform .2s,border-color .2s,box-shadow .2s;display:grid;position:relative}.supervisor-folder-card:hover,.supervisor-folder-card:focus{border-color:color-mix(in srgb, var(--brand) 44%, var(--line) 56%);box-shadow:0 14px 26px -22px color-mix(in srgb, var(--brand-strong) 24%, transparent), inset 0 1px 0 #ffffffe0;transform:translateY(-1px)}.supervisor-folder-main{text-align:left;grid-template-columns:auto minmax(0,1fr);align-content:center;align-items:center;gap:12px;display:grid}.supervisor-folder-icon{width:42px;height:42px;color:var(--brand-strong);background:radial-gradient(circle at top, #ffffffb3 0%, transparent 42%), linear-gradient(160deg, color-mix(in srgb, var(--brand-soft) 78%, var(--surface) 22%) 0%, color-mix(in srgb, var(--brand) 24%, var(--surface) 76%) 100%);box-shadow:inset 0 1px 0 #ffffffd1, 0 8px 16px color-mix(in srgb, var(--brand-strong) 10%, transparent);border-radius:14px;place-items:center;display:grid}.supervisor-folder-title{color:var(--app-title-text);margin:0;font-size:.96rem;font-weight:700;line-height:1.3}.supervisor-folder-description{color:var(--text-soft);margin:3px 0 0;font-size:.78rem;font-weight:600;line-height:1.45}.supervisor-folder-detail{gap:10px;display:grid}.supervisor-folder-progress-head{color:var(--text-soft);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:12px;font-size:.72rem;font-weight:800;display:flex}.supervisor-folder-progress-head strong{color:var(--app-title-text);letter-spacing:0;text-transform:none;white-space:nowrap;font-size:.82rem}.supervisor-folder-progress{background:color-mix(in srgb, var(--brand-soft) 58%, var(--surface-soft) 42%);height:7px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--brand) 18%, transparent);border-radius:999px;overflow:hidden}.supervisor-folder-progress:before{width:var(--progress,0%);border-radius:inherit;background:linear-gradient(90deg, color-mix(in srgb, var(--brand-strong) 86%, #fff 14%) 0%, color-mix(in srgb, var(--brand) 76%, var(--secondary) 24%) 100%);content:"";height:100%;display:block}.supervisor-folder-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.supervisor-folder-metric{border:1px solid color-mix(in srgb, var(--line) 74%, transparent);background:color-mix(in srgb, var(--surface) 74%, transparent);border-radius:12px;min-width:0;padding:8px}.supervisor-folder-metric dt{color:var(--text-soft);letter-spacing:.04em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin:0;font-size:.66rem;font-weight:800;line-height:1.35;overflow:hidden}.supervisor-folder-metric dd{color:var(--app-title-text);margin:2px 0 0;font-size:1rem;font-weight:800;line-height:1.2}.supervisor-folder-warning{color:var(--warning-text);margin:0;font-size:.75rem;font-weight:700;line-height:1.45}.supervisor-folder-open{width:28px;height:28px;color:var(--brand-strong);background:color-mix(in srgb, var(--surface) 78%, var(--brand-soft) 22%);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--brand) 18%, transparent);border-radius:999px;place-items:center;transition:transform .2s;display:grid;position:absolute;bottom:12px;right:14px}.supervisor-folder-card:hover .supervisor-folder-open,.supervisor-folder-card:focus .supervisor-folder-open{transform:translate(2px)}.supervisor-year-backlink{align-items:center;gap:8px;margin-bottom:8px;font-size:.9rem;font-weight:600;display:inline-flex}.supervisor-year-panel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.supervisor-year-panel{border:1px solid color-mix(in srgb, var(--line) 80%, var(--brand-soft) 20%);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 88%, #fff 12%) 0%, transparent 100%), color-mix(in srgb, var(--surface) 88%, var(--surface-soft) 12%);border-radius:18px;gap:10px;padding:16px;display:grid}.supervisor-year-panel-icon{width:38px;height:38px;color:var(--brand-strong);background:color-mix(in srgb, var(--brand-soft) 72%, #fff 28%);border-radius:12px;place-items:center;display:grid}.supervisor-year-panel-title{color:var(--app-title-text);margin:0;font-size:1rem}.supervisor-year-panel-copy{color:var(--text-soft);margin:0;line-height:1.55}a{color:var(--brand-strong);text-decoration:none}a:hover,a:focus{text-decoration:none}.page-shell{place-items:center;min-height:100vh;padding:28px 16px;display:grid}.page-card{background:linear-gradient(180deg, #ffffff52 0%, transparent 48%), radial-gradient(circle at 86% 0%, color-mix(in srgb, var(--brand-soft) 42%, transparent) 0%, transparent 46%), linear-gradient(180deg, var(--surface) 0%, var(--surface-soft) 100%);border:1px solid color-mix(in srgb, var(--line) 78%, var(--school-primary) 22%);border-radius:var(--radius-lg);width:min(100%,780px);box-shadow:0 22px 44px -34px color-mix(in srgb, var(--brand-strong) 34%, transparent), inset 0 0 0 1px #ffffffbd, inset 0 1px 0 #ffffffe6, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 8%, transparent);padding:28px;animation:.48s fade-up;position:relative}.page-card.narrow{width:min(100%,560px)}.ornamental-divider{width:100%;color:var(--ornament);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;display:grid}.ornamental-divider span{background:linear-gradient(90deg, transparent 0%, currentColor 36%, color-mix(in srgb, currentColor 72%, #fff 28%) 50%, currentColor 64%, transparent 100%);opacity:.58;height:1px;display:block}.ornamental-divider strong{width:18px;height:18px;color:color-mix(in srgb, var(--ornament) 82%, var(--school-primary) 18%);place-items:center;font-size:.74rem;line-height:1;display:grid}.ornamental-divider-lg{gap:16px;margin:4px 0}.ornamental-divider-lg strong{width:24px;height:24px;font-size:.95rem}.card-corner-accent{z-index:0;width:32px;height:32px;color:color-mix(in srgb, var(--ornament) 72%, var(--school-primary) 28%);opacity:.28;pointer-events:none;position:absolute}.card-corner-accent-top{top:3px;left:3px}.card-corner-accent-bottom{bottom:3px;right:3px;transform:rotate(180deg)}.stat-number-animated{font-variant-numeric:tabular-nums;min-width:3ch;display:inline-block}.page-head{margin-bottom:18px}.status-shell{place-items:center;min-height:100%;display:grid}.status-surface{gap:18px;width:min(100%,760px);display:grid}.status-hero{gap:14px;display:grid}.status-icon{width:56px;height:56px;color:color-mix(in srgb, var(--brand-strong) 82%, var(--text) 18%);background:radial-gradient(circle at 28% 24%, #ffffffd1 0%, transparent 42%), linear-gradient(150deg, color-mix(in srgb, var(--brand-soft) 74%, var(--surface) 26%) 0%, color-mix(in srgb, var(--brand) 28%, var(--surface) 72%) 100%);box-shadow:inset 0 1px 0 #ffffffc7, 0 10px 20px color-mix(in srgb, var(--brand-strong) 12%, transparent);border-radius:18px;place-items:center;display:grid}.status-kicker{letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--text-soft) 82%, var(--brand) 18%);margin:0;font-size:.76rem;font-weight:800}.status-title{font-family:var(--font-display);color:var(--app-title-text);letter-spacing:0;margin:0;font-size:clamp(1.6rem,1.1rem + 1.4vw,2.2rem);font-weight:600;line-height:1.12}.status-copy{max-width:62ch;color:var(--text-soft);margin:0;line-height:1.65}.status-meta{gap:10px;display:grid}.status-path{border:1px solid color-mix(in srgb, var(--brand) 24%, var(--line) 76%);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 86%, #fff 14%) 0%, transparent 100%), color-mix(in srgb, var(--surface) 76%, var(--brand-soft) 24%);width:fit-content;max-width:100%;color:color-mix(in srgb, var(--app-title-text) 84%, var(--text) 16%);overflow-wrap:anywhere;border-radius:12px;align-items:center;gap:8px;padding:9px 12px;font-size:.92rem;font-weight:700;display:inline-flex}.status-path code,.status-debug code{font:inherit}.status-debug{border:1px dashed color-mix(in srgb, var(--brand) 24%, var(--line) 76%);background:color-mix(in srgb, var(--surface) 82%, var(--surface-soft) 18%);color:var(--text-soft);border-radius:14px;padding:12px 14px;font-size:.9rem;line-height:1.6}.status-debug strong{color:var(--app-title-text)}.status-actions{flex-wrap:wrap;gap:10px;display:flex}.page-title{font-family:var(--font-display);letter-spacing:0;margin:0;font-size:clamp(1.55rem,1.1rem + 1.5vw,2.1rem);font-weight:600;line-height:1.15}.brand-title{letter-spacing:0;text-align:center;width:100%;color:var(--app-title-text);text-shadow:0 10px 28px color-mix(in srgb, var(--brand-strong) 14%, transparent);justify-content:center;align-items:center;gap:0;font-size:clamp(2.2rem,1.35rem + 2.5vw,3.05rem);font-weight:800;display:flex}.brand-title .brand-mark{object-fit:contain;width:min(340px,82vw);height:auto;filter:drop-shadow(0 8px 14px color-mix(in srgb, var(--brand-strong) 18%, transparent));display:block;transform:translate(-4%)}.page-subtitle{color:var(--text-soft);margin:10px 0 0;line-height:1.55}.section-title{font-family:var(--font-display);color:var(--app-title-text);margin:0;font-size:1.2rem;font-weight:600;line-height:1.25}.form-grid{gap:14px;display:grid}.field{gap:7px;display:grid}.label{color:var(--form-label-text);font-size:.92rem;font-weight:600}.input,.select{border:1px solid var(--input-border);background:linear-gradient(180deg, #ffffff57 0%, transparent 55%), var(--input-bg);width:100%;font:inherit;color:var(--text);box-shadow:inset 0 1px 0 #ffffffe0, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 7%, transparent), 0 8px 16px -18px color-mix(in srgb, var(--brand-strong) 26%, transparent);border-radius:10px;padding:11px 12px;transition:border-color .2s,box-shadow .2s}.input:focus,.select:focus{border-color:color-mix(in srgb, var(--brand) 52%, var(--surface) 48%);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 14%, transparent), inset 0 1px 0 #ffffffe6, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 10%, transparent);outline:none}.input:disabled{background:var(--input-disabled-bg);color:var(--input-disabled-text)}.dropdown-preset{border:1px solid var(--input-border);background:linear-gradient(180deg, #ffffff57 0%, transparent 55%), var(--input-bg);width:100%;font:inherit;color:var(--text);box-shadow:inset 0 1px 0 #ffffffe0, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 7%, transparent), 0 8px 16px -18px color-mix(in srgb, var(--brand-strong) 26%, transparent);border-radius:10px;padding:11px 12px;transition:border-color .2s,box-shadow .2s}.dropdown-preset:focus{border-color:color-mix(in srgb, var(--brand) 52%, var(--surface) 48%);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 14%, transparent), inset 0 1px 0 #ffffffe6, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 10%, transparent);outline:none}select.input,select.select,select.dropdown-preset{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--select-caret) 50%), linear-gradient(135deg, var(--select-caret) 50%, transparent 50%), linear-gradient(180deg, #ffffff57 0%, transparent 55%);cursor:pointer;background-position:calc(100% - 18px),calc(100% - 13px),0 0;background-repeat:no-repeat;background-size:6px 6px,6px 6px,100% 100%;padding-right:42px}select.input:hover:not(:disabled),select.select:hover:not(:disabled),select.dropdown-preset:hover:not(:disabled){border-color:color-mix(in srgb, var(--brand) 38%, var(--input-border) 62%);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 8%, transparent), inset 0 1px 0 #ffffffe6, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 9%, transparent)}select.input:disabled,select.select:disabled,select.dropdown-preset:disabled{cursor:not-allowed;opacity:1}select.input option,select.select option,select.dropdown-preset option{background:var(--surface);color:var(--text)}.select-menu{position:relative}.select-trigger{border:1px solid var(--input-border);background:linear-gradient(180deg, #ffffff57 0%, transparent 55%), var(--input-bg);width:100%;font:inherit;color:var(--text);box-shadow:inset 0 1px 0 #ffffffe0, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 7%, transparent), 0 8px 16px -18px color-mix(in srgb, var(--brand-strong) 26%, transparent);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;transition:border-color .2s,box-shadow .2s;display:flex}.select-trigger.is-clearable{padding-right:44px}.select-trigger:focus{border-color:color-mix(in srgb, var(--brand) 52%, var(--surface) 48%);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 14%, transparent), inset 0 1px 0 #ffffffe6, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 10%, transparent);outline:none}.select-menu.is-disabled .select-trigger{background:var(--input-disabled-bg);color:var(--input-disabled-text);cursor:not-allowed}.select-placeholder{color:var(--select-placeholder)}.select-value,.select-placeholder{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.select-value{color:var(--text)}.select-caret{color:var(--select-caret);transition:transform .2s}.select-caret.open{transform:rotate(180deg)}.business-unit-checklist{gap:10px;display:grid}.business-unit-option{border:1px solid var(--input-border);background:var(--input-bg);border-radius:12px;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;padding:12px 14px;transition:border-color .2s,box-shadow .2s,transform .2s;display:grid}.business-unit-option:hover{border-color:color-mix(in srgb, var(--brand) 36%, var(--input-border) 64%)}.business-unit-option.is-selected{border-color:color-mix(in srgb, var(--brand) 52%, var(--surface) 48%);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 10%, transparent)}.business-unit-checkbox{width:16px;height:16px;accent-color:var(--brand)}.business-unit-option-code{color:var(--app-title-text);font-weight:700}.business-unit-option-name{color:var(--text)}.access-choice-stack{gap:18px;margin-top:18px;display:grid}.access-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.access-choice-card{border:1px solid color-mix(in srgb, var(--brand) 34%, var(--input-border) 66%);background:radial-gradient(circle at top right, color-mix(in srgb, var(--brand-soft) 68%, transparent) 0%, transparent 40%), linear-gradient(135deg, color-mix(in srgb, var(--surface) 76%, #fff 24%) 0%, color-mix(in srgb, var(--brand-soft) 38%, var(--surface) 62%) 100%);text-align:left;min-height:72px;color:var(--text);box-shadow:0 10px 20px color-mix(in srgb, var(--brand-strong) 8%, transparent), inset 0 1px 0 #ffffffc7;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;transition:transform .2s,border-color .2s,box-shadow .2s;display:grid}.access-choice-card:hover{border-color:color-mix(in srgb, var(--brand) 56%, var(--surface) 44%);box-shadow:0 14px 26px color-mix(in srgb, var(--brand-strong) 12%, transparent), inset 0 1px 0 #ffffffd1;transform:translateY(-1px)}.access-choice-card:focus-visible{border-color:color-mix(in srgb, var(--brand) 58%, var(--surface) 42%);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 14%, transparent), 0 14px 26px color-mix(in srgb, var(--brand-strong) 10%, transparent);outline:none}.access-choice-card:disabled{opacity:.72;cursor:wait;transform:none}.access-choice-logo{letter-spacing:.08em;width:38px;height:38px;color:color-mix(in srgb, var(--brand-strong) 86%, var(--text) 14%);background:radial-gradient(circle at 28% 24%, #ffffffd1 0%, transparent 42%), linear-gradient(150deg, color-mix(in srgb, var(--brand-soft) 74%, var(--surface) 26%) 0%, color-mix(in srgb, var(--brand) 28%, var(--surface) 72%) 100%);box-shadow:inset 0 1px 0 #ffffffc7, 0 8px 14px color-mix(in srgb, var(--brand-strong) 12%, transparent);border-radius:12px;place-items:center;font-size:.82rem;font-weight:800;display:grid}.access-choice-copy{gap:2px;min-width:0;display:grid}.access-choice-title{color:var(--app-title-text);font-size:.95rem;font-weight:800}.access-choice-subtitle{color:var(--text-soft);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.access-choice-cta{color:color-mix(in srgb, var(--brand-strong) 86%, var(--text) 14%);background:color-mix(in srgb, var(--brand-soft) 76%, var(--surface) 24%);border:1px solid color-mix(in srgb, var(--brand) 26%, transparent);white-space:nowrap;border-radius:999px;padding:6px 10px;font-size:.76rem;font-weight:700}@media (max-width:760px){.access-choice-grid{grid-template-columns:1fr}}.select-clear-btn{border:1px solid color-mix(in srgb, var(--line) 84%, var(--surface) 16%);background:color-mix(in srgb, var(--surface-soft) 58%, var(--line) 42%);width:26px;height:26px;color:var(--text-soft);cursor:pointer;z-index:2;border-radius:999px;justify-content:center;align-items:center;font-size:1.05rem;font-weight:700;line-height:1;transition:background-color .15s,color .15s,transform .15s;display:inline-flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.select-clear-btn:hover{background:color-mix(in srgb, var(--surface-soft) 44%, var(--line) 56%);color:var(--text);transform:translateY(-50%)scale(1.03)}.select-clear-btn:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 18%, transparent);outline:none}.select-clear-btn:disabled{background:color-mix(in srgb, var(--surface) 92%, var(--line) 8%);border-color:color-mix(in srgb, var(--line) 90%, var(--surface) 10%);color:color-mix(in srgb, var(--text-soft) 72%, var(--surface) 28%);opacity:1;cursor:not-allowed;transform:translateY(-50%)}.select-popover{z-index:80;max-height:250px;margin:0;list-style:none;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.select-option{text-align:left;cursor:pointer;background:0 0;gap:2px;width:100%;padding:9px 10px;display:grid}.select-option-code{color:var(--select-option-code);font-size:.8rem;font-weight:700}.select-option-name{color:var(--nav-sublink-text)}.app-nav-sublink,.app-profile-menu-item,.select-option{border:1px solid #0000;border-radius:9px}.app-nav-sublink{-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}.app-nav-sublink>*{z-index:1;position:relative}.app-nav-sublink:hover,.app-nav-sublink:focus{background:0 0;border-color:#0000;outline:none;text-decoration:none}.app-profile-menu-item:hover,.app-profile-menu-item:focus,.select-option:hover,.select-option:focus{background:color-mix(in srgb, var(--surface) 78%, var(--brand-soft) 22%);border-color:color-mix(in srgb, var(--line) 82%, var(--brand-soft) 18%);outline:none;text-decoration:none}.app-nav-sublink.active{color:color-mix(in srgb, #fff 90%, var(--brand-soft) 10%);isolation:isolate;text-shadow:0 1px 2px color-mix(in srgb, var(--brand-strong) 48%, transparent);box-shadow:none;background:0 0;border-color:#0000;overflow:visible}.select-option.is-selected{background:color-mix(in srgb, var(--surface) 84%, var(--brand-soft) 16%);border-color:color-mix(in srgb, var(--line) 68%, var(--brand-soft) 32%);color:var(--nav-link-active-text)}.app-profile-menu .app-profile-menu-item-danger:hover,.app-profile-menu .app-profile-menu-item-danger:focus{background:color-mix(in srgb, var(--danger-action-soft) 70%, var(--surface) 30%);border-color:color-mix(in srgb, var(--danger-action) 34%, var(--line) 66%);color:var(--danger-action)}.btn-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn{font:inherit;cursor:pointer;box-shadow:0 10px 20px -18px color-mix(in srgb, var(--brand-strong) 26%, transparent), inset 0 1px 0 #ffffff47, inset 0 -1px 0 #0000001f;transition:transform var(--transition-fast), box-shadow var(--transition-base), background-color var(--transition-base);border:1px solid #0000;border-radius:10px;padding:11px 15px;font-weight:600}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn:active:not(:disabled){transform:translateY(0)scale(.99)}.btn:hover:not(:disabled){box-shadow:0 14px 24px -18px color-mix(in srgb, var(--brand-strong) 30%, transparent), inset 0 1px 0 #ffffff5c, inset 0 -1px 0 #0000001f;transform:translateY(-1px)}.btn-primary{background:linear-gradient(180deg, var(--btn-primary-start) 0%, var(--brand) 74%, color-mix(in srgb, var(--secondary) 36%, var(--brand-strong) 64%) 100%);color:#fff;border-color:color-mix(in srgb, var(--brand-strong) 24%, var(--brand) 76%);box-shadow:0 13px 24px -18px color-mix(in srgb, var(--brand-strong) 48%, transparent), inset 0 1px 0 #ffffff57, inset 0 -1px 0 #0000002e}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg, var(--btn-primary-hover-start) 0%, var(--brand-strong) 78%, color-mix(in srgb, var(--secondary-strong) 34%, var(--brand-strong) 66%) 100%)}.btn-outline{background:linear-gradient(180deg, #ffffff6b 0%, transparent 55%), color-mix(in srgb, var(--surface) 94%, var(--surface-soft) 6%);color:var(--btn-outline-text);border:1px solid var(--btn-outline-border);box-shadow:0 10px 20px -20px color-mix(in srgb, var(--brand-strong) 24%, transparent), inset 0 1px 0 #ffffffe0, inset 0 -1px 0 color-mix(in srgb, var(--brand-strong) 8%, transparent)}.btn-outline:hover:not(:disabled){background:var(--btn-outline-hover-bg)}.btn-danger{background:linear-gradient(180deg, color-mix(in srgb, var(--danger-action) 78%, var(--surface) 22%) 0%, var(--danger-action) 100%);color:#fff;box-shadow:var(--shadow-md)}.btn-danger:hover:not(:disabled){background:linear-gradient(180deg, color-mix(in srgb, var(--danger-action-strong) 86%, black 14%) 0%, var(--danger-action-strong) 100%)}.btn-google{background:var(--btn-google-bg);color:var(--btn-google-text);border:1px solid var(--btn-google-border);justify-content:center;align-items:center;gap:10px;display:inline-flex}.btn-google:hover:not(:disabled){background:var(--btn-google-hover-bg)}.google-icon{flex:none;display:block}.badge{letter-spacing:.02em;border-radius:999px;align-items:center;padding:5px 10px;font-size:.8rem;font-weight:700;display:inline-flex;position:relative}.badge.pending{background:var(--warning-soft);color:var(--warning-text)}.badge.active{background:var(--brand-soft);color:var(--brand-strong);box-shadow:0 0 0 0 color-mix(in srgb, var(--school-primary) 22%, transparent);animation:2.4s ease-in-out infinite active-badge-pulse}.badge.rejected{background:color-mix(in srgb, var(--danger-action-soft) 82%, var(--surface) 18%);color:var(--danger-action)}.badge.suspended{background:color-mix(in srgb, var(--warning-soft) 84%, var(--surface) 16%);color:color-mix(in srgb, var(--warning-text) 86%, var(--text) 14%)}@keyframes active-badge-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--school-primary) 0%, transparent)}48%{box-shadow:0 0 0 7px color-mix(in srgb, var(--school-primary) 16%, transparent)}}.alert{border-radius:var(--radius-md);padding:10px 12px;font-size:.93rem}.alert.error{background:var(--danger-soft);color:var(--danger-text);border:1px solid var(--alert-error-border)}.alert.info{background:var(--alert-info-bg);color:var(--alert-info-text);border:1px solid var(--alert-info-border)}.alert.success{background:var(--status-success-soft);color:var(--status-success-text);border:1px solid var(--status-success-text)}.school-db-status-banner{align-items:center;gap:10px;margin-bottom:14px;display:flex}.school-db-status-banner svg{flex-shrink:0}.school-db-status-copy{flex:1;min-width:0}.school-db-status-detail{opacity:.8}.school-db-status-banner .btn{flex-shrink:0;padding:4px 12px;font-size:.85rem}.avatar{object-fit:cover;border:3px solid var(--avatar-border);background:var(--avatar-bg);border-radius:50%;width:56px;height:56px;display:block}.avatar-wrap{justify-content:center;margin-bottom:6px;display:flex}.avatar-large{width:112px;height:112px;box-shadow:0 12px 24px color-mix(in srgb, var(--text) 12%, transparent)}.avatar-fallback{color:var(--brand);background:radial-gradient(circle at 30% 20%, var(--avatar-fallback-radial) 0%, transparent 45%), linear-gradient(160deg, var(--avatar-fallback-gradient-start) 0%, var(--avatar-fallback-gradient-end) 100%);place-items:center;font-size:2rem;font-weight:700;display:none}.profile-form{position:relative}.profile-avatar-editor-wrap{width:fit-content;margin:0 auto;position:relative}.profile-hidden-file-input{display:none}.profile-avatar-edit-btn{border:1px solid color-mix(in srgb, var(--line) 78%, var(--brand-soft) 22%);background:linear-gradient(180deg, var(--surface) 0%, var(--submenu-bg-end) 100%);width:34px;height:34px;color:var(--brand-strong);cursor:pointer;box-shadow:0 10px 20px color-mix(in srgb, var(--text) 16%, transparent), 0 1px 0 color-mix(in srgb, var(--surface) 94%, transparent) inset;border-radius:999px;place-items:center;display:grid;position:absolute;bottom:2px;right:2px}.profile-avatar-edit-btn:hover{background:color-mix(in srgb, var(--surface) 78%, var(--brand-soft) 22%);border-color:color-mix(in srgb, var(--line) 62%, var(--brand-soft) 38%)}.profile-avatar-edit-btn:focus{border-color:color-mix(in srgb, var(--brand) 54%, var(--surface) 46%);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 16%, transparent);outline:none}.profile-name-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.cropper-overlay{z-index:var(--z-app-overlay);background:color-mix(in srgb, var(--text) 38%, transparent);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.cropper-panel{border:1px solid var(--submenu-border);background:linear-gradient(180deg, var(--surface) 0%, var(--submenu-bg-end) 100%);width:min(540px,100%);box-shadow:0 22px 48px color-mix(in srgb, var(--text) 20%, transparent), 0 1px 0 color-mix(in srgb, var(--surface) 92%, transparent) inset;border-radius:16px;gap:12px;padding:16px;display:grid}.cropper-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.cropper-title{color:var(--app-title-text);margin:0;font-size:1.04rem}.cropper-close-btn{border:1px solid color-mix(in srgb, var(--line) 82%, var(--brand-soft) 18%);background:color-mix(in srgb, var(--surface) 76%, var(--brand-soft) 24%);width:32px;height:32px;color:var(--nav-link-text);cursor:pointer;border-radius:10px;place-items:center;display:grid}.cropper-close-btn:hover{background:color-mix(in srgb, var(--surface) 68%, var(--brand-soft) 32%)}.cropper-hint{color:var(--text-soft);margin:0;font-size:.9rem}.cropper-preview-wrap{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--line) 82%, var(--brand-soft) 18%);background:color-mix(in srgb, var(--surface) 84%, var(--brand-soft) 16%);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:16px;width:min(100%,340px);margin:0 auto;position:relative;overflow:hidden}.cropper-preview-wrap.dragging{cursor:grabbing}.cropper-preview-image{object-fit:cover;transform-origin:50%;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.cropper-preview-mask{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--surface) 44%, var(--brand-soft) 56%);pointer-events:none;border-radius:16px;position:absolute;inset:0}.cropper-controls{gap:8px;display:grid}.cropper-controls input[type=range]{width:100%;accent-color:var(--brand)}.cropper-secondary-upload{justify-content:center;width:100%}.confirm-overlay{z-index:var(--z-app-overlay);background:color-mix(in srgb, var(--text) 42%, transparent);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-panel{border:1px solid var(--submenu-border);background:linear-gradient(180deg, var(--surface) 0%, var(--submenu-bg-end) 100%);width:min(420px,100%);box-shadow:0 24px 50px color-mix(in srgb, var(--text) 22%, transparent), 0 1px 0 color-mix(in srgb, var(--surface) 92%, transparent) inset;border-radius:14px;gap:12px;padding:16px;display:grid}.confirm-title{color:var(--app-title-text);margin:0}.confirm-message{color:var(--text-soft);margin:0}.section-grid{gap:12px;display:grid}.user-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.user-item{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--input-bg);box-shadow:var(--shadow-md);padding:14px;animation:.38s fade-up}.user-item p{margin:6px 0}.approval-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.approval-stat-card{border:1px solid color-mix(in srgb, var(--line) 88%, var(--brand-soft) 12%);background:color-mix(in srgb, var(--surface) 76%, var(--surface-soft) 24%);border-radius:12px;padding:12px}.approval-stat-card p{margin:0}.approval-stat-value{color:var(--app-title-text);margin-top:4px;font-size:1.38rem;font-weight:700}.approval-actions{margin-top:8px}.rbac-manager-layout{grid-template-columns:minmax(250px,320px) minmax(0,1fr);align-items:start;gap:14px;display:grid}.rbac-role-list-panel{border:1px solid var(--rbac-card-border);background:color-mix(in srgb, var(--surface) 82%, var(--surface-soft) 18%);border-radius:14px;overflow:hidden}.rbac-role-panel-head{border-bottom:1px solid color-mix(in srgb, var(--line) 84%, var(--brand-soft) 16%);justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.rbac-role-create-form{border-bottom:1px solid color-mix(in srgb, var(--line) 84%, var(--brand-soft) 16%);padding:12px}.rbac-role-modal-overlay{z-index:var(--z-app-overlay);background:color-mix(in srgb, var(--text) 42%, transparent);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.rbac-role-modal{border:1px solid var(--submenu-border);background:linear-gradient(180deg, var(--surface) 0%, var(--submenu-bg-end) 100%);width:min(560px,100%);box-shadow:0 24px 50px color-mix(in srgb, var(--text) 22%, transparent), 0 1px 0 color-mix(in srgb, var(--surface) 92%, transparent) inset;border-radius:14px;gap:12px;padding:16px;display:grid}.rbac-role-modal-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.rbac-role-modal-close{border:1px solid color-mix(in srgb, var(--line) 78%, var(--brand-soft) 22%);width:36px;height:36px;color:var(--text-soft);border-radius:10px;place-items:center;font-size:1.5rem;line-height:1;text-decoration:none;display:inline-grid}.rbac-role-modal-close:hover,.rbac-role-modal-close:focus{background:color-mix(in srgb, var(--surface) 74%, var(--brand-soft) 26%);border-color:color-mix(in srgb, var(--line) 66%, var(--brand-soft) 34%);color:var(--text)}.rbac-role-modal-form{border-bottom:0;padding:0}.rbac-role-list{gap:6px;padding:10px;display:grid}.rbac-role-item-wrap{grid-template-columns:auto minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.rbac-role-item-wrap.dragging{opacity:.55}.rbac-role-item-wrap.drop-target .rbac-role-item{border-color:color-mix(in srgb, var(--brand) 40%, var(--line) 60%);background:color-mix(in srgb, var(--surface) 74%, var(--brand-soft) 26%)}.rbac-role-item-wrap.locked .rbac-role-drag-handle{cursor:not-allowed;opacity:.45}.rbac-role-drag-handle{width:24px;color:var(--text-soft);cursor:grab;-webkit-user-select:none;user-select:none;place-items:center;display:grid}.rbac-lock-icon{width:14px;height:14px;display:block}.rbac-role-item-wrap:active .rbac-role-drag-handle{cursor:grabbing}.rbac-role-item{background:0 0;border:1px solid #0000;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px;text-decoration:none;display:grid}.rbac-role-item:hover,.rbac-role-item:focus{background:color-mix(in srgb, var(--surface) 78%, var(--brand-soft) 22%);border-color:color-mix(in srgb, var(--line) 82%, var(--brand-soft) 18%);text-decoration:none}.rbac-role-item.active{background:color-mix(in srgb, var(--surface) 68%, var(--brand-soft) 32%);border-color:color-mix(in srgb, var(--line) 64%, var(--brand-soft) 36%)}.rbac-role-item-main{min-width:0}.rbac-role-item-name{color:var(--app-title-text);margin:0;font-weight:700}.rbac-role-item-meta{color:var(--text-soft);margin:3px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.82rem}.rbac-role-item-side{justify-items:end;gap:6px;display:inline-grid}.rbac-role-item-users{color:var(--text-soft);align-items:center;gap:5px;font-size:.83rem;display:inline-flex}.rbac-role-item-order{color:var(--text-soft);font-size:.82rem}.rbac-detail-panel{border:1px solid var(--rbac-card-border);background:color-mix(in srgb, var(--surface) 84%, var(--surface-soft) 16%);border-radius:14px;gap:12px;padding:12px;display:grid;overflow:hidden}.rbac-role-detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,220px);gap:12px;display:grid}.rbac-role-name-field{grid-column:1/-1}.rbac-role-name-field .input{max-width:350px}.rbac-role-order-field{grid-column:2/3}.rbac-role-meta-row{grid-column:1/-1;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:12px;display:grid}.rbac-role-actions{grid-column:1/-1}.rbac-search-form{gap:10px;display:grid}.rbac-permission-search-sticky{z-index:5;border-bottom:1px solid color-mix(in srgb, var(--line) 78%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 98%, var(--surface-soft) 2%) 0%, color-mix(in srgb, var(--surface) 94%, var(--surface-soft) 6%) 72%, color-mix(in srgb, var(--surface) 88%, var(--surface-soft) 12%) 100%);box-shadow:0 10px 18px color-mix(in srgb, var(--brand-soft) 18%, transparent);margin:-12px -4px 0 0;padding:16px 4px 14px 0;position:sticky;top:0}.rbac-permission-search-sticky:before{content:"";background:color-mix(in srgb, var(--surface) 98%, var(--surface-soft) 2%);pointer-events:none;height:52px;position:absolute;inset:-48px -4px auto 0}.rbac-search-form .field{max-width:500px}.rbac-permissions-scroll{border-top:1px solid color-mix(in srgb, var(--line) 84%, var(--brand-soft) 16%);scrollbar-gutter:stable;gap:12px;max-height:min(62vh,760px);padding-top:12px;padding-right:4px;display:grid;overflow-y:scroll}.rbac-search-input-wrap{max-width:700px;position:relative}.rbac-search-input-wrap .input{padding-right:44px}.rbac-search-icon{color:var(--text-soft);pointer-events:none;place-items:center;width:18px;height:18px;display:inline-grid;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.rbac-search-icon svg{width:16px;height:16px;display:block}.rbac-permission-group-list{gap:12px;display:grid}.rbac-permission-group{border:1px solid var(--rbac-card-border);background:color-mix(in srgb, var(--surface) 88%, var(--surface-soft) 12%);border-radius:12px;overflow:hidden}.rbac-permission-group-head{border-bottom:1px solid color-mix(in srgb, var(--line) 84%, var(--brand-soft) 16%);background:color-mix(in srgb, var(--surface) 68%, var(--surface-soft) 32%);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.rbac-permission-group-title{color:var(--app-title-text);margin:0;font-size:1.04rem}.rbac-permission-group-meta{color:var(--text-soft);margin:5px 0 0;font-size:.85rem}.rbac-permission-list{display:grid}.rbac-permission-row{border-top:1px solid color-mix(in srgb, var(--line) 88%, var(--brand-soft) 12%);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.rbac-permission-row:first-child{border-top:0}.rbac-permission-text{min-width:0}.rbac-permission-name{color:var(--text);margin:0;font-size:1.02rem}.rbac-permission-desc{color:var(--text-soft);margin:4px 0 0;font-size:.9rem}.rbac-toggle-form{align-items:center;gap:8px;margin:0;display:inline-flex}.rbac-toggle-label{color:var(--text-soft);font-size:.9rem}.rbac-switch{border:1px solid color-mix(in srgb, var(--line) 82%, var(--brand-soft) 18%);background:color-mix(in srgb, var(--surface) 70%, var(--surface-soft) 30%);cursor:pointer;border-radius:999px;align-items:center;width:58px;height:32px;padding:3px;transition:background-color .2s,border-color .2s;display:inline-flex}.rbac-switch-knob{background:color-mix(in srgb, var(--surface) 92%, var(--brand-soft) 8%);width:24px;height:24px;box-shadow:0 5px 10px color-mix(in srgb, var(--text) 14%, transparent);border-radius:50%;transition:transform .2s}.rbac-switch.on{background:color-mix(in srgb, var(--brand) 78%, var(--surface) 22%);border-color:color-mix(in srgb, var(--brand) 84%, var(--surface) 16%)}.rbac-switch:disabled{cursor:not-allowed;background:color-mix(in srgb, var(--surface) 86%, var(--surface-soft) 14%);border-color:color-mix(in srgb, var(--line) 90%, var(--surface) 10%)}.rbac-switch:disabled .rbac-switch-knob{box-shadow:none;background:color-mix(in srgb, var(--surface) 95%, var(--line) 5%)}.rbac-switch.on:disabled{background:color-mix(in srgb, var(--brand) 36%, var(--surface) 64%);border-color:color-mix(in srgb, var(--brand) 42%, var(--line) 58%)}.rbac-switch.on .rbac-switch-knob{background:#fff;transform:translate(26px)}.rbac-switch.on:disabled .rbac-switch-knob{background:color-mix(in srgb, #fff 84%, var(--surface) 16%)}.rbac-manager-empty{border:1px dashed color-mix(in srgb, var(--line) 70%, var(--brand-soft) 30%);border-radius:12px;padding:16px}.rbac-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.rbac-title{margin:0 0 12px;font-size:1.05rem;line-height:1.3}.rbac-shell{margin-top:32px;position:relative}.rbac-surface{z-index:1;padding-top:24px;position:relative;overflow:visible}.rbac-tabs{--rbac-tab-border:color-mix(in srgb, var(--line) 86%, var(--brand-soft) 14%);--rbac-tab-border-active:color-mix(in srgb, var(--line) 92%, var(--brand-soft) 8%);--rbac-tab-active-bg-start:var(--surface-soft);--rbac-tab-active-bg-end:var(--surface);flex-wrap:nowrap;align-items:end;gap:0;display:inline-flex;position:absolute;top:1px;left:16px;transform:translateY(-100%)}.rbac-tab{z-index:0;border:1px solid var(--rbac-tab-border);color:color-mix(in srgb, var(--text-soft) 92%, var(--line) 8%);background:color-mix(in srgb, var(--surface-soft) 70%, var(--line) 30%);box-shadow:0 -3px 8px color-mix(in srgb, var(--text) 6%, transparent);border-bottom-color:#0000;border-radius:16px 16px 0 0;margin-right:-1px;padding:8px 15px;font-weight:600;text-decoration:none;position:relative}.rbac-tab:hover,.rbac-tab:focus{color:var(--text);border-color:color-mix(in srgb, var(--line) 64%, var(--brand-soft) 36%);background:color-mix(in srgb, var(--surface) 74%, var(--brand-soft) 26%);border-bottom-color:#0000;text-decoration:none}.rbac-tab.active{color:var(--nav-link-active-text);border-color:var(--rbac-tab-border-active);border-bottom-color:var(--surface);background:linear-gradient(180deg, var(--rbac-tab-active-bg-start) 0%, var(--rbac-tab-active-bg-end) 100%);box-shadow:0 -8px 14px color-mix(in srgb, var(--text) 10%, transparent);z-index:3;border-radius:16px 16px 0 0;margin-bottom:-2px}.rbac-tab.active:before{content:none}.rbac-tab.active:after{content:"";background:var(--surface);pointer-events:none;height:4px;position:absolute;bottom:-2px;left:1px;right:1px}.rbac-form{gap:10px;display:grid}.rbac-list{gap:12px;display:grid}.rbac-card{border:1px solid var(--rbac-card-border);background:var(--input-bg);border-radius:12px;padding:12px}.rbac-card-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.rbac-card-title{margin:0;font-size:.98rem}.rbac-inline-form{grid-template-columns:minmax(0,1fr) minmax(0,220px) auto;align-items:center;gap:8px;margin-top:10px;display:grid}.rbac-chip-list{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.rbac-chip{border:1px solid var(--rbac-chip-border);background:var(--rbac-chip-bg);border-radius:999px;align-items:center;gap:8px;padding:4px 8px;display:inline-flex}.rbac-chip-label{color:var(--rbac-chip-text);font-size:.8rem}.rbac-chip-remove{color:var(--rbac-chip-remove);cursor:pointer;background:0 0;border:0;padding:0;font-size:1rem;line-height:1}.rbac-chip-remove:hover{color:var(--danger-text)}.rbac-user-stack{gap:14px;display:grid}.rbac-user-tools{border:1px solid var(--rbac-card-border);background:color-mix(in srgb, var(--surface) 84%, var(--surface-soft) 16%);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.rbac-user-tools-action{flex:none;align-items:center;gap:12px;display:inline-flex}.rbac-whitelist-modal{gap:0;width:min(920px,100%);padding:0;overflow:visible}.rbac-whitelist-modal-head{border-bottom:1px solid color-mix(in srgb, var(--line) 78%, var(--brand-soft) 22%);background:linear-gradient(180deg, #ffffff47 0%, transparent 100%), color-mix(in srgb, var(--surface) 90%, var(--surface-soft) 10%);border-radius:14px 14px 0 0;align-items:flex-start;padding:18px 20px}.rbac-whitelist-modal-head .rbac-card-title{font-size:1.12rem}.rbac-whitelist-modal-body{padding:16px 20px 20px}.rbac-user-whitelist{border:1px solid var(--rbac-card-border);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 88%, var(--surface-soft) 12%) 0%, transparent 100%), color-mix(in srgb, var(--surface) 82%, var(--surface-soft) 18%);border-radius:14px;gap:12px;padding:12px;display:grid}.rbac-whitelist-modal .rbac-user-whitelist{background:0 0;border:0;border-radius:0}.rbac-whitelist-head{align-items:flex-start}.rbac-whitelist-copy{max-width:720px;margin:4px 0 0;font-size:.86rem}.rbac-whitelist-form{grid-template-columns:minmax(220px,1.1fr) minmax(190px,.8fr) minmax(220px,1fr) auto;align-items:end;gap:12px;display:grid}.rbac-whitelist-form-actions{align-items:end;display:flex}.rbac-whitelist-form-actions .btn{min-height:42px}.rbac-whitelist-empty{margin:0}.rbac-whitelist-tabs{align-items:center;gap:8px;padding:4px 0 2px;display:flex;overflow-x:auto}.rbac-whitelist-tab{border:1px solid color-mix(in srgb, var(--line) 84%, var(--brand-soft) 16%);background:color-mix(in srgb, var(--surface) 86%, var(--surface-soft) 14%);color:var(--text-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;min-height:34px;padding:5px 10px;font-size:.82rem;font-weight:800;text-decoration:none;display:inline-flex}.rbac-whitelist-tab:hover,.rbac-whitelist-tab:focus{border-color:color-mix(in srgb, var(--brand) 36%, var(--line) 64%);color:var(--text);outline:none}.rbac-whitelist-tab.active{border-color:color-mix(in srgb, var(--brand) 54%, var(--line) 46%);background:color-mix(in srgb, var(--brand-soft) 52%, var(--surface) 48%);color:var(--app-title-text)}.rbac-whitelist-list{gap:8px;max-height:min(320px,100dvh - 380px);padding-right:4px;display:grid;overflow-y:auto}.rbac-whitelist-row{border:1px solid color-mix(in srgb, var(--line) 84%, var(--brand-soft) 16%);background:color-mix(in srgb, var(--surface) 88%, var(--surface-soft) 12%);border-radius:12px;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.rbac-whitelist-main,.rbac-whitelist-status{gap:4px;min-width:0;display:grid}.rbac-whitelist-main strong{overflow-wrap:anywhere}.rbac-whitelist-group,.rbac-whitelist-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rbac-whitelist-group .rbac-mono{border:1px solid color-mix(in srgb, var(--line) 84%, var(--brand-soft) 16%);background:color-mix(in srgb, var(--surface) 76%, var(--surface-soft) 24%);color:var(--text-soft);border-radius:999px;padding:4px 8px;font-size:.72rem}.rbac-whitelist-actions{justify-content:flex-end}.rbac-user-filters{border:1px solid var(--rbac-card-border);background:color-mix(in srgb, var(--surface) 84%, var(--surface-soft) 16%);border-radius:14px;padding:12px}.rbac-user-filter-form{gap:12px;display:grid}.rbac-user-filter-grid{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:12px;display:grid}.rbac-user-filter-query-wrap{grid-column:span 2;position:relative}.rbac-user-filter-query-input{padding-right:44px}.rbac-user-filter-clear-btn{border:1px solid color-mix(in srgb, var(--line) 84%, var(--surface) 16%);background:color-mix(in srgb, var(--surface-soft) 58%, var(--line) 42%);width:26px;height:26px;color:var(--text-soft);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;font-size:1.05rem;font-weight:700;line-height:1;transition:background-color .15s,color .15s,transform .15s;display:inline-flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.rbac-user-filter-clear-btn:hover{background:color-mix(in srgb, var(--surface-soft) 44%, var(--line) 56%);color:var(--text);transform:translateY(-50%)scale(1.03)}.rbac-user-filter-clear-btn:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 18%, transparent);outline:none}.rbac-user-filter-clear-btn:disabled{background:color-mix(in srgb, var(--surface) 92%, var(--line) 8%);border-color:color-mix(in srgb, var(--line) 90%, var(--surface) 10%);color:color-mix(in srgb, var(--text-soft) 72%, var(--surface) 28%);opacity:1;cursor:not-allowed;transform:translateY(-50%)}.rbac-user-filter-actions{justify-content:flex-start}.rbac-user-table{gap:8px;display:grid}.rbac-user-table-head{color:color-mix(in srgb, var(--text-soft) 88%, var(--line) 12%);letter-spacing:.08em;text-transform:uppercase;grid-template-columns:minmax(240px,1fr) minmax(160px,180px) minmax(320px,1fr);gap:12px;padding:0 14px;font-size:.72rem;font-weight:800;display:grid}.rbac-user-list{border:1px solid color-mix(in srgb, var(--rbac-card-border) 82%, var(--brand-soft) 18%);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 94%, var(--surface-soft) 6%) 0%, transparent 100%), color-mix(in srgb, var(--surface) 88%, var(--surface-soft) 12%);box-shadow:0 12px 24px color-mix(in srgb, var(--text) 6%, transparent), inset 0 1px 0 color-mix(in srgb, var(--surface) 80%, transparent);border-radius:18px;gap:0;overflow:hidden}.rbac-user-list .rbac-user-row{border:0;border-radius:0}.rbac-user-list .rbac-user-row+.rbac-user-row{border-top:1px solid color-mix(in srgb, var(--line) 84%, var(--brand-soft) 16%)}.rbac-user-row{background:linear-gradient(90deg, color-mix(in srgb, var(--surface-soft) 38%, transparent) 0%, transparent 28%), color-mix(in srgb, var(--surface) 86%, var(--surface-soft) 14%);grid-template-columns:minmax(240px,1fr) minmax(160px,180px) minmax(320px,1fr);align-items:start;gap:10px;padding:12px 14px;transition:background-color .22s,transform .22s,box-shadow .22s;display:grid;position:relative}.rbac-user-row:before{content:"";background:linear-gradient(180deg, var(--brand) 0%, color-mix(in srgb, var(--brand-strong) 80%, #fff 20%) 100%);opacity:0;border-radius:999px;width:3px;transition:opacity .22s,transform .22s;position:absolute;top:10px;bottom:10px;left:0;transform:scaleY(.7)}.rbac-user-row:hover,.rbac-user-row:focus-within{background:linear-gradient(90deg, color-mix(in srgb, var(--brand-soft) 44%, transparent) 0%, transparent 32%), color-mix(in srgb, var(--surface) 90%, var(--brand-soft) 10%);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--surface) 90%, transparent);transform:translate(2px)}.rbac-user-row:hover:before,.rbac-user-row:focus-within:before{opacity:1;transform:scaleY(1)}
