@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");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:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2)format("woff2-variations");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:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2)format("woff2-variations");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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2)format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2)format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2)format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2)format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff)format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff)format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2)format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2)format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2)format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff)format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff)format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2)format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2)format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2)format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2)format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff)format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2)format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff)format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff)format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/outfit-latin-ext-300-normal-BYS6Dpvq.woff2)format("woff2"),url(/assets/outfit-latin-ext-300-normal-CMIMshEd.woff)format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/outfit-latin-300-normal-CRYTwY6m.woff2)format("woff2"),url(/assets/outfit-latin-300-normal-AWLfuCom.woff)format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2)format("woff2"),url(/assets/outfit-latin-ext-400-normal-DHm7mdGe.woff)format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-400-normal-BGsTXAXT.woff2)format("woff2"),url(/assets/outfit-latin-400-normal-DMwTpYkH.woff)format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2)format("woff2"),url(/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff)format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-600-normal-B7SfZ07L.woff2)format("woff2"),url(/assets/outfit-latin-600-normal-BEfTtDA7.woff)format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/outfit-latin-ext-700-normal-CI4iH74K.woff2)format("woff2"),url(/assets/outfit-latin-ext-700-normal-fjS8-Gm7.woff)format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/outfit-latin-700-normal-Cu9v6i1X.woff2)format("woff2"),url(/assets/outfit-latin-700-normal-D4itBLBr.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA9UABAAAAAALMAAAA7zAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnAbhWocghYGYD9TVEFUXgCDBBEICrBAp3ILgjgAATYCJAOEKAQgBYUAB4xODAcbIiYzo8LGAQCKfn4o/usELQ4rdj22ABHwitFYjZPqB3XSqAbV3C5dFkHYtTehxpeGbU+3+QexdERCkxARw9oNxAyetvXzdhdjl/7aiBiHgcqBjZywaGPSh4mNFccpF3DHlfyO8Jc/OiSe/kb7/iQYRAE23iScpHngiRRBFETNiZzQwc2HOllJ0fqXIjTY8RTYbDsklKc81hGPQcOJojhD/w80ll1aG/qiQErbzqOXjmvOVKd14tuv+Hxrlbarq/5xH7CiMPjaZXlrfNSp7uqaroZXvYAzc8A0kH2zs3MvHQBUORcJ2GG2cdFRgArh+Sgb7yOsjImpmgM0kq1FwhQCQzQ1Mt+j7at5GSAAIQAAKFLk6uMul4pIl4HIpEEUK0dUMiCMmhFWNoSDC+Exghgzi5i3hNhtN9qaINo+EbQj1tEIgJVLj5oebQ6I1/fyLMQYALYgALKS0yEOQCJG89uIiEPKyeRDVCmC0HgZ203jIg7kk6cHxfEKeBSDXtxd6n5yJzqpfSgXs9xMri1fPezlKMAVcCGEIhmwHiDRtJOyKfXkGsAVqI7ohIZs0rsDM/IU4fuQgkppCk2n+VRHy6mFttJ26t16mBjQPyIeYhvZnyXaiDSeaAYYXLiKPIm4uKh1zIq6gSRVU7WNPIV5v1PwBOy07RrrT6skwoEAtYyZeYgpBUABaDEmtPWRGP/UGABFgUUjchFXAghAgAYQpyPkCIBBoRwQgU/g3kQcyqTY9KSDItmjjmmkP+qJHG3C66hjXhtlhzwglI+1+4Be+T77hYQxxeNkCIDaKU+ANXhkMqePOVAQr7uwCjoBlCdtHQE8TNRd17//A/evkhSpkOMDA9VTmwAVAbLNlwMkoAG5qG2bWCYA/h3uEYgEhFqSmJJPpCIFbJHg1Aw5GaAujjqMzIHc8NrIHBEJJjGZP3cuFQZD9PvzLvZIaCIjBcTvEnIzTWiGjqdzlD+VAO2TUERK8smEi8lNNOguiAM9P6Gfo6bX8bD0v7V/cPwA/fDBi0BaGgUllWy5AATy6X9gAZqRVIsMLuVmqQ3QmrBbiFgTiWbxLDj1hBqINGLVYewQwySWWRyeQK1kXVJ0S2UjZ5WgXaIOSTodp42CUzqHXH226ZfJI4tXth45eqnslGdQgSGFhmmMyOdTbEyJcdv56U0pNa3MDJ1JVRZUmldtkcESglQkAOA8AMgAoBeYLQi+wDxAtwAAGlXJUdVLPLmo/TLRystE3SsqO29LUY0hsrtvBoXUw1Fy+XjIhqbj4rEZISsUysW1L68PlGRwyWImjWXjS9LFyUzjC7v7Z5hYsYKRhIH49EyxTJxutwOy2PRxp1R63SVViB+eNFYRywlEzJBIMDIl5Aa4PtbFOno416WTTkfVQwSPgIve66BCbLAuLmpCh59ln5uFECODSuUIJ2CJCCzDwbf+DV2/3yTtan5J1gEVuilcVASHULO9Bt+nWkIEHMMit5gOxaO4JpWjvdzOcySeFek9q4dy3jxi2BxHwsuuo2CzbQ+KJWxyqPUJljVCU3WT8JwlhZyLkKODRhZkQByHu8ERJIcGBexSmdwGPfMPbjnC0SwRUTyCAIwY4Mdr9zxJTKE5yp0mcEe9s3Umm/TZp2s4X/27cQUmhrd4Ow4ibPOTOxxT6w+S8ENc9AGE7meFOlNbuzjngJtzjFKcrMsxtf4G4UIPcNGXbvwNaeDea6+1L7kaYG+M13a455pruOh5Ww0HlhllPy/PsqS9Zr7ZV9cSLODAoItzBt2cI5i1brCxQRIcH6yr9wV5+XjhtlxuziH7LiqGTXVnkfCZntd1doJ5liyIno6X3GqH56fcnGNwE2IXvYhw5a/MJGsMns/TOawd+2HX5kOXxQZFsYkwmMetzGtqKDKSe+h9h7jX77z2Snb98vyL7rjmil1N3B/cCBfsC5rymA/ExpPlni/DL9i7eflmn66oxrSlMRRB/8Dbq/e/3aN95L3BG+dFd1d+uCVzKhQy5/+I77CmWJ/o2Hygaay8yleXU1c1NH2IpqHOYUtriyWHf3iZwxjZvNxm/Ti/O5+22uC3nVFxhu1wvQc08ZZ+nb5/9oBF38ehJXaKPt7K6/v34Ltqai21rbXDXI3BRDa+9XDSGp8gzZZarV2ag9v3RBzSNfFjU/M+uVduNDTsMNY0GCOHDU3O4dazeb3zFXjg0rlPuiV75+m+kzV3v5qc/PHdJ2j6pI+wDP+U7mFPW/uw23ltZemTVTo+3+KNa1yyuwdmfI41j1/yvbG3oaLR3G3Sd1xdrNOUfAou3jYw0z860D9jr+9sqU1IIHve9W56/fIEU2fztvaqHQ213trhKauqjXVmr/kFxP1m7bdCE88Plpb1m840l/VNQz72QvvMPlc5z9fvKPt1xBtXv9yVZ9nGmxscXiDfwGcI4LQ9duBaG7Nxjw2aWMuArp7In2qxObTwKfr40/iy/j34zhqeN59qHuZqDBaysQWiL/PZsk4cyV13mvbwWw7phfEDC/O+fm9/ram+sspcXxs5hm9pHjufSujGRbKXaTPmBAPPfMm45bau15+jR/bbBx80mR7sCth94rfB6Q6sngJcuO1v4a7Lu157ad9GKIlypuEea9GDnXs0IytDmZ2Rka2cVv4jrIHmaFZ3O9OWlWX7gLuRH1mMjsxE8VrEH/XNRrErsh61R6PD3e2d7dDsb3Z38k15W/kFkrwmHk+PhWNKx3nLMhHkSl5ZLMvHWPGPfwRB9AKr2QoSUb4qSlB18X715zkqwRI0G3lvUOptugtcID+tsKQForrC+pqxS4X1dcof21bf4OQcbZ2Le6y53kKao3rxNWE9f1a+S3t2tiIu5yej2d/W12RozBwrLh7LbDT0NkUDi+HBQPj0xIlAoKHFFxAMPB8Vce+KKo28Rq0SHV3LUk6MNLv35DMrCzVNmbxBeCGCKzMtu20y8f+SVD4h31Sosky03Upl9YJxzh+L0ZFANLR4LOpYj452tne145E/wok2e6JX/xBX/vH8WaFQojdWlrhzuOXjs1Zn3cCkT4qWSmZeqX/B4tciE4HBmUBZwGxtMDaqnCpdllPVaIzdNw9ZqfDU30ppYDgw2B+A5JP5L8bj4tgWoy/t6WRRcO2P8uFDakiP2fMWaviyaOYFr94gE0nEsXysWligOuHRC2TiH0XSJ/4WqQcjE4GxmUAocKlG+jECgZHFwGX8vabVzf8f4KQSi8Gp6laIdgV0q8OzbmjyaWdnW1MQXZoJDb7ZaEdzVzMoNQiAGESUwszDAIzTDIqSxGFoxoRZ/vTKM8CfyZ9V/ZAPfzZ/Ds4tMHm0dSxCkOPaNpKlK8/KwGQVCdzqbPDn1HKuiT8WHUnStEQYZB2TC6WJ6spymNIjBV7JK5lSs1C5qDoRSYBUSlgH31LlM7X5O4o8eBxrX3MDwtOG1iZdZ/NjXsu0gBJohRVmlQNfwVfQmsReAdZEAahljqkMaxLHg/gT+BONkwxcgT0CH/5k/pQrcCpMUYiGtPqbDGvVgALfitYyTHyI7iP25WqsSqAlstCbcmZ3k0PcRZlgbs0KCrwb7lImBTqQCCawVEpMWHur0DRm3+9sVAOK6UQiqESr8NaEtY8Vu86AIjK3KRZhXNwqD34Oc38umLZM7/33+38/uOj7///Z9yMAAHqAUtN3Bsa/l9rSiKVxlONqqbKozYWfYMRMRkicEE2FhIs4TuWQJL0RDNwCPy0hP1CbGAVY9Mb6W+DZ2p14CIQoIBjqGKpe6lOONhDJTUFBXMgZYOPct8C7Ffmf2jR2ksQ72U7f6SBu5gywoW8x2Qhy1APl1CZGAQ4ksGGD8loGsjY0UQKXmhdvpBboCNglmiU2XUCieL2dF1bDaTacoykaTjgFAhquyoFkiSk0LZyooeM7gQDVIlmNOwCPlICNKQpatkhBhUQJpdLCVwFqWj3FQ8sWeajTWbJiLeRJQlRmsyh1YLRZtAzVNr0dAoCqYN6wXLhzQGL8LY6mvwSAd1698ly88s2Xfwa7FbVA/wsgBhQAgABfG3dQHs2o/066DhB0wWo68NIlpR8Rtqkj9flbwtMc3oZyWoIn3n+L86o5vA1V8ng6L4C9+Ax3YgMBHN8Er4rV97ZRXgdo2vF244hH35wAzlOM0Y1BABGNnNCZ4UFNPID7U9KeSCgiP5EiDnMizejpExlFzj9RIM2BE2MU8pwgViH7TAQQSqpgnDuJJAk2kHIaYDNnhs+sFsvBuaf5DXMbXT9uwvLIbk49b4mBNm3JsEV+85YtKUHWb5rT5ywap9WpUZtWo6q5Fot8W89a0m4OaXOK2Ywat2KaD3NdRi1S/+eloldCT0fn1K5q61Mpa6eaNrKMB6WMQqn83IfXmTNv1eIRiaKj7aOsikMmoxej+EfqsmjOpFHDLnneylGLQxT66vnHnh/n12VXDN1Hw6/bcNpctWo3vrwApZvfrdEDiP8IzgPkeiYUoQlzDvYWB0cnZ6uLq5t7+aRk5I6TIFGS5IqkSJWWXjqFDEqZVLJky5FrG7W8quQrUEijSLESWtsz0tErVVa9chUqValmUMNoh1omZjxSM4s69Ro0atKspTe1smrLpl2HTl262dg5OLm4eezMw6tHrz79BgzyGarXsBGjxqJtJvhNmjJtxqw58xYsWrJsxS4Bu61aE7THXvvsFxJ2wEERhxx2xFHHrIs6fuE/r+1vm6/8jhhtDCwnASDGR1h4SGhYwEGU1Y/Xffk5G4u9XgIAYtxyGpZ5y9sDdNbyP142W5DgAhoE7i3q0c5x2vm9v24aZuNohdcxqSEAz8up00My03HSwmqPa8bMecG3Tjzb+f9EelEtg2vpzPeiIEEBwSA8IEDBwAE9F5Z6vQIQjAnLGTgWLO+uZTL/qwGEAYOAQpg3TefgwBCQgBDzqukKDBAOoU3KVtqIbBXK9XpEAAujuudkZN724kIGmrtVaS38ZZLrS9/4fsKMQhN3yXK5gvSBvJ2Y9/Nydbcvb0bm58+e3FhmGfGLJ9u7axl1F1LQTbaCeyrbu7wFCsorFgV4qnh+GUrWtaczqkSBB96AEeKRB94k2SyLuyw3qwrxeg3P5FNR1Av1Gsq2/ds6dPPkBAAA)format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAASUABAAAAAACRAAAAQ3AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVEwAdBEICoRkg3oLIAABNgIkAzoEIAWFHgeBFAwHG3AHKB4HzukrRjyF5Gb4kQ/B873d17mv8TWkoqUUGaHodJCtoqntw7m8tiPWyGkfWDU/IMpzVk4zAs9Czv3c7Os5NvKFG1Ht9vBVXySRZpJc4tTrbM3sTRFcLa3zVboKWRIoAksKSKgqUQWEwlSoqjp44V5J9/kjd0+Fi5xaFjwJArgBAIJgIAgCCAI4CdNMqGuYXYUKdADLAkAAJwl6iX0+bZqEm1AH0Hu9rvrJHwxQG1Q/gFYwWYbgTRWgwEESVzbmtjQAt3DXO7Tu/+9Q/KNKWhTCgZ8fQSWoL0CUUgTBjgL8iEAcce7YHBeA8ZvogieCnxI0BCVeACCAAhBD/oDcAdUPABSgAX4kBPBTwjCAjwYSCneiqF65LUo/qXdYFrRwTujtMrKm07plTbSqLQFAiHBN7E4DG5wkiGXhCYBNETh3K/AciHN69iFfQjFOr9EXQQAAQXRNszs8PR0OH4fDV/dwGe76CHdj1MQa11DXYGcfZ6+B1X0OfwjY+i7KpQ1w9d+1z3/HydCB1f3U8A0fRFv+0bXxPWrZu3d9Nn4UcbLs/QCXLH/j3PCKblKOiZxLOR78W9brPo7eGTLz/F27ZPmePQdCB1YP4nJU91o4gU9cy64L3c3SPu8GfDn6ZXD2cGmllVqSxtD5vCXHm5xaeHlnpffx7DcPvXog5NnjA//cPz2btsz3yf+0MI8ri33tuv7upNbYmW5STbosW8bYItV/SPzxvXC0KnpWnFdC91oojit5Lyo6WcJQ1YzwBYbi52ohJVpcxfcHBqsv0nFz8U74rzS6M7r0RVlXZ3jJC4G92O//7Lm78VOtnUx+aQxAzsqPnrRr1t9zDrezKePvZ027x+fGte4s4NXu7/jEp3G9cM1bICYgACbuETUUD5wmenGXA/IBpAKVrl0AEJ5cqr6Q89tGq+SpqkDfX2DtG+pZ9teuae0AX98c301CX179InyErnSG8WCiABB4HFbVrw/lpTdBIOk82nXbpHKoQGyBpUovAAD4XQA8ZTUCeBJHIpI0v0FRrgcnckV3ANckrwYJKXEihQfdSKPER6XeExmEeEMmSe6QBwWmkZdmSOSthhibgIkBlUYreBKd/0NeVAE9WAyEaQpH6KikDWlUVg43Jy2FOmaYlsZhDEGZXO3mWEyWHI6zuaJkMlcSQ9k4F+KidIiFyZItGDc7r1pUj6wP6zrWB0/fbeeFeHl4YOvETMNiM8Ny+7OO6Qh2wur20YVxFts5dlORdl5Kwd5utR7SRcxqX8RA5Ehacha76hg7c6yzNm/Xf6vOLNrv544lIEkWg7xWo/ItBAeIJEmt0XgBwgM8gTifoiiLJroYYooNTeziEKe4zOoR/wvIKp89hSr+6jFAqw/LaonjmZHSscMNg4iPlWpFrO1RN3zkMU+/xUP+JQ99TbvTl1Vg0gtirT6lbwYAAAA=)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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)format("woff2"),url(/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQAAAAQtAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVDYAdBEICoRkg3gLIAABNgIkAzoEIAWFIgeBFAwHG1wHKI7DuPEacDIiFJ/g+f47+1/7dIcdXTlD8DKqmcw4eIC+AOCPf6+qiWq3h6+aSCLNJDnkqX9Xl+rv/6dSBcwSBCzEoVqxNbp5SqPMYdKBQhBq1dK9ggSsgYUoGnHOqttMECvWjIJfPA8cjQAuAEAQLAiClASc7M6OkfbO/nHs6ACmCYBxZXKP4s9uXIHECh4AdEhX0yIHC6jzgAb65sshStMMChwEfWVjZe8Anset/6H93x8jOyL5fuS67z4Dlam+BPyH/pV2FLCZAOnU0XPzCQGiJ7AkXgSFhqDEB4AAoAAN2ExDgM10joCNfDQUbvxaXM8LovT79D9MEyYU9+q/myT9p/m8uWi2mLJBPbzcih2wYIPzBDFNvABt315OXwy8BaRnbo5hXsOS5taknX4FguiaZnd4vQ7HxnBnm3SPYXHrQbclvOgyDhsHnZPO8f3G5I2fbr34Y7+hzRozVzyw5bKHdu03plXgvE9FO/Uz4/xPUKd8/PHk+R+JODnlg1lDTv3Qed77zDNqRszaqHUQT248kUPGzBXXXHGFnHrVVdft2m8c4PhpjB+/QEqMU54xruc6m3w8++XNXx4sya9rMvNq88m6X1zeOMlRuQ+/nvNw4+ZrCt58yDdSVOQdfoi/jc/ePfZY+1taYaH21FH2Y4fGG+RVNJkIN4SSiWj3ZKGG1oojoYr2SNWFVbHvY1XX1PR+H6y+oKrqgmryqj1UXnmk5cKWysPM3R4Uh5svYo6saAtU3V297+d91U/X/frzLvUdqiqfruKvhx5+OeOYxbHI7SenQum+PTw/fvRLGQ/jiufOn3/S+vlsfGn9h4Zb96fekZ7xRups68FhVCYCWHHvZVIPxjanr3NABSALqkR7FMBOulF9ScHvV3np+6pK/eEzRx877K3/z65pvwN89eGtV3Ly5ft/25ngaiSYDVYUAAKvIKimMdLO6YBQEY+aZpbXZ5WinTBQXwAA4LMAXuNUBPCSTmMfjd6jpNLNjbToDuBpaR9AoTBbUeERO2o0erNeR6KFne5HK/nOQA+VBtFnt1LtBj6pJQIutnLwipz/Ix9OYNSqZQEreiQELIkKmRIRNWdewpiIZVGtVi0J6xWR0ComIGpFnN+AVStWzUtIWBNXq0iRuJCYqDUJcYXiopYUWhUzp8iQTv20dtO84Agw6YrhuOijfqUKlSpRAruvTq9WdeQw2vs5SUsCYhdt7icIt1nNkseKPZzgV6q4FfYbH4ZIBcThYTEgLIgIkYRbJLl7/rks+ObZDxydE8W9LymoUMiqZUVbtVv0GNkcispQM0IpEG7sBdK9IYr6aKKLRaxiQxO7OMQphrUlGIscFbElV6LF5S0dQN5RbRoUdRbWWOYCy8sB83RxS7FqG/UEQslE5Nsd5v93uF3T0bLiypD/uJhn3q9fCAA=)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-cyrillic-600-normal-EVf6-Yzo.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-600-normal-8K4wrrwR.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-greek-600-normal-H7WoG9Et.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-600-normal-mc2nkWzM.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,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)format("woff2"),url(/assets/jetbrains-mono-vietnamese-600-normal-OWROknRo.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-ext-600-normal-BfB_LPfz.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-600-normal-DObL3zCW.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff)format("woff");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}:root{font-family:DM Sans Variable,DM Sans,system-ui,sans-serif}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-amber-500:oklch(76.9% .188 70.08);--color-green-100:oklch(96.2% .044 156.743);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-500:oklch(69.6% .17 162.48);--color-violet-400:oklch(70.2% .183 293.541);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--leading-tight:1.25;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base{.admin-tw,.admin-tw *,.admin-tw :before,.admin-tw :after{box-sizing:border-box;border:0 solid}.admin-tw button,.admin-tw input,.admin-tw select,.admin-tw textarea{font:inherit;color:inherit}}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.bottom-0{bottom:0}.left-0{left:0}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.float-left{float:left}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mr-\[5px\]{margin-right:5px}.-mb-0\.5{margin-bottom:calc(var(--spacing) * -.5)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-3\.5{margin-bottom:calc(var(--spacing) * 3.5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.h-40{height:calc(var(--spacing) * 40)}.h-\[34px\]{height:34px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[80px\]{max-height:80px}.max-h-\[120px\]{max-height:120px}.min-h-\[34px\]{min-height:34px}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-\[270px\]{width:270px}.w-full{width:100%}.max-w-\[26px\]{max-width:26px}.min-w-0{min-width:0}.min-w-\[160px\]{min-width:160px}.min-w-\[200px\]{min-width:200px}.min-w-\[240px\]{min-width:240px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[1fr_34px\]{grid-template-columns:1fr 34px}.grid-cols-\[28px_minmax\(80px\,40\%\)_1fr_auto\]{grid-template-columns:28px minmax(80px,40%) 1fr auto}.grid-cols-\[28px_minmax\(90px\,130px\)_1fr_auto\]{grid-template-columns:28px minmax(90px,130px) 1fr auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\[3px\]{gap:3px}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-y-2\.5{row-gap:calc(var(--spacing) * 2.5)}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-\[\#42a5f5\]{border-color:#42a5f5}.border-\[\#66bb6a\]{border-color:#66bb6a}.border-\[\#14181a\]{border-color:#14181a}.border-\[\#d1d5db\]{border-color:#d1d5db}.border-\[\#d7d2c8\]{border-color:#d7d2c8}.border-\[\#d8d5cc\]{border-color:#d8d5cc}.border-\[\#e2ddd2\]{border-color:#e2ddd2}.border-\[\#e5e7eb\]{border-color:#e5e7eb}.border-\[\#ecebe4\]{border-color:#ecebe4}.border-\[\#eee\]{border-color:#eee}.border-\[\#ef5350\]{border-color:#ef5350}.border-\[\#f0b429\]{border-color:#f0b429}.border-\[\#f0eeea\]{border-color:#f0eeea}.border-\[\#f0f1f4\]{border-color:#f0f1f4}.border-\[\#f1efe8\]{border-color:#f1efe8}.border-amber-500\/35{border-color:#f99c0059}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/35{border-color:color-mix(in oklab, var(--color-amber-500) 35%, transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/40{border-color:color-mix(in oklab, var(--color-amber-500) 40%, transparent)}}.border-emerald-500\/35{border-color:#00bb7f59}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/35{border-color:color-mix(in oklab, var(--color-emerald-500) 35%, transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.border-red-500\/35{border-color:#fb2c3659}@supports (color:color-mix(in lab, red, red)){.border-red-500\/35{border-color:color-mix(in oklab, var(--color-red-500) 35%, transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-red-500\/40{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.border-red-500\/45{border-color:#fb2c3673}@supports (color:color-mix(in lab, red, red)){.border-red-500\/45{border-color:color-mix(in oklab, var(--color-red-500) 45%, transparent)}}.border-violet-400\/40{border-color:#a685ff66}@supports (color:color-mix(in lab, red, red)){.border-violet-400\/40{border-color:color-mix(in oklab, var(--color-violet-400) 40%, transparent)}}.border-b-\[\#14181a\]{border-bottom-color:#14181a}.border-b-transparent{border-bottom-color:#0000}.bg-\[\#3b82f6\]{background-color:#3b82f6}.bg-\[\#16a34a\]{background-color:#16a34a}.bg-\[\#14181a\]{background-color:#14181a}.bg-\[\#d1d5db\]{background-color:#d1d5db}.bg-\[\#e3f2fd\]{background-color:#e3f2fd}.bg-\[\#e8f5e9\]{background-color:#e8f5e9}.bg-\[\#f3f4f6\]{background-color:#f3f4f6}.bg-\[\#f5f3ed\]{background-color:#f5f3ed}.bg-\[\#f5f3ed\]\/90{background-color:oklab(96.4033% -.000213355 .00824159/.9)}.bg-\[\#f8f9fc\]{background-color:#f8f9fc}.bg-\[\#faf9f5\]{background-color:#faf9f5}.bg-\[\#fafafa\]{background-color:#fafafa}.bg-\[\#fdfdfd\]{background-color:#fdfdfd}.bg-\[\#ffebee\]{background-color:#ffebee}.bg-\[\#fff8e1\]{background-color:#fff8e1}.bg-\[rgba\(245\,158\,11\,0\.06\)\]{background-color:#f59e0b0f}.bg-\[rgba\(245\,158\,11\,0\.08\)\]{background-color:#f59e0b14}.bg-\[rgba\(251\,191\,36\,0\.06\)\]{background-color:#fbbf240f}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/5{background-color:color-mix(in oklab, var(--color-red-500) 5%, transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-transparent{background-color:#0000}.bg-violet-400\/10{background-color:#a685ff1a}@supports (color:color-mix(in lab, red, red)){.bg-violet-400\/10{background-color:color-mix(in oklab, var(--color-violet-400) 10%, transparent)}}.bg-white{background-color:var(--color-white)}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\[7px\]{padding-inline:7px}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-\[3px\]{padding-block:3px}.py-\[7px\]{padding-block:7px}.py-\[9px\]{padding-block:9px}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-\[5px\]{padding-top:5px}.pb-1{padding-bottom:var(--spacing)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-\[5px\]{padding-bottom:5px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-\[\'Courier_New\'\,monospace\]{font-family:Courier New,monospace}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.leading-\[1\.3\]{--tw-leading:1.3;line-height:1.3}.leading-\[1\.4\]{--tw-leading:1.4;line-height:1.4}.leading-\[1\.35\]{--tw-leading:1.35;line-height:1.35}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-\[\.07em\]{--tw-tracking:.07em;letter-spacing:.07em}.tracking-\[\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.text-\[\#0d47a1\]{color:#0d47a1}.text-\[\#1b5e20\]{color:#1b5e20}.text-\[\#1f2937\]{color:#1f2937}.text-\[\#4a5358\]{color:#4a5358}.text-\[\#4b5563\]{color:#4b5563}.text-\[\#6b7280\]{color:#6b7280}.text-\[\#6b7378\]{color:#6b7378}.text-\[\#7a5200\]{color:#7a5200}.text-\[\#8a9197\]{color:#8a9197}.text-\[\#9aa0a5\]{color:#9aa0a5}.text-\[\#9ca3af\]{color:#9ca3af}.text-\[\#16a34a\]{color:#16a34a}.text-\[\#22c55e\]{color:#22c55e}.text-\[\#333\]{color:#333}.text-\[\#888\]{color:#888}.text-\[\#14181a\]{color:#14181a}.text-\[\#374151\]{color:#374151}.text-\[\#b71c1c\]{color:#b71c1c}.text-\[\#dc2626\]{color:#dc2626}.text-\[\#ef4444\]{color:#ef4444}.text-\[\#f5c518\]{color:#f5c518}.text-\[\#f5f3ed\]{color:#f5f3ed}.text-\[\#f59e0b\]{color:#f59e0b}.text-amber-500{color:var(--color-amber-500)}.text-emerald-500{color:var(--color-emerald-500)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-green-700{color:var(--color-green-700)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-transparent{color:#0000}.text-violet-400{color:var(--color-violet-400)}.text-white{color:var(--color-white)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-75{opacity:.75}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.first\:border-0:first-child{border-style:var(--tw-border-style);border-width:0}.first-of-type\:border-t-0:first-of-type{border-top-style:var(--tw-border-style);border-top-width:0}.read-only\:cursor-default:read-only{cursor:default}.read-only\:bg-\[rgba\(0\,0\,0\,0\.02\)\]:read-only{background-color:#00000005}.read-only\:text-\[\#4a5358\]:read-only{color:#4a5358}@media (hover:hover){.hover\:bg-\[\#efece4\]:hover{background-color:#efece4}.hover\:bg-\[\#f3f4f6\]:hover{background-color:#f3f4f6}.hover\:bg-\[\#faf9f6\]:hover{background-color:#faf9f6}.hover\:bg-\[rgba\(59\,130\,246\,0\.06\)\]:hover{background-color:#3b82f60f}.hover\:bg-black:hover{background-color:var(--color-black)}.hover\:bg-red-500\/5:hover{background-color:#fb2c360d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/5:hover{background-color:color-mix(in oklab, var(--color-red-500) 5%, transparent)}}.hover\:text-\[\#2563eb\]:hover{color:#2563eb}.hover\:text-\[\#374151\]:hover{color:#374151}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:bg-\[rgba\(59\,130\,246\,0\.04\)\]:focus{background-color:#3b82f60a}@media (hover:hover){.hover\:enabled\:bg-\[\#f59e0b\]:hover:enabled{background-color:#f59e0b}.hover\:enabled\:text-white:hover:enabled{color:var(--color-white)}}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-45:disabled{opacity:.45}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-55:disabled{opacity:.55}@media not all and (width>=900px){.max-\[900px\]\:flex-col{flex-direction:column}.max-\[900px\]\:items-stretch{align-items:stretch}}@media (width>=641px){.min-\[641px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=900px){.min-\[900px\]\:hidden{display:none}.min-\[900px\]\:table{display:table}.min-\[900px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1001px){.min-\[1001px\]\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1401px){.min-\[1401px\]\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=40rem){.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (width>=48rem){.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}}@media (width>=64rem){.lg\:fixed{position:fixed}.lg\:inset-y-0{inset-block:0}.lg\:left-0{left:0}.lg\:ml-\[256px\]{margin-left:256px}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-\[256px\]{width:256px}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:flex-col{flex-direction:column}.lg\:gap-3{gap:calc(var(--spacing) * 3)}.lg\:gap-6{gap:calc(var(--spacing) * 6)}.lg\:p-7{padding:calc(var(--spacing) * 7)}.lg\:px-7{padding-inline:calc(var(--spacing) * 7)}.lg\:py-4{padding-block:calc(var(--spacing) * 4)}.lg\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}}@media (width>=80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{0%,to{opacity:.55;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}:root{--accent-blue:#3b82f6;--accent-green:#10b981;--accent-orange:#f59e0b;--accent-purple:#a855f7;--accent-red:#ef4444;--bg-gradient:radial-gradient(circle at center, #1a1e2e5c 0%, #0b0d112e 100%);--card-bg:#17191e61;--card-border:#ffffff24;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--inv-color:#f1f5f9;--dim-color:#1e293b;--sub-color:#475569;--inv-shadow:drop-shadow(2px 6px 12px #ffffff4d);--glass-blur:blur(20px)}[data-theme=light]{--bg-gradient:radial-gradient(circle at center, #ffffff57 0%, #e2e8f024 100%);--card-bg:#ffffff75;--card-border:#0f172a24;--text-primary:#0f172a;--text-secondary:#475569;--inv-color:#1e293b;--dim-color:#cbd5e1;--sub-color:#94a3b8;--inv-shadow:drop-shadow(2px 6px 8px #0003)}*{box-sizing:border-box;margin:0;padding:0}body{width:100%;height:100vh;color:var(--text-primary);background:var(--bg-gradient);background-attachment:fixed;font-family:Outfit,sans-serif;transition:background .3s,color .3s;overflow:hidden}button,input{font:inherit}#root{height:100%}.dashboard{flex-direction:column;gap:1.5rem;height:100%;padding:1.5rem;display:flex}.loading-screen{text-align:center;justify-content:center;align-items:center}.loading-screen .animating{color:var(--accent-orange);margin-bottom:1rem;animation:1.3s ease-in-out infinite pulse}.loading-screen p{color:var(--text-secondary)}header{justify-content:space-between;align-items:center;gap:1rem;padding:0 1rem;display:flex}.header-brand,.header-actions{align-items:center;display:flex}.header-brand{gap:.75rem;min-width:0}.header-icon{color:var(--accent-blue);background:#3b82f61a;border-radius:12px;padding:.5rem}h1{font-size:1.125rem;font-weight:700}.system-status{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.75rem;display:flex}.status-dot{background:var(--accent-green);border-radius:50%;width:8px;height:8px;box-shadow:0 0 14px #10b981cc}.status-dot.error{background:var(--accent-red);box-shadow:0 0 14px #ef4444b3}.header-actions{gap:1.5rem}.theme-button{width:42px;height:42px;color:var(--text-primary);background:var(--card-bg);border:1px solid var(--card-border);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;display:flex}.dashboard-main{flex:1;grid-template-columns:1fr;gap:0;min-height:0;display:grid;overflow:hidden}.device-list{background:var(--card-bg);border:1px solid var(--card-border);min-width:0;min-height:0;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:8px;flex-direction:column;padding:1rem;display:flex}.section-title{color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:700}.device-list-scroll{gap:.55rem;min-height:0;margin-top:.8rem;padding-right:.2rem;display:grid;overflow-y:auto}.device-list-scroll::-webkit-scrollbar{width:4px}.device-list-scroll::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.device-button{min-height:72px;color:var(--text-primary);text-align:left;border:1px solid var(--card-border);cursor:pointer;background:#ffffff0a;border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem;display:flex}.device-button span{min-width:0}.device-button strong,.device-button small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.device-button small{color:var(--text-secondary);margin-top:.25rem}.device-power{color:var(--accent-green);flex:none;font-weight:700}.workspace{flex-direction:column;gap:1rem;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.powerflow-shell{aspect-ratio:5/3;background:var(--card-bg);border:1px solid var(--card-border);width:100%;max-width:1120px;min-height:480px;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:24px;flex:1;justify-content:center;align-items:center;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 32px #0003}.flow-overlay-top-left{z-index:10;pointer-events:none;position:absolute;top:1.5rem;left:1.5rem}.flow-overlay-top-right{z-index:10;position:absolute;top:1.5rem;right:1.5rem}.flow-device-info h2{color:var(--text-primary);margin:0;font-size:1.5rem;font-weight:700}.flow-device-info p{color:var(--text-secondary);margin-top:.25rem;font-size:.8rem}.sf-pv-val-row{justify-content:center;align-items:baseline;gap:6px;margin-top:2px;display:flex}.sf-pv-pct-badge{color:var(--accent-green);background:#10b9811a;border:1px solid #10b98133;border-radius:4px;padding:1px 4px;font-size:.7rem;font-weight:700}.sf-modal-error{color:var(--accent-red);background:#ef44441a;border:1px solid #ef444433;border-radius:8px;margin-top:16px;padding:10px 14px;font-size:.85rem}[data-theme=light] .sf-modal-error{background:#ef44440d}.lic-expired-banner{z-index:1900;color:#fecaca;background:#7f1d1d;align-items:center;gap:12px;padding:10px 20px;font-size:12px;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 12px #0000004d}[data-theme=light] .lic-expired-banner{color:#7f1d1d;background:#fee2e2}.lic-expired-icon{flex-shrink:0;align-items:center;display:flex}.lic-expired-text{flex-wrap:wrap;flex:1;align-items:baseline;gap:8px;min-width:0;display:flex}.lic-expired-text strong{white-space:nowrap;font-size:12px;font-weight:700}.lic-expired-text span{opacity:.8}.lic-expired-btn{color:#fff;cursor:pointer;letter-spacing:.04em;background:#ef4444;border:none;flex-shrink:0;padding:5px 14px;font-size:11px;font-weight:700}[data-theme=light] .lic-expired-btn{background:#dc2626}.lic-expired-btn:hover{opacity:.88}.lic-warn-banner{z-index:1900;color:#fde68a;background:#78350f;align-items:center;gap:12px;padding:10px 20px;font-size:12px;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 12px #0000004d}[data-theme=light] .lic-warn-banner{color:#78350f;background:#fef3c7}.lic-warn-banner .lic-expired-btn{background:#d97706}[data-theme=light] .lic-warn-banner .lic-expired-btn{background:#b45309}.lic-warn-dismiss{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px;display:flex}.lic-warn-dismiss:hover{opacity:1}.workspace.lic-blur{filter:blur(4px);pointer-events:none;-webkit-user-select:none;user-select:none}.dashboard-main{position:relative}.lic-expired-overlay{z-index:30;pointer-events:auto;background:#0a0c0e73;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}[data-theme=light] .lic-expired-overlay{background:#f5f3ed80}.lic-expired-overlay-card{text-align:center;background:var(--sf-panel,#181c1e);max-width:320px;color:var(--sf-ink,#e8edff);border:1px solid var(--sf-line,#ffffff1f);border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:24px 28px;display:flex;box-shadow:0 18px 48px #0006}.lic-expired-overlay-card strong{font-size:16px;font-weight:800}.lic-expired-overlay-card span{opacity:.78;font-size:13px}.lic-expired-overlay-card .lic-expired-btn{border-radius:8px;margin-top:4px;padding:8px 18px}@media (width<=767px){.dashboard.lic-expired-lock{height:100dvh;max-height:100dvh;overflow:hidden}.dashboard.lic-expired-lock .dashboard-main{flex:1;min-height:0;overflow:hidden}.dashboard-main .lic-expired-overlay{top:0;left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:85;position:fixed}}.pwa-install-banner{z-index:2000;background:var(--sf-panel);border:1px solid var(--sf-line);align-items:center;gap:12px;width:calc(100vw - 48px);min-width:320px;max-width:480px;padding:12px 16px;animation:.28s pwa-slide-up;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0000002e}@keyframes pwa-slide-up{0%{opacity:0;transform:translate(-50%)translateY(16px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.pwa-install-icon{flex-shrink:0}.pwa-install-text{flex:1;min-width:0}.pwa-install-title{color:var(--sf-ink);letter-spacing:.01em;font-size:13px;font-weight:700}.pwa-install-sub{color:var(--sf-ink-3);margin-top:2px;font-size:11px}.pwa-install-btn{background:var(--sf-solar);color:#fff;cursor:pointer;letter-spacing:.04em;border:none;flex-shrink:0;padding:7px 16px;font-size:12px;font-weight:700}.pwa-install-btn:hover{opacity:.88}.pwa-install-dismiss{color:var(--sf-ink-3);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:4px;display:flex}.pwa-install-dismiss:hover{color:var(--sf-ink)}.history-modal-backdrop{z-index:1200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#070a108c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}[data-theme=light] .history-modal-backdrop{background:#0f172a4d}.history-modal-panel{flex-direction:column;width:80%;height:80%;display:flex;overflow:hidden;box-shadow:0 16px 48px #0006}@media (width<=1024px){.history-modal-panel{width:95%;height:90%}}.screen-theme-fab{z-index:1150;cursor:pointer;background:var(--sf-solar,#36d07a);color:#0a0f12;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .18s,filter .18s;display:inline-flex;position:fixed;bottom:84px;right:18px;box-shadow:0 8px 24px #00000047}.screen-theme-fab:hover{filter:brightness(1.08);transform:translateY(-2px)}.screen-theme-fab .stf-label{display:none}@media (width<=768px){.screen-theme-fab{right:14px;bottom:calc(58px + 80px + env(safe-area-inset-bottom,0px))}}.screen-theme-backdrop{z-index:1300;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#070a108c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}[data-theme=light] .screen-theme-backdrop{background:#0f172a4d}.screen-theme-modal{color:#1d2733;background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-direction:column;width:min(640px,100vw - 2rem);min-width:0;max-width:100%;max-height:min(90dvh,820px);display:flex;overflow:hidden;box-shadow:0 16px 48px #0f172a59}.stm-head{border-bottom:1px solid #eef2f6;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.stm-head h3{color:#0f172a;margin:0;font-size:15px;font-weight:700}.stm-close{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:4px;display:inline-flex}.stm-close:hover{color:#0f172a;background:#f1f5f9}.stm-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:18px;min-height:0;padding:16px;display:flex;overflow:hidden auto}.stm-group{flex-direction:column;gap:8px;display:flex}.stm-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.stm-hint{color:#94a3b8;margin:0;font-size:12px;line-height:1.4}.stm-screen-pick{flex-wrap:wrap}.stm-offline-dot{color:#94a3b8;margin-left:4px;font-weight:700}.stm-segment{gap:6px;display:inline-flex}.stm-segment button{cursor:pointer;color:#334155;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:9px;flex:1;padding:8px 10px;font-size:13px;font-weight:600;transition:all .15s}.stm-segment button.active{color:#fff;background:#16a34a;border-color:#16a34a}.stm-palettes{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}@media (width>=520px){.screen-theme-modal .stm-palettes{grid-template-columns:repeat(3,minmax(0,1fr))}}.stm-palette{cursor:pointer;color:#1d2733;text-align:left;background:#f8fafc;border:1.5px solid #cbd5e1;border-radius:10px;align-items:center;gap:10px;min-width:0;padding:8px 10px;transition:all .15s;display:flex}.stm-palette.active{background:#f0fdf4;border-color:#16a34a}.stm-swatches{gap:3px;display:inline-flex}.stm-swatches span{border-radius:3px;width:12px;height:18px;display:inline-block}.stm-palette-name{color:#1d2733;font-size:13px;font-weight:600}.stm-layout{align-items:flex-start}.stm-layout-icon{color:#475569;font-size:20px;line-height:1}.stm-layout-text{flex-direction:column;gap:2px;min-width:0;display:flex}.stm-layout-desc{color:#64748b;overflow-wrap:anywhere;font-size:11px;line-height:1.3}.stm-toggle{cursor:pointer;color:#1d2733;align-items:center;gap:10px;font-size:14px;display:flex}.stm-toggle input{cursor:pointer;accent-color:#16a34a;width:16px;height:16px}.stm-error{color:#ef4444;font-size:13px}.stm-foot{background:#fff;border-top:1px solid #eef2f6;flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;padding:14px 16px;display:flex}.stm-btn{cursor:pointer;border:1px solid #0000;border-radius:9px;padding:8px 16px;font-size:13px;font-weight:600}.stm-btn:disabled{opacity:.6;cursor:default}.stm-btn.ghost{color:#475569;background:#fff;border-color:#cbd5e1}.stm-btn.primary{color:#fff;background:#16a34a}.grecaptcha-badge{visibility:hidden!important}body.recaptcha-page .grecaptcha-badge{visibility:visible!important}.chat-fab{z-index:1150;background:var(--accent-blue,#3b82f6);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .18s,background .18s;display:inline-flex;position:fixed;bottom:20px;right:18px;box-shadow:0 8px 24px #00000047}.chat-fab:hover{transform:translateY(-2px)}.chat-fab.open{background:var(--sf-ink-3,#64748b)}.chat-panel{z-index:1200;background:var(--sf-panel,#fff);width:min(340px,100vw - 32px);height:min(460px,100dvh - 140px);color:var(--sf-ink,#111);border:1px solid var(--sf-line,#e2e8f0);border-radius:14px;flex-direction:column;animation:.18s ease-out tour-pop;display:flex;position:fixed;bottom:84px;right:18px;overflow:hidden;box-shadow:0 18px 50px #00000057}.chat-head{border-bottom:1px solid var(--sf-line);background:var(--sf-panel-2,var(--sf-panel));justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.chat-head-title{align-items:center;gap:8px;font-size:14px;font-weight:700;display:inline-flex}.chat-dot{background:#22c55e;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #22c55e}.chat-head-x{width:26px;height:26px;color:var(--sf-ink-3);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.chat-head-x:hover{color:var(--sf-ink);background:#8080801f}.chat-body{overscroll-behavior:contain;flex-direction:column;flex:1;gap:8px;min-height:0;padding:12px;display:flex;overflow-y:auto}.chat-msg{word-break:break-word;border-radius:12px;max-width:82%;padding:8px 11px;font-size:13px;line-height:1.45}.chat-msg.bot{color:var(--sf-ink);background:#8080801f;border-bottom-left-radius:4px;align-self:flex-start}.chat-msg.user{background:var(--accent-blue,#3b82f6);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.chat-input{border-top:1px solid var(--sf-line);align-items:center;gap:8px;padding:10px;display:flex}.chat-input input{border:1px solid var(--sf-line);background:var(--sf-bg);min-width:0;color:var(--sf-ink);border-radius:999px;outline:none;flex:1;padding:9px 12px;font-size:13px}.chat-input button{background:var(--accent-blue,#3b82f6);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.chat-row{flex-direction:column;gap:8px;display:flex}.chat-action-card{border:1px solid var(--sf-line,#e2e8f0);background:var(--sf-panel-2,var(--sf-bg,#f8fafc));border-radius:12px;flex-direction:column;align-self:flex-start;gap:8px;max-width:92%;padding:10px 12px;font-size:13px;display:flex}.chat-action-summary{color:var(--sf-ink,#111);line-height:1.45}.chat-action-device{color:var(--sf-ink-3,#64748b);font-size:12px}.chat-action-btns{flex-wrap:wrap;gap:8px;display:flex}.chat-action-btn{border:1px solid var(--sf-line,#e2e8f0);background:var(--sf-panel,#fff);min-width:88px;color:var(--sf-ink,#111);cursor:pointer;border-radius:8px;flex:1;padding:8px 10px;font-size:13px;font-weight:600}.chat-action-btn.primary{background:var(--accent-blue,#3b82f6);color:#fff;border:none}.chat-action-btn:disabled{opacity:.6;cursor:default}.chat-migrate-form .chat-field{flex-direction:column;gap:4px;display:flex}.chat-migrate-form .chat-field>span{color:var(--sf-ink-3,#64748b);font-size:12px}.chat-migrate-form .chat-field input,.chat-migrate-form .chat-field textarea{box-sizing:border-box;border:1px solid var(--sf-line,#e2e8f0);background:var(--sf-bg,#fff);width:100%;color:var(--sf-ink,#111);border-radius:8px;outline:none;padding:7px 9px;font-size:13px}.chat-migrate-form .chat-field textarea{resize:vertical;font-family:inherit}.chat-migrate-form .chat-field-row{gap:8px;display:flex}.chat-migrate-form .chat-field-row .chat-field{flex:1;min-width:0}@media (width<=768px){.chat-fab{bottom:calc(58px + 16px + env(safe-area-inset-bottom,0px));right:14px}.chat-panel{bottom:calc(58px + 78px + env(safe-area-inset-bottom,0px));right:14px}}body.chat-open .notif-fab,body.chat-open .notif-panel,body.chat-open .contact-dock,body.chart-fullscreen-open .fab-dock,body.chart-fullscreen-open .chat-fab,body.chart-fullscreen-open .chat-panel,body.chart-fullscreen-open .notif-fab,body.chart-fullscreen-open .notif-panel,body.chart-fullscreen-open .schedule-fab,body.chart-fullscreen-open .schedule-panel,body.chart-fullscreen-open .screen-theme-fab,body.chart-fullscreen-open .contact-dock{display:none!important}.chat-typing{align-items:center;gap:5px;padding:11px;display:inline-flex}.chat-typing-dot{opacity:.35;background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite both chat-typing-bounce}.chat-typing-dot:nth-child(2){animation-delay:.16s}.chat-typing-dot:nth-child(3){animation-delay:.32s}@keyframes chat-typing-bounce{0%,70%,to{opacity:.35;transform:translateY(0)}35%{opacity:.9;transform:translateY(-5px)}}.fab-dock{z-index:1150;width:52px;height:52px;position:fixed;bottom:20px;right:18px}.fab-launch{cursor:pointer;color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:bottom .32s cubic-bezier(.22,1,.36,1),transform .18s,filter .18s;display:inline-flex;position:absolute;bottom:0;right:0;box-shadow:0 8px 24px #00000047}.fab-launch:hover{filter:brightness(1.08);transform:translateY(-2px)}.fab-chat{background:var(--accent-blue,#3b82f6)}.fab-notif{background:#1f2937}.fab-schedule{background:#0f766e}.fab-screen{background:var(--sf-solar,#36d07a);color:#0a0f12}.fab-launch.active{filter:brightness(1.14)}.fab-dock.expanded .fab-launch{bottom:calc(var(--i) * 64px)}.fab-dock.collapsed .fab-launch{bottom:calc(var(--i) * 11px)}.fab-dock.collapsed .fab-launch:not(.fab-chat){box-shadow:0 3px 10px #00000038}.fab-badge{color:#fff;background:#ef4444;border:2px solid #fff;border-radius:10px;justify-content:center;align-items:center;min-width:19px;height:19px;padding:0 5px;font-size:11px;font-weight:800;display:inline-flex;position:absolute;top:-3px;right:-3px}.fab-schedule .fab-badge{background:#f59e0b}.notif-panel.dock,.schedule-panel.dock{bottom:88px;left:auto;right:18px}@media (width<=768px){.fab-dock{right:14px;bottom:calc(58px + 16px + env(safe-area-inset-bottom,0px))}.notif-panel.dock,.schedule-panel.dock{left:auto;right:14px;bottom:calc(58px + 80px + env(safe-area-inset-bottom,0px))}}.tour-root{z-index:2000;position:fixed;inset:0}.tour-blocker{background:0 0;position:fixed;inset:0}.tour-spotlight{box-shadow:0 0 0 9999px #070a109e, 0 0 0 2px var(--accent-blue,#3b82f6);pointer-events:none;border-radius:10px;transition:top .2s,left .2s,width .2s,height .2s;position:fixed}.tour-tip{background:var(--sf-panel,#fff);color:var(--sf-ink,#111);border:1px solid var(--sf-line,#e2e8f0);z-index:2010;pointer-events:auto;border-radius:12px;padding:14px 14px 12px;animation:.18s ease-out tour-pop;position:fixed;box-shadow:0 18px 50px #0006}@keyframes tour-pop{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.tour-x{width:24px;height:24px;color:var(--sf-ink-3);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:8px;right:8px}.tour-x:hover{color:var(--sf-ink);background:#8080801f}.tour-step-no{letter-spacing:.1em;color:var(--accent-blue,#3b82f6);font-size:10px;font-weight:700}.tour-title{margin:2px 0 4px;font-size:15px;font-weight:700}.tour-body{color:var(--sf-ink-2,#475569);font-size:12.5px;line-height:1.5}.tour-actions{justify-content:space-between;align-items:center;gap:8px;margin-top:14px;display:flex}.tour-actions-right{align-items:center;gap:8px;display:flex}.tour-skip{color:var(--sf-ink-3);cursor:pointer;background:0 0;border:none;padding:6px 4px;font-size:12px}.tour-skip:hover{color:var(--sf-ink)}.tour-back{border:1px solid var(--sf-line);color:var(--sf-ink);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600}.tour-next{background:var(--accent-blue,#3b82f6);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:6px 16px;font-size:12px;font-weight:700}.sf-clickable-val{cursor:pointer}.sf-clickable-val:hover{text-underline-offset:2px;text-decoration:underline}.hg-panel{background:var(--sf-panel);border:1px solid var(--sf-line);flex-direction:column;height:100%;display:flex;overflow:hidden}.hg-head{border-bottom:1px solid var(--sf-line-2);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 18px 10px;display:flex}.hg-head-left{flex-direction:column;gap:4px;display:flex}.hg-metric{letter-spacing:.06em;text-transform:uppercase;color:var(--sf-ink-2);font-size:11px;font-weight:700}.hg-sub{align-items:center;gap:8px;display:flex}.hg-sn{color:var(--sf-ink-3);font-family:JetBrains Mono,monospace;font-size:10px}.hg-unit-chip{color:var(--sf-ink-3);border:1px solid var(--sf-line);padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:9px}.hg-head-right{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:flex-end;gap:8px;display:flex}.hg-range{flex-wrap:wrap;align-items:flex-end;gap:6px;display:flex}.hg-range-field{flex-direction:column;gap:3px;display:flex}.hg-range-lbl{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.05em;font-size:9px;font-weight:600}.hg-range-btns{align-items:flex-end;gap:4px;display:flex}.hg-apply-btn{border:1px solid var(--sf-line);color:var(--sf-ink-2);cursor:pointer;letter-spacing:.04em;background:0 0;height:26px;padding:3px 10px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600}.hg-apply-btn:hover{color:var(--sf-ink);border-color:var(--sf-ink-2)}.hg-legend{flex-wrap:wrap;align-items:center;gap:6px;padding:10px 16px 0;display:flex}.hg-chip{border:1px solid var(--sf-line);color:var(--sf-ink);background:var(--sf-bg-1,#8080800a);border-radius:999px;align-items:center;gap:6px;padding:3px 6px 3px 8px;font-size:11px;display:inline-flex}.hg-chip-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.hg-chip-lbl{font-weight:600}.hg-chip-unit{color:var(--sf-ink-3);font-size:10px}.hg-chip-x{width:16px;height:16px;color:var(--sf-ink-3);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.hg-chip-x:hover{color:var(--sf-ink);background:#80808026}.hg-add-wrap{position:relative}.hg-add-btn{border:1px dashed var(--sf-line);color:var(--sf-ink-3);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.hg-add-btn:hover{color:var(--accent-blue);border-color:var(--accent-blue)}.hg-picker{z-index:50;background:var(--sf-panel);border:1px solid var(--sf-line);border-radius:10px;flex-direction:column;width:260px;max-height:320px;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 18px 40px #00000040}.hg-picker-search{border:1px solid var(--sf-line);background:var(--sf-bg);color:var(--sf-ink);border-radius:8px;outline:none;margin:8px;padding:6px 10px;font-size:12px}.hg-picker-list{overscroll-behavior:contain;padding:0 6px 8px;overflow-y:auto}.hg-picker-group-title{letter-spacing:.1em;text-transform:uppercase;color:var(--sf-ink-3);padding:8px 8px 4px;font-size:9.5px;font-weight:700}.hg-picker-item{width:100%;color:var(--sf-ink);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:7px 8px;font-size:12px;display:flex}.hg-picker-item:hover{background:#8080801a}.hg-picker-unit{color:var(--sf-ink-3);font-size:10px}.hg-chart{flex:1;min-height:0;padding:12px 8px 8px 4px;position:relative}.hg-loading{height:100%;color:var(--sf-ink-3);justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.hg-fullscreen-wrap{flex-direction:column;flex:1;height:100%;min-height:0;display:flex;overflow:hidden}.hg-legend--compact{flex-shrink:0;padding:0 2px 6px}.hg-chart--fullscreen{flex:1;min-height:0;padding:0}.muted{color:var(--sf-ink-3);font-size:.86rem}.ws-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:1px 5px;font-size:9px;font-weight:800}.ws-badge.open{color:#22c55e;background:#22c55e26;border:1px solid #22c55e40;animation:2s infinite ws-pulse}.ws-badge.connecting{color:#f59e0b;background:#f59e0b26;border:1px solid #f59e0b40}.ws-badge.closed{color:#ef4444;background:#ef444426;border:1px solid #ef444440}@keyframes ws-pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@media (width<=1440px){.dashboard-main{grid-template-columns:1fr;gap:0}}@media (width<=1280px){.dashboard-main{grid-template-columns:1fr;gap:0}}@media (width<=900px),(height<=760px){.powerflow-shell{min-height:320px;max-height:440px}}@media (width<=860px){body{overflow:auto}.dashboard{height:auto;min-height:100vh}.dashboard-main{grid-template-columns:1fr;padding:1rem 0}.device-list{max-height:260px}.hg-range{flex-direction:column;align-items:flex-start}}.mobile-topbar{display:none}.user-profile-menu{z-index:260;color:var(--upm-trigger-color,var(--text-primary,var(--sf-ink,#111827)));font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;position:fixed;top:14px;right:16px}.upm-trigger{border:1px solid var(--upm-trigger-border,#94a3b857);background:var(--upm-trigger-bg,#ffffffd6);min-width:36px;height:36px;color:var(--upm-trigger-color,#111827);-webkit-backdrop-filter:blur(16px)saturate(150%);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;max-width:min(220px,100vw - 32px);padding:0 10px 0 6px;display:inline-flex;box-shadow:0 14px 34px #0f172a29}[data-theme=dark] .upm-trigger{background:var(--upm-trigger-bg,#0f172ac7);color:var(--upm-trigger-color,#f8fafc);border-color:var(--upm-trigger-border,#e2e8f02e)}.user-profile-menu.compact .upm-trigger{width:34px;height:34px;box-shadow:none;border-radius:8px;padding:0}.user-profile-menu.compact .upm-caret{display:none}.upm-avatar{color:#fff;background:linear-gradient(135deg,#10b981,#3b82f6);border-radius:999px;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:inline-flex}.upm-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:700;overflow:hidden}.upm-caret{opacity:.72;transition:transform .16s}.upm-popover{color:#111827;background:#fff;border:1px solid #94a3b842;border-radius:8px;width:240px;padding:8px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 22px 50px #0f172a38}[data-theme=dark] .upm-popover{color:#f8fafc;background:#111827;border-color:#e2e8f029}.user-profile-menu.compact .upm-popover{top:calc(100% + 10px);right:0}.upm-user{border-bottom:1px solid #94a3b82e;align-items:center;gap:10px;margin-bottom:8px;padding:8px;display:flex}.upm-user-icon{color:#059669;background:#10b9811f;border-radius:999px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.upm-user-text strong,.upm-user-text small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upm-user-text strong{font-size:13px}[data-theme=dark] .upm-user-text small{color:#94a3b8}.upm-label{color:#64748b;text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;margin:0 4px 6px;font-size:11px;font-weight:800;display:flex}[data-theme=dark] .upm-label{color:#94a3b8}.upm-lang-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.upm-lang-grid button,.upm-action{min-height:34px;color:inherit;cursor:pointer;font:inherit;background:0 0;border:1px solid #94a3b83d;border-radius:8px}.upm-lang-grid button{justify-content:center;align-items:center;gap:5px;font-size:12px;font-weight:800;display:inline-flex}.upm-lang-grid button.active{color:#047857;background:#10b9811f;border-color:#10b98180}.upm-action{align-items:center;gap:8px;width:100%;padding:0 10px;font-size:13px;font-weight:700;display:flex}.upm-action:hover,.upm-lang-grid button:hover{background:#94a3b81f}[data-theme=dark] .upm-action.danger{color:#f87171}@media (width<=1334px){body{height:auto;overflow:hidden auto}.dashboard{gap:0;height:auto;min-height:100dvh;padding:0}.mobile-topbar{background:var(--card-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--card-border);z-index:100;flex-direction:column;gap:6px;padding:10px 12px 8px;display:flex;position:sticky;top:0}.mth-row1{justify-content:space-between;align-items:center;gap:8px;display:flex}.mth-device-sel{flex:1;align-items:center;gap:7px;min-width:0;display:flex}.mth-device-sel .device-selector-minimal{text-overflow:ellipsis;flex:1;width:100%;min-width:0;max-width:100%}.mth-actions{flex-shrink:0;align-items:center;gap:5px;display:flex}.user-profile-menu.compact .upm-popover{width:auto;max-width:none;position:fixed;top:56px;left:12px;right:12px}.mth-row2{justify-content:space-between;align-items:center;gap:8px;display:flex;overflow:hidden}.mth-sns{flex:1;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.mth-lab{text-transform:uppercase;letter-spacing:.05em;color:var(--sf-ink-3);flex-shrink:0;font-size:9px;font-weight:700}.mth-sn{color:var(--sf-ink);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,monospace;font-size:11px;font-weight:600;overflow:hidden}.mth-sep{color:var(--sf-line);flex-shrink:0;margin:0 3px;font-size:16px;font-weight:300}.mth-lic{cursor:pointer;flex-shrink:0;align-items:center;gap:5px;display:flex}.mth-lic-chip{white-space:nowrap;color:var(--sf-ink-3);border:1px solid;border-radius:10px;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.mth-lic-chip.active{color:#10b981;background:#10b98111}.mth-lic-chip.warn{color:#f59e0b;background:#f59e0b11}.mth-lic-chip.expired{color:#ef4444;background:#ef444411}.mth-lic-chip.lifetime{color:#a78bfa;background:#a78bfa11}.mth-lic-btn{color:#ef4444;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ef444488;border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600}.mth-lic-btn.urgent{color:#fff;background:#ef4444;border-color:#ef4444}.mobile-logout-btn{border:1px solid var(--sf-line);width:34px;height:34px;color:var(--sf-ink-3);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mobile-logout-btn:active{background:var(--sf-line)}.theme-button-sm{border:1px solid var(--card-border);width:32px;height:32px;color:var(--text-primary);cursor:pointer;background:#ffffff0f;border-radius:8px;justify-content:center;align-items:center;display:flex}.dashboard-main{flex-direction:column;gap:0;padding:0;display:flex;overflow:visible}.device-list{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;order:-1;padding:.5rem 1rem}.device-list .section-title{margin-bottom:.4rem}.device-list-scroll{-webkit-overflow-scrolling:touch;gap:.5rem;margin-top:0;padding-bottom:.25rem;display:flex;overflow:auto hidden}.device-button{flex:0 0 180px;min-height:54px;padding:.5rem .75rem}.device-button strong{font-size:.85rem}.device-button small{font-size:.65rem}.workspace{padding:0;overflow:visible}.powerflow-shell{min-height:unset;max-height:unset;aspect-ratio:unset;height:auto;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;margin:0;padding:0}.powerflow-shell svg{width:100%;height:auto}.flow-overlay-top-left,.flow-overlay-top-right{display:none}.mobile-summary-card{padding:.75rem 1rem}.summary-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.summary-tile{background:var(--card-bg);border:1px solid var(--card-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);cursor:pointer;border-radius:14px;padding:.75rem;transition:transform .15s}.summary-tile:active{transform:scale(.97)}.tile-label{text-transform:uppercase;letter-spacing:.06em;margin-bottom:.35rem;font-size:.65rem;font-weight:700;display:block}.tile-value{font-size:1.25rem;font-weight:700;line-height:1.2;display:block}.tile-value small{opacity:.7;font-size:.75rem;font-weight:500}.tile-sub{color:var(--text-secondary);margin-top:.2rem;font-size:.65rem;display:block}.summary-tile.solar .tile-label,.summary-tile.solar .tile-value{color:#22c55e}.summary-tile.home .tile-label,.summary-tile.home .tile-value{color:#3b82f6}.summary-tile.battery .tile-label,.summary-tile.battery .tile-value{color:#a855f7}.summary-tile.grid .tile-label,.summary-tile.grid .tile-value{color:#ff6b6b}.history-modal-panel{width:100%;padding:0;position:relative}.hg-head{flex-direction:column;gap:10px;padding-right:46px}.hg-head-right,.hg-range{flex-wrap:wrap}.hg-panel .sf-expand-btn{z-index:5;background:var(--sf-panel);width:34px;height:34px;position:absolute;top:10px;right:10px}.hg-panel .sf-chart-expand-btn{right:48px}}.admin-root,.admin-login{color:#14181a;background:#f5f3ed;font-family:Inter,Outfit,system-ui,sans-serif;position:fixed;inset:0;overflow:auto}.admin-root{grid-template-columns:248px minmax(0,1fr);display:grid}.admin-side{background:#fff;border-right:1px solid #e2ddd2;padding:24px}.admin-brand{letter-spacing:-.01em;align-items:center;gap:10px;font-weight:700;display:flex}.admin-side nav{gap:8px;margin-top:28px;display:grid}.admin-side button,.admin-user button,.admin-table button{color:#14181a;cursor:pointer;background:#fff;border:1px solid #e2ddd2;border-radius:4px;align-items:center;gap:8px;padding:10px 12px;display:inline-flex}.admin-table button.danger{color:#ef4444;border-color:#ef444459}.admin-table button:disabled{cursor:not-allowed;opacity:.55}.admin-side button{justify-content:flex-start;width:100%}.admin-side button.active{color:#f5f3ed;background:#14181a;border-color:#14181a}.admin-main{padding:28px;overflow:auto}.admin-topbar{border-bottom:1px solid #e2ddd2;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;padding-bottom:22px;display:flex}.admin-topbar h1{color:#14181a;margin:6px 0 0;font-size:28px}.admin-crumb{color:#8a9197;text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:8px;font-size:12px;display:flex}.admin-crumb span{background:#10b981;border-radius:50%;width:6px;height:6px}.admin-user{align-items:center;gap:12px;display:flex}.admin-grid{grid-template-columns:minmax(0,1.4fr) minmax(340px,.8fr);align-items:start;gap:20px;display:grid}.admin-page-list{gap:20px;display:grid}.admin-panel{background:#fff;border:1px solid #e2ddd2;border-radius:4px;padding:20px}.admin-panel-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.admin-panel h2{text-transform:uppercase;letter-spacing:.06em;color:#4a5358;margin:0;font-size:13px}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{vertical-align:middle;color:#14181a;border-top:1px solid #ecebe4;padding:12px 8px}.admin-table th{color:#6b7378;letter-spacing:.06em;text-align:left;text-transform:uppercase;font-size:11px;font-weight:800}.admin-table strong,.admin-table small{display:block}.admin-table small,.admin-muted{color:#8a9197}.admin-form{gap:10px;display:grid}.admin-form label{color:#4a5358;text-transform:uppercase;letter-spacing:.05em;gap:5px;font-size:12px;display:grid}.admin-form input,.admin-form select,.admin-form textarea,.admin-login-panel input{color:#14181a;background:#fff;border:1px solid #d7d2c8;border-radius:4px;width:100%;min-height:38px;padding:8px 10px}.admin-form textarea{min-height:76px}.admin-primary{color:#f5f3ed;cursor:pointer;background:#14181a;border:0;border-radius:4px;padding:11px 14px;font-weight:700}.admin-secondary{color:#14181a;cursor:pointer;background:#fff;border:1px solid #d7d2c8;border-radius:4px;padding:11px 14px;font-weight:700}.admin-demo-btn{color:#6b7280;cursor:pointer;background:0 0;border:1px dashed #b0a898;border-radius:4px;padding:11px 14px;font-size:13px;font-weight:600;transition:border-color .15s,color .15s}.admin-demo-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.admin-or-divider{color:#9aa0a6;text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:10px;margin:2px 0;font-size:12px;display:flex}.admin-or-divider:before,.admin-or-divider:after{content:"";background:#e2ddd3;flex:1;height:1px}.admin-primary.small{padding:8px 12px;font-size:12px}.admin-modal-backdrop{z-index:80;background:#14181a7a;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.admin-modal{background:#fff;border:1px solid #e2ddd2;border-radius:8px;width:min(620px,100%);max-height:min(760px,100vh - 48px);padding:20px;overflow:auto;box-shadow:0 24px 90px #00000047}.admin-modal--wide{width:min(1040px,100vw - 48px)}.admin-modal--dongle{width:80vw;max-height:80vh}.admin-modal-head{justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.admin-modal-head h2{color:#14181a;margin:0;font-size:18px}.admin-modal-head button{color:#14181a;cursor:pointer;background:#fff;border:1px solid #e2ddd2;border-radius:4px;padding:8px 10px}.admin-row-actions{flex-wrap:wrap;gap:8px;display:flex}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.detail-grid section{border:1px solid #ecebe4;border-radius:6px;padding:14px}.detail-grid h3{color:#14181a;text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px;font-size:13px}.detail-grid dl{grid-template-columns:110px minmax(0,1fr);gap:9px 12px;margin:0;display:grid}.detail-grid dt{color:#8a9197;font-size:12px}.detail-grid dd{color:#14181a;word-break:break-word;margin:0}.detail-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.detail-list strong,.detail-list small{display:block}.detail-list small{color:#8a9197}.admin-badge{color:#4a5358;text-transform:uppercase;border:1px solid #e2ddd2;border-radius:999px;padding:3px 8px;font-size:11px;display:inline-flex}.admin-badge.active,.admin-badge.online{color:#10b981;border-color:#10b98159}.admin-badge.inactive,.admin-badge.offline{color:#ef4444;border-color:#ef444459}.admin-badge.banned{color:#ef4444;background:#ef444414;border-color:#ef444473}.admin-badge.maintenance{color:#f59e0b;border-color:#f59e0b59}.license-badge{border:1.5px solid;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.license-badge.active{color:#10b981;background:#10b98114;border-color:#10b98166}.license-badge.warn{color:#f59e0b;background:#f59e0b14;border-color:#f59e0b66}.license-badge.expired{color:#ef4444;background:#ef444414;border-color:#ef444466}.license-badge.lifetime{color:#a78bfa;background:#a78bfa14;border-color:#a78bfa66}.license-widget{-webkit-backdrop-filter:blur(14px);white-space:nowrap;border:1.5px solid;border-radius:12px;align-items:center;gap:10px;padding:7px 12px;font-size:12px;display:inline-flex}.license-widget.active{color:var(--text-primary);background:#10b9811a;border-color:#10b9814d}.license-widget.warn{color:var(--text-primary);background:#f59e0b1f;border-color:#f59e0b66}.license-widget.expired{color:var(--text-primary);background:#ef44441f;border-color:#ef444466}.license-widget.lifetime{color:var(--text-primary);background:#a78bfa1a;border-color:#a78bfa59}.license-widget-dates{flex-direction:column;line-height:1.4;display:flex}.license-widget-dates .lic-range{color:var(--text-secondary);font-size:11px}.license-widget-dates .lic-status{font-size:12px;font-weight:700}.license-widget-dates .lic-status.ok{color:#10b981}.license-widget-dates .lic-status.warn{color:#f59e0b}.license-widget-dates .lic-status.expired{color:#ef4444}.license-widget-dates .lic-status.lifetime{color:#a78bfa}.license-widget-renew{border:1.5px solid var(--accent-blue);color:var(--accent-blue);cursor:pointer;background:#3b82f61f;border-radius:7px;padding:4px 12px;font-size:11px;font-weight:700;transition:background .15s}.license-widget-renew:hover{background:#3b82f63d}.sf-dev-lic{border:1px solid var(--sf-line);background:0 0;border-radius:8px;align-items:stretch;display:flex;overflow:hidden}.sf-dev-lic .dl-sn{flex-direction:column;justify-content:center;gap:4px;padding:7px 12px;display:flex}.sf-dev-lic .dl-row{align-items:center;gap:7px;line-height:1.3;display:flex}.sf-dev-lic .dl-lab{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.04em;min-width:46px;font-size:10px}.sf-dev-lic .dl-val{color:var(--sf-ink);font-family:JetBrains Mono,Fira Mono,ui-monospace,monospace;font-size:12px;font-weight:600}.sf-dev-lic .dl-lic{border-left:1px solid var(--sf-line);cursor:pointer;flex-direction:column;justify-content:center;gap:3px;min-width:118px;padding:7px 12px;transition:background .15s;display:flex}.sf-dev-lic .dl-lic:hover{background:var(--sf-line-2)}.sf-dev-lic .dl-lic-status{color:var(--sf-ink-3);font-size:12px;font-weight:700}.sf-dev-lic .dl-lic-status.active{color:#10b981}.sf-dev-lic .dl-lic-status.warn{color:#f59e0b}.sf-dev-lic .dl-lic-status.expired{color:#ef4444}.sf-dev-lic .dl-lic-status.lifetime{color:#a78bfa}.sf-dev-lic .dl-lic-dates{color:var(--sf-ink-3);font-family:ui-monospace,monospace;font-size:11px}.sf-dev-lic .dl-lic-btn{border:1px solid var(--sf-line);color:var(--sf-ink-2);cursor:pointer;background:0 0;border-radius:4px;align-self:flex-start;margin-top:2px;padding:2px 8px;font-size:11px;line-height:1.5;transition:background .15s,color .15s,border-color .15s}.sf-dev-lic .dl-lic-btn:hover{color:#fff;background:#3b82f6;border-color:#3b82f6}.sf-dev-lic .dl-lic-btn.urgent{color:#fff;background:#ef4444;border-color:#ef4444}.mob-dev-lic{border:1px solid var(--sf-line);border-radius:7px;align-items:stretch;margin-top:6px;display:flex;overflow:hidden}.mob-sn-col{flex-direction:column;justify-content:center;gap:3px;padding:5px 10px;display:flex}.mob-sn-row{align-items:center;gap:6px;line-height:1.3;display:flex}.mob-sn-row .mob-lab{text-transform:uppercase;letter-spacing:.04em;color:var(--sf-ink-3);min-width:40px;font-size:10px}.mob-sn-row .mob-val{color:var(--sf-ink);text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-family:ui-monospace,monospace;font-size:12px;font-weight:600;overflow:hidden}.mob-lic-col{border-left:1px solid var(--sf-line);cursor:pointer;flex-direction:column;justify-content:center;gap:3px;min-width:95px;padding:5px 10px;display:flex}.mob-lic-col:active{background:var(--sf-line-2)}.mob-lic-state{color:var(--sf-ink-3);font-size:12px;font-weight:700}.mob-lic-state.active{color:#10b981}.mob-lic-state.warn{color:#f59e0b}.mob-lic-state.expired{color:#ef4444}.mob-lic-state.lifetime{color:#a78bfa}.mob-lic-dates{color:var(--sf-ink-3);font-family:ui-monospace,monospace;font-size:11px}.mob-lic-btn{border:1px solid var(--sf-line);color:var(--sf-ink-2);cursor:pointer;background:0 0;border-radius:4px;align-self:flex-start;margin-top:2px;padding:2px 8px;font-size:11px;line-height:1.5}.mob-lic-btn.urgent{color:#fff;background:#ef4444;border-color:#ef4444}.badge-latest{text-transform:uppercase;letter-spacing:.4px;color:#10b981;vertical-align:middle;background:#10b9811f;border:1px solid #10b98159;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.select-box{position:relative}.sb-trigger{cursor:pointer;box-sizing:border-box;background:#fff;border:1.5px solid #d1d5db;border-radius:8px;align-items:center;min-height:38px;padding:5px 32px 5px 10px;transition:border-color .15s;display:flex;position:relative}.sb-trigger:hover{border-color:#0071e3}.sb-arrow{color:#9ca3af;pointer-events:none;font-size:9px;position:absolute;right:10px}.sb-placeholder{color:#9ca3af;font-size:13px}.sb-tags{flex-wrap:wrap;flex:1;gap:4px;display:flex}.sb-tag{color:#fff;background:#0071e3;border-radius:12px;align-items:center;gap:3px;padding:2px 6px 2px 9px;font-size:11px;font-weight:500;display:inline-flex}.sb-tag button{color:#ffffffbf;cursor:pointer;background:0 0;border:none;padding:0;font-size:15px;line-height:1}.sb-tag button:hover{color:#fff}.sb-dropdown{z-index:200;background:#fff;border:1.5px solid #d1d5db;border-radius:10px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 8px 24px #0000001f}.sb-search{box-sizing:border-box;border:none;border-bottom:1px solid #e5e7eb;outline:none;width:100%;padding:9px 12px;font-size:13px;display:block}.sb-list{max-height:220px;overflow-y:auto}.sb-option{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;padding:9px 12px;font-size:13px;transition:background .1s;display:flex}.sb-option:hover,.sb-option.on{background:#f0f7ff}.sb-check{color:#0000;border:1.5px solid #d1d5db;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;font-weight:700;display:flex}.sb-option.on .sb-check{color:#fff;background:#0071e3;border-color:#0071e3}.sb-empty{color:#9ca3af;text-align:center;padding:14px 12px;font-size:13px}.tag-select{flex-wrap:wrap;gap:6px;padding:2px 0;display:flex}.tag-item{color:#4a5568;cursor:pointer;white-space:nowrap;background:#fff;border:1.5px solid #d1d5db;border-radius:20px;padding:5px 14px;font-size:12px;font-weight:500;line-height:1.4;transition:all .15s}.tag-item:hover{color:#0071e3;background:#f0f7ff;border-color:#0071e3}.tag-item.selected{color:#fff;background:#0071e3;border-color:#0071e3}.permission-matrix{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;display:grid}.perm-group{background:#f8f9fc;border:1px solid #e5e7eb;border-radius:10px;padding:12px 14px}.perm-group-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.perm-group-head h3{text-transform:uppercase;letter-spacing:.06em;color:#6b7280;margin:0;font-size:11px;font-weight:700}.perm-all-btn{color:#0071e3;cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;font-weight:500}.perm-all-btn:hover{text-decoration:underline}.admin-stack{gap:22px;display:grid}.admin-error{color:#ef4444;background:#ef444414;border:1px solid #ef444440;border-radius:4px;padding:10px 12px}.admin-login{background-color:#0000;background-image:radial-gradient(at 73% 22%,#facc1514 0%,#0000 38%),radial-gradient(at 60% 60%,#22c55e12 0%,#0000 52%),linear-gradient(158deg,#04160d 0%,#071e11 38%,#051610 68%,#030c08 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:cover;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;grid-template-columns:minmax(0,1.05fr) minmax(380px,.7fr);align-items:center;gap:32px;padding:clamp(24px,5vw,72px);display:grid}.admin-login-hero{color:#f8fafc;max-width:720px}.login-solar-svg{width:100%;max-width:580px;margin-bottom:8px;display:block}.admin-login-hero p{color:#6ee7b7;letter-spacing:.13em;text-transform:uppercase;margin:4px 0 10px;font-size:13px;font-weight:800}.admin-login-hero h1{color:#fff;max-width:680px;margin:0;font-size:clamp(44px,7vw,84px);line-height:.94}.login-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:620px;margin-top:28px;display:grid}.login-metrics span{background:#4ade8012;border:1px solid #4ade802e;border-radius:8px;gap:4px;padding:16px;display:grid}.login-metrics strong{color:#facc15;font-size:18px}.login-metrics small{color:#a7f3d0}.admin-login-panel{background:#fffffff5;border:1px solid #ffffff94;border-radius:8px;justify-self:end;gap:14px;width:min(420px,100%);padding:30px;display:grid;box-shadow:0 24px 90px #00000057}.admin-login-panel h2{color:#14181a;margin:10px 0 0;font-size:30px}.admin-login-panel .admin-muted{margin:0 0 8px}.admin-login-panel label:not(.remember-row){color:#4a5358;text-transform:uppercase;letter-spacing:.05em;gap:6px;font-size:12px;font-weight:800;display:grid}.remember-row{color:#4a5358;align-items:center;gap:9px;font-size:13px;display:flex}.remember-row input{width:16px;min-height:16px}.login-panel-top{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.login-panel-top .admin-brand{align-items:center;gap:8px;display:flex}.lang-switch{border:1px solid #d1cdc5;border-radius:5px;flex-shrink:0;align-items:center;gap:0;display:flex;overflow:hidden}.lang-switch button{color:#8a9197;cursor:pointer;letter-spacing:.04em;background:0 0;border:none;padding:4px 11px;font-size:11px;font-weight:700;transition:background .15s,color .15s}.lang-switch button:hover{color:#4a5358;background:#0000000d}.lang-switch button.active{color:#fff;background:#14181a}.admin-user .lang-switch{border-color:#ffffff2e}.admin-user .lang-switch button{color:#94a3b8}.admin-user .lang-switch button:hover{color:#f1f5f9;background:#ffffff14}.admin-user .lang-switch button.active{color:#f1f5f9;background:#ffffff2e}@media (width<=900px){.admin-root{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.admin-main{min-width:0}.admin-page-list,.admin-panel{min-width:0;max-width:100%}.admin-side{z-index:20;padding:14px;position:sticky;top:0}.admin-side nav{margin-top:14px;display:flex;overflow-x:auto}.admin-grid{grid-template-columns:1fr}.admin-topbar{flex-direction:column;align-items:flex-start}.admin-login{grid-template-columns:1fr}.admin-login-hero{display:none}.admin-login-panel{justify-self:center}.detail-grid{grid-template-columns:1fr}.admin-main{padding:14px;overflow-x:hidden}.admin-panel{padding:14px}.admin-table{border:none}.admin-table thead{display:none}.admin-table,.admin-table tbody{width:100%;display:block}.admin-table tr{background:#fff;border:1px solid #e2ddd2;border-radius:10px;margin-bottom:12px;padding:4px 14px;display:block}.admin-table td{text-align:left;overflow-wrap:anywhere;border:none;border-top:1px solid #f1efe8;width:auto;padding:8px 0;display:block}.admin-table tr td:first-child{border-top:none}.admin-table td:before{letter-spacing:.06em;text-transform:uppercase;color:#9aa0a5;margin-bottom:3px;font-size:10px;font-weight:800;display:block}.admin-table td:first-child strong{font-size:14px}.admin-table td .admin-row-actions{width:100%}.admin-table td[style*=flex],.admin-table td>div[style*=flex]{flex-wrap:wrap}.admin-table td[colspan]{text-align:center;color:#8a9197}.admin-table td[colspan]:before{content:"";display:none}.tbl-users td:first-of-type:before{content:"Tài khoản"}.tbl-users td:nth-of-type(2):before{content:"Vai trò"}.tbl-users td:nth-of-type(3):before{content:"Thiết bị"}.tbl-users td:nth-of-type(4):before{content:"Trạng thái"}.tbl-roles td:first-of-type:before{content:"Vai trò"}.tbl-roles td:nth-of-type(2):before{content:"Loại"}.tbl-roles td:nth-of-type(3):before{content:"Số quyền"}.tbl-dongles td:first-of-type:before{content:"Dongle"}.tbl-dongles td:nth-of-type(2):before{content:"Device SN"}.tbl-dongles td:nth-of-type(3):before{content:"Người dùng"}.tbl-dongles td:nth-of-type(4):before{content:"Chip"}.tbl-dongles td:nth-of-type(5):before{content:"Loại"}.tbl-dongles td:nth-of-type(6):before{content:"Profile"}.tbl-dongles td:nth-of-type(7):before{content:"Trạng thái"}.tbl-dongles td:nth-of-type(8):before{content:"Kết nối"}.tbl-dongles td:nth-of-type(9):before{content:"Firmware"}.tbl-dongles td:nth-of-type(10):before{content:"Lần cuối"}.tbl-firmware td:first-of-type:before{content:"Phiên bản"}.tbl-firmware td:nth-of-type(2):before{content:"Chip"}.tbl-firmware td:nth-of-type(3):before{content:"Profile"}.tbl-firmware td:nth-of-type(4):before{content:"Mô tả"}.tbl-firmware td:nth-of-type(5):before{content:"Ngày"}.tbl-firmware td:nth-of-type(6):before{content:"File"}.tbl-products td:first-of-type:before{content:"Code"}.tbl-products td:nth-of-type(2):before{content:"Tên"}.tbl-products td:nth-of-type(3):before{content:"Loại"}.tbl-products td:nth-of-type(4):before{content:"Tháng trả"}.tbl-products td:nth-of-type(5):before{content:"Tháng tặng"}.tbl-products td:nth-of-type(6):before{content:"Giá"}.tbl-products td:nth-of-type(7):before{content:"Hiệu lực"}.tbl-products td:nth-of-type(8):before{content:"Trạng thái"}.tbl-orders td:first-of-type:before{content:"Mã đơn"}.tbl-orders td:nth-of-type(2):before{content:"Sản phẩm"}.tbl-orders td:nth-of-type(3):before{content:"SL"}.tbl-orders td:nth-of-type(4):before{content:"Tổng"}.tbl-orders td:nth-of-type(5):before{content:"Trạng thái"}.tbl-orders td:nth-of-type(6):before{content:"Ngày tạo"}.tbl-opay td:first-of-type:before{content:"PayOS"}.tbl-opay td:nth-of-type(2):before{content:"Số tiền"}.tbl-opay td:nth-of-type(3):before{content:"Trạng thái"}.tbl-opay td:nth-of-type(4):before{content:"Thanh toán lúc"}.tbl-logs td:first-of-type:before{content:"Thời gian"}.tbl-logs td:nth-of-type(2):before{content:"Event"}.tbl-logs td:nth-of-type(3):before{content:"Chiều"}.tbl-logs td:nth-of-type(4):before{content:"Order code"}.tbl-logs td:nth-of-type(5):before{content:"HTTP"}.tbl-logs td:nth-of-type(6):before{content:"Trạng thái"}.tbl-sysconfig td:first-of-type:before{content:"Key"}.tbl-sysconfig td:nth-of-type(2):before{content:"Label"}.tbl-sysconfig td:nth-of-type(3):before{content:"Value"}.tbl-sysconfig td:nth-of-type(4):before{content:"Mô tả"}.tbl-sysconfig td:nth-of-type(5):before{content:"Cập nhật"}.tbl-license td:first-of-type:before{content:"Trạng thái"}.tbl-license td:nth-of-type(2):before{content:"Hết hạn"}.tbl-license td:nth-of-type(3):before{content:"Tháng mua"}.tbl-license td:nth-of-type(4):before{content:"Tặng"}.tbl-ohist td:first-of-type:before{content:"Sản phẩm"}.tbl-ohist td:nth-of-type(2):before{content:"SL"}.tbl-ohist td:nth-of-type(3):before{content:"Tổng"}.tbl-ohist td:nth-of-type(4):before{content:"Trạng thái"}.tbl-ohist td:nth-of-type(5):before{content:"Ngày"}}.dashboard{--sf-bg:#f5f3ed;--sf-panel:#fff;--sf-ink:#14181a;--sf-ink-2:#4a5358;--sf-ink-3:#8a9197;--sf-line:#e2ddd2;--sf-line-2:#ecebe4;--sf-solar:#38a34b;--sf-battery:#c99318;--sf-load:#d44728;--sf-grid:#7c3aed;--sf-idle:#b5b5a8;background:var(--sf-bg);color:var(--sf-ink);gap:24px;height:auto;min-height:100vh;padding:28px 32px 48px;font-family:Inter,Outfit,system-ui,sans-serif}[data-theme=dark] .dashboard{--sf-bg:#0e1112;--sf-panel:#181c1e;--sf-ink:#f0eee8;--sf-ink-2:#a8aeb0;--sf-ink-3:#8a9197;--sf-line:#2a2f31;--sf-line-2:#20242666;--sf-idle:#3a3f41;--sf-solar:#48b85c;--sf-battery:#d4a020;--sf-load:#e05032;--sf-grid:#a78bfa}[data-theme=dark] .dashboard .sf-inverter{color:var(--sf-ink);background:#20282b;border-color:#384044}[data-theme=dark] .dashboard .sf-inverter .sf-label,[data-theme=dark] .dashboard .iv-label,[data-theme=dark] .dashboard .iv-power small{color:var(--sf-ink-3)}[data-theme=dark] .dashboard .iv-bar{background:#ffffff1a}[data-theme=dark] .dashboard .iv-meta{color:var(--sf-ink-2);border-top-color:#ffffff1a}[data-theme=dark] .dashboard .vnode{background:var(--sf-panel)}[data-theme=dark] .dashboard .vnode.inv{background:#20282b;border-color:#384044}body:has(.dashboard){background:var(--sf-bg);color:var(--sf-ink);overflow:auto}.dashboard-main{grid-template-columns:1fr;gap:0;overflow:visible}.device-list{background:var(--sf-panel);border:1px solid var(--sf-line);-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:4px;padding:18px}.section-title{color:var(--sf-ink-3);letter-spacing:.09em;font-size:11px}.device-button{border:1px solid var(--sf-line);color:var(--sf-ink);background:#fff;border-radius:4px}.device-button.active{border-color:var(--sf-solar);background:#f7fbf5}.device-button small,.muted{color:var(--sf-ink-3)}.device-power{color:var(--sf-solar);font-family:JetBrains Mono,ui-monospace,monospace}.workspace{overflow:visible}.powerflow-shell{aspect-ratio:auto;max-width:100%;min-height:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;display:block;overflow:visible}.flow-overlay-top-left,.flow-overlay-top-right{display:none}.theme-button,.theme-button-sm{background:var(--sf-panel);color:var(--sf-ink);border:1px solid var(--sf-line);border-radius:4px}.sf-layout{flex-direction:column;display:flex}.sf-topbar{border-bottom:1px solid var(--sf-line);flex-flow:row;align-items:center;gap:0;margin-bottom:20px;padding:10px 0;display:flex;position:relative}.sf-tb-brand{flex-shrink:0;align-items:center;gap:8px;display:flex}.sf-tb-title{letter-spacing:-.02em;color:var(--sf-ink);white-space:nowrap;font-size:15px;font-weight:700}.sf-tb-age{color:var(--sf-ink-3);font-size:11px;font-weight:400}.sf-tb-div{background:var(--sf-line);flex-shrink:0;width:1px;height:22px;margin:0 14px}.sf-tb-spacer{flex:1;min-width:12px}.sf-tb-select{border:1px solid var(--sf-line);color:var(--sf-ink-2);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;max-width:220px;padding:4px 8px;font-family:inherit;font-size:12px}.sf-tb-sn{color:var(--sf-ink-3);white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;margin-left:10px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.sf-tb-dot{opacity:.4}.sf-tb-lic{cursor:pointer;flex-direction:column;flex-shrink:0;align-items:flex-start;gap:1px;display:flex}.sf-tb-lic:hover{opacity:.75}.sf-tb-lic-k{text-transform:uppercase;letter-spacing:.07em;color:var(--sf-ink-3);font-size:9px;font-weight:600}.sf-tb-lic-v{white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.sf-tb-lic-v.active{color:#10b981}.sf-tb-lic-v.warn{color:#f59e0b}.sf-tb-lic-v.expired{color:#ef4444}.sf-tb-lic-v.lifetime{color:#a78bfa}.sf-tb-weather{flex-shrink:0;align-items:center;gap:8px;display:flex}.sf-tb-wtemp{color:var(--sf-ink);white-space:nowrap;font-size:13px;font-weight:600}.sf-tb-wmin{color:var(--sf-ink-3);font-size:11px;font-weight:400}.sf-tb-wcond{color:var(--sf-ink-3);text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:11px;overflow:hidden}.sf-tb-wdiv{background:var(--sf-line);flex-shrink:0;width:1px;height:16px}.sf-tb-wstat{flex-direction:column;flex-shrink:0;align-items:center;gap:1px;display:flex}.sf-tb-wstat .k{text-transform:uppercase;letter-spacing:.07em;color:var(--sf-ink-3);font-size:9px;font-weight:600}.sf-tb-wstat .v{white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.sf-topbar-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.sf-topbar-actions .upm-edge{margin-left:auto}.sf-btn{background:var(--sf-panel);border:1px solid var(--sf-line);color:var(--sf-ink);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:7px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.sf-btn:hover{background:var(--sf-line-2)}.sf-btn-danger{color:var(--sf-load);border-color:var(--sf-load)}.sf-btn-danger:hover{background:#d4472814}.sf-btn-primary{color:var(--sf-solar);border-color:var(--sf-solar)}.sf-btn-primary:hover{background:#38a34b14}.sf-theme-btn{min-width:80px}.sf-weather-mini{background:var(--sf-panel);border:1px solid var(--sf-line);flex-shrink:0;align-items:center;gap:14px;margin-left:auto;padding:8px 16px;display:flex}.sf-wm-glyph{flex-shrink:0;width:32px;height:32px}.sf-wm-temp{flex-direction:column;gap:2px;display:flex}.sf-wm-t{letter-spacing:-.02em;font-family:JetBrains Mono,monospace;font-size:20px;font-weight:600;line-height:1}.sf-wm-deg{color:var(--sf-ink-3);margin-left:1px;font-size:11px;font-weight:500}.sf-wm-min{color:var(--sf-ink-3);margin-left:2px;font-size:12px;font-weight:500}.sf-wm-c{color:var(--sf-ink-2);text-transform:uppercase;letter-spacing:.06em;margin-top:2px;font-size:10px;font-weight:600}.sf-wm-sep{background:var(--sf-line);align-self:stretch;width:1px}.sf-wm-stat{flex-direction:column;gap:2px;min-width:48px;display:flex}.sf-wm-stat .k{text-transform:uppercase;letter-spacing:.08em;color:var(--sf-ink-3);font-size:9px;font-weight:600}.sf-wm-stat .v{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}.sfm-compact-header{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.sfm-topbar{align-items:center;gap:8px;display:flex}.sfm-dot{background:var(--sf-ink-3);border-radius:50%;flex-shrink:0;width:7px;height:7px}.sfm-dot.online{background:#4ade80;box-shadow:0 0 0 2px #4ade8033,0 0 6px #4ade8066}.sfm-device-sel{background:var(--sf-panel);border:1px solid var(--sf-line);min-width:0;color:var(--sf-ink);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236e7896' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border-radius:10px;flex:1;padding:7px 28px 7px 12px;font-family:inherit;font-size:13px;font-weight:600}.sfm-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.sfm-icon-btn{border:1px solid var(--sf-line);width:32px;height:32px;color:var(--sf-ink-3);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;place-items:center;transition:background .15s;display:grid}.sfm-icon-btn:hover{background:var(--sf-panel)}.sfm-icon-btn-primary{color:#4ade80;border-color:#4ade8055}.sfm-icon-btn-primary:hover{background:#4ade8011}.sfm-icon-btn-danger{color:#f59e0b;border-color:#f59e0b55}.sfm-icon-btn-danger:hover{background:#f59e0b11}.sfm-strip{align-items:center;gap:8px;display:flex;overflow:hidden}.sfm-sn{color:var(--sf-ink-2);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-family:monospace;font-size:11px;overflow:hidden}.sfm-sn b{color:var(--sf-ink-3);letter-spacing:.06em;font-style:normal;font-weight:700}.sfm-lic-chip{cursor:pointer;white-space:nowrap;color:var(--sf-ink-3);border:1px solid;border-radius:10px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;transition:opacity .15s;display:inline-flex}.sfm-lic-chip:hover{opacity:.75}.sfm-lic-chip.active{color:#4ade80;background:#4ade8011}.sfm-lic-chip.warn{color:#f59e0b;background:#f59e0b11}.sfm-lic-chip.expired{color:#f87171;background:#f8717111}.sfm-lic-chip.lifetime{color:#4ade80;background:#4ade8011}.sfm-weather-chip{color:var(--sf-ink-2);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;font-size:11px;font-weight:600;display:inline-flex}.sfm-weather{border-color:var(--sf-line-2);border-radius:12px;align-items:center;gap:8px;margin:0 16px 12px;padding:6px 14px}.sfm-weather>svg{flex-shrink:0;width:16px;height:16px}.sfm-weather .sf-wm-t{font-size:12px}.sfm-weather .sf-wm-deg,.sfm-weather .sf-wm-min{font-size:9px}.sfm-weather .sf-wm-c{display:none}.sfm-weather .sf-wm-stat{min-width:38px}.sfm-weather .sf-wm-stat .k{font-size:8px}.sfm-weather .sf-wm-stat .v{font-size:10px}.sfm-theme-icon{border:1px solid var(--sf-line);background:var(--sf-panel);width:30px;height:30px;color:var(--sf-ink);cursor:pointer;flex-shrink:0;place-items:center;display:grid}.sf-charts-row{grid-template-columns:1fr 1fr;gap:20px;margin-top:24px;display:grid}@media (width<=1100px){.sf-charts-row{grid-template-columns:1fr}}.sf-chart-card{background:var(--sf-panel);border:1px solid var(--sf-line);padding:22px 22px 18px}.sf-trend-card{flex-direction:column;display:flex}.sf-trend-card .sf-trend-chart-area{flex-direction:column;flex:1;min-height:0;display:flex}.sf-period-toggle{border:1px solid var(--sf-line);flex-shrink:0;display:flex}.sf-period-toggle button{background:var(--sf-panel);border:none;border-right:1px solid var(--sf-line);color:var(--sf-ink-3);cursor:pointer;letter-spacing:.06em;padding:6px 12px;font-family:Inter,sans-serif;font-size:10px;font-weight:600}.sf-period-toggle button:last-child{border-right:none}.sf-period-toggle button.active{background:var(--sf-ink);color:var(--sf-panel)}.sf-expand-btn{border:1px solid var(--sf-line);color:var(--sf-ink-3);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:5px 7px;display:inline-flex}.sf-expand-btn:hover{color:var(--sf-ink);border-color:var(--sf-ink-2)}.sf-chart-card-head{flex-wrap:wrap;row-gap:8px}.sf-chart-head-title-row{align-items:center;gap:8px;min-width:0;display:flex}.sf-chart-head-controls{flex-shrink:0;align-items:center;gap:4px;display:flex}.sf-chart-expand-btn{flex-shrink:0}.widget-today-glass,.widget-today-helios,.widget-today-sundial,.widget-today-natural,.widget-trend-glass,.widget-trend-helios,.widget-trend-sundial,.widget-trend-natural{position:relative}@media (width<=1279px){.sf-chart-expand-btn{width:17px;height:17px;color:var(--sf-ink-2);border-color:var(--sf-ink-2);background:var(--sf-panel);padding:0}.sf-chart-expand-btn svg{width:7px;height:7px}}.sf-nav-day-btn{border:1px solid var(--sf-line);color:var(--sf-ink-3);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:4px 6px;line-height:1;display:inline-flex}.sf-nav-day-btn:hover:not(:disabled){color:var(--sf-ink);border-color:var(--sf-ink-2)}.sf-nav-day-btn:disabled{opacity:.3;cursor:default}.sf-date-input{background:var(--sf-panel);border:1px solid var(--sf-line);color:var(--sf-ink);cursor:pointer;outline:none;padding:3px 6px;font-family:JetBrains Mono,monospace;font-size:11px}.sf-date-input:focus{border-color:var(--sf-ink-2)}.sf-chart-modal-backdrop{z-index:200;background:#000000a6;justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}.sf-chart-modal{background:var(--sf-panel);border:1px solid var(--sf-line);width:100%;max-width:1280px;max-height:calc(100vh - 64px);padding:28px 32px 24px;position:relative;overflow-y:auto}.sf-chart-modal-bar{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.sf-chart-modal-title{text-transform:uppercase;letter-spacing:.06em;color:var(--sf-ink-2);font-size:13px;font-weight:700}.sf-chart-modal-close{border:1px solid var(--sf-line);color:var(--sf-ink-3);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:5px 7px;display:inline-flex}.sf-chart-modal-close:hover{color:var(--sf-ink)}.sf-chart-fullscreen-backdrop{z-index:300;background:#000000b8;position:fixed;inset:0}.sf-history-fullscreen-backdrop{z-index:1300}.sf-chart-fullscreen{transform-origin:50%;background:var(--sf-panel);border:1px solid var(--sf-line);flex-direction:column;width:100vw;max-width:100vw;height:100vh;max-height:100vh;padding:10px 14px 12px;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}@media (width>=768px){.sf-chart-fullscreen.sf-history-fullscreen{width:min(96vw,1280px);max-width:min(96vw,1280px);height:min(88vh,820px);max-height:min(88vh,820px)}}@media (width<=767px){.sf-chart-fullscreen{width:100vh;max-width:100vh;height:100vw;max-height:100vw;transform:translate(-50%,-50%)rotate(90deg)}@media (orientation:landscape) and (height<=520px){.sf-chart-fullscreen{width:100vw;max-width:100vw;height:100vh;max-height:100vh;transform:translate(-50%,-50%)}}}.sf-chart-fullscreen-bar{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.sf-chart-fullscreen-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.sf-chart-fullscreen-body .sf-chart-card{background:0 0;border:none;flex-direction:column;flex:1;min-height:0;margin:0;padding:0;display:flex}.sf-chart-fullscreen-body .sf-card-head{flex-shrink:0}.sf-chart-fullscreen-body .sf-trend-chart-area{flex-direction:column;flex:1;min-height:0;display:flex}.sf-chart-fullscreen-trend .sf-card-head{margin-bottom:4px}.sf-trend-placeholder{height:300px;color:var(--sf-ink-3);letter-spacing:.06em;text-transform:uppercase;border:1px dashed var(--sf-line);justify-content:center;align-items:center;margin-top:18px;font-size:13px;font-weight:600;display:flex}.sf-hover-readout{color:var(--sf-ink-3);letter-spacing:.02em;margin-top:4px;font-family:JetBrains Mono,monospace;font-size:11px}.sf-chart-legend{flex-wrap:wrap;gap:8px 14px;margin-top:6px;display:flex}.sf-chart-legend span{color:var(--sf-ink-2);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:5px;font-size:10px;font-weight:600;transition:opacity .15s;display:inline-flex}.sf-chart-legend span.dim{opacity:.3}.sf-series-toggle{border:1px solid var(--sf-line);flex-shrink:0;display:flex}.sf-series-toggle button{background:var(--sf-panel);border:none;border-right:1px solid var(--sf-line);color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;padding:4px 7px;font-family:inherit;font-size:9px;font-weight:600}.sf-series-toggle button:last-child{border-right:none}.sf-series-toggle button.active{background:var(--sf-ink);color:var(--sf-panel)}.sf-series-toggle button:hover:not(.active){background:var(--sf-line-2)}.sf-now-strip{border-bottom:1px solid var(--sf-line-2);grid-template-columns:repeat(5,1fr);gap:10px;margin-top:14px;padding-bottom:14px;display:grid}.sf-ns-item{cursor:pointer;transition:opacity .2s}.sf-ns-item.dim{opacity:.25}.sf-ns-item .k{text-transform:uppercase;letter-spacing:.06em;color:var(--sf-ink-3);align-items:center;gap:6px;font-size:10px;font-weight:600;display:flex}.sf-ns-item .dotsq{flex-shrink:0;width:8px;height:8px;display:inline-block}.sf-ns-item .v{letter-spacing:-.01em;margin-top:4px;font-size:16px;font-weight:600}.sf-ns-item .v .u{color:var(--sf-ink-3);margin-left:2px;font-size:10px;font-weight:500}.sf-chart-wrap{height:200px;margin-top:14px;position:relative}.sf-chart-wrap svg{width:100%;height:100%}.sf-x-axis{color:var(--sf-ink-3);justify-content:space-between;margin-top:4px;font-size:9px;display:flex}.sf-crumbs{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:10px;font-size:12px;display:flex}.sf-status-dot{background:var(--sf-solar);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite sf-pulse}.sf-status-dot.offline{background:var(--sf-load)}@keyframes sf-pulse{0%,to{opacity:1}50%{opacity:.35}}.sf-meta{color:var(--sf-ink-2);margin-top:8px;font-size:13px}.sf-meta .v{color:var(--sf-ink);font-weight:600}.sf-topbar-right{align-items:center;gap:14px;display:flex}.sf-chip{border:1px solid var(--sf-line);background:var(--sf-panel);align-items:center;gap:10px;padding:10px 14px;display:flex}.sf-chip .ic{background:var(--sf-solar);border-radius:50%;width:14px;height:14px}.sf-chip .ic.load{background:var(--sf-load)}.sf-chip .lab{text-transform:uppercase;letter-spacing:.08em;color:var(--sf-ink-3);font-size:10px}.sf-chip .v{font-size:14px;font-weight:700}.solar-flow-dashboard{grid-template-columns:minmax(0,1fr) 360px;gap:24px;width:100%;display:grid}.sf-stage,.sf-card{background:var(--sf-panel);border:1px solid var(--sf-line);border-radius:4px}.sf-stage{min-height:760px;padding:24px;position:relative}.sf-schematic{width:820px;height:540px;margin:0 auto;position:relative}.sf-stage-head,.sf-card-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.sf-stage-head{margin-bottom:20px}.sf-stage-title,.sf-card-head span,.sf-topbar h1{color:var(--sf-ink);letter-spacing:-.02em;margin:6px 0 0;font-size:28px;font-weight:700}.sf-stage-title,.sf-card-head span{color:var(--sf-ink-2);letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:13px;font-weight:700}.sf-card-head small{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.sf-legend{color:var(--sf-ink-3);letter-spacing:.06em;text-transform:uppercase;gap:18px;font-size:11px;display:flex}.sf-legend span{align-items:center;gap:6px;display:inline-flex}.sf-legend i{background:var(--sf-idle);width:14px;height:2px;display:inline-block}.sf-legend .solar{background:var(--sf-solar)}.sf-legend .battery{background:var(--sf-battery)}.sf-legend .load{background:var(--sf-load)}.sf-card{background:var(--sf-panel);border:1px solid var(--sf-line);border-radius:4px;padding:22px}.sf-card-head{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.sf-card-title{text-transform:uppercase;letter-spacing:.05em;color:var(--sf-ink-2);font-size:13px;font-weight:600}.sf-card-link{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.sf-tiles{grid-template-columns:1fr 1fr;gap:12px;display:grid}.sf-tile{border:1px solid var(--sf-line);background:var(--sf-panel);cursor:pointer;padding:16px;transition:border-color .2s}.sf-tile:hover{border-color:var(--sf-solar)}.sf-tile .t-head{justify-content:space-between;align-items:center;display:flex}.sf-tile .t-ico{opacity:.55;flex-shrink:0;width:auto;height:auto}.sf-tile:hover .t-ico{opacity:.9}.sf-tile .t-lab{text-transform:uppercase;letter-spacing:.08em;color:var(--sf-ink-3);font-size:10px}.sf-tile .t-val{letter-spacing:-.01em;margin-top:6px;font-size:24px;font-weight:600}.sf-tile .t-val .unit{color:var(--sf-ink-3);margin-left:3px;font-size:11px;font-weight:500}.sf-tile .t-bar{background:var(--sf-line-2);height:3px;margin-top:12px;position:relative}.sf-tile .t-bar .fill{background:var(--sf-idle);position:absolute;top:0;bottom:0;left:0}.sf-stat-row{border-top:1px solid var(--sf-line-2);grid-template-columns:1fr auto;align-items:baseline;padding:12px 0;font-size:13px;display:grid}.sf-stat-row:first-of-type{border-top:none}.sf-stat-row .lab{color:var(--sf-ink-2)}.sf-stat-row .val{font-size:15px;font-weight:600}.sf-stat-row .val .sep{color:var(--sf-ink-3);margin:0 4px;font-weight:400}.sf-stat-row .val .unit{color:var(--sf-ink-3);margin-left:3px;font-size:11px;font-weight:500}.sf-stat-row .val.solar-c{color:var(--sf-solar)}.sf-stat-row .val.battery-c{color:var(--sf-battery)}.sf-stat-row .val.load-c{color:var(--sf-load)}.sf-summary-v2{padding:16px 18px}.sf-summary-head{border-bottom:1px solid var(--sf-line);grid-template-columns:1fr 100px 100px;align-items:flex-end;margin-bottom:2px;padding-bottom:10px;display:grid}.sf-summary-title{color:var(--sf-ink);text-transform:uppercase;letter-spacing:.03em;font-size:14px;font-weight:700}.sf-summary-subtitle{color:var(--sf-ink-3);margin-top:2px;font-size:11px}.sf-summary-col-hdr{letter-spacing:.08em;text-transform:uppercase;color:var(--sf-ink-3);text-align:right;font-size:10px;font-weight:600}.sf-stat-row-v2{border-bottom:1px solid var(--sf-line-2);grid-template-columns:1fr 100px 100px;align-items:center;padding:10px 0;display:grid}.sf-stat-row-v2.last{border-bottom:none}.sf-stat-label-col{flex-direction:column;gap:2px;display:flex}.sf-stat-main{color:var(--sf-ink);font-size:14px;font-weight:600}.sf-stat-sub{color:var(--sf-ink-3);font-size:11px}.sf-stat-today-col{text-align:right;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600}.sf-stat-today-col .unit,.sf-stat-total-col .unit{color:var(--sf-ink-3);margin-left:1px;font-family:inherit;font-size:10px;font-weight:400}.sf-stat-today-col.solar-c{color:var(--sf-solar)}.sf-stat-today-col.battery-c{color:var(--sf-battery)}.sf-stat-today-col.load-c{color:var(--sf-load)}.sf-stat-today-col.grid-c{color:var(--sf-grid,#a974ff)}.sf-stat-dash{font-weight:700}.sf-stat-total-col{text-align:right;color:var(--sf-ink);font-family:JetBrains Mono,monospace;font-size:15px;font-weight:700}.sf-spark-wrap{height:60px;margin:12px 0}.sf-spark-labels{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;font-size:10px;display:flex}.sf-schematic{width:820px;min-width:820px;height:540px;position:relative}.sf-wires{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.sf-wires path{fill:none;stroke:var(--sf-idle);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;opacity:.5}.sf-wires path.solar{stroke:var(--sf-solar)}.sf-wires path.battery{stroke:var(--sf-battery)}.sf-wires path.load{stroke:var(--sf-load)}.sf-wires path.grid{stroke:var(--sf-idle)}.sf-flow{fill:none;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:6 15;stroke-dashoffset:0;opacity:1;animation:1.5s linear infinite sf-dash}.sf-flow.solar{stroke:var(--sf-solar)}.sf-flow.battery{stroke:var(--sf-battery)}.sf-flow.load{stroke:var(--sf-load)}.sf-flow.grid{stroke:var(--sf-idle)}.sf-flow.fast{animation-duration:.8s}.sf-flow.reverse{animation-direction:reverse}@keyframes sf-dash{to{stroke-dashoffset:-36px}}.sf-node,.sf-string,.sf-stat,.sf-tile-grid button,.sfm-node,.sfm-mini,.sfm-metrics button{font:inherit;color:inherit;text-align:left;cursor:pointer}.sf-node,.sf-battery-node,.sf-grid-node,.sf-inverter{z-index:2;background:var(--sf-panel);border:1.5px solid var(--sf-line);text-align:left;font:inherit;cursor:pointer;padding:14px;position:absolute;box-shadow:0 4px 12px #00000014}.sf-pv-string-row{z-index:2;gap:20px;display:flex;position:absolute;top:4%;left:4%}.sf-string{background:var(--sf-panel);border:1.5px solid var(--sf-line);text-align:left;cursor:pointer;width:150px;padding:14px;box-shadow:0 4px 12px #00000014}.sf-string strong{color:var(--sf-solar);margin:10px 0 4px;font-size:20px;display:block}.sf-string .sf-sub{color:var(--sf-ink-3);font-size:10px;display:block}.sf-node.solar{border-color:var(--sf-solar);width:150px;top:47%;left:13%}.sf-inverter{background:var(--sf-ink);width:180px;color:var(--sf-bg);border-color:var(--sf-ink);top:60%;left:41%;transform:translateY(-50%)}.sf-node.load{border-color:var(--sf-load);width:185px;top:4%;right:2%}.sf-battery-node{border-color:var(--sf-battery);width:230px;top:78%;left:13%}.sf-grid-node{border-color:var(--sf-idle);width:150px;top:73%;right:4%}.sf-grid-node .sf-tag.online{color:var(--sf-solar);border-color:var(--sf-solar)}.sf-grid-node .sf-tag.offline{color:var(--sf-ink-3);border-color:var(--sf-line)}.sf-grid-main{margin:10px 0}.sf-grid-main .sf-value{font-size:20px;font-weight:700;display:block}.sf-grid-main .sf-sub{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;font-size:10px}.sf-grid-meta{color:var(--sf-ink-2);border-top:1px solid var(--sf-line-2);align-items:center;gap:8px;padding-top:8px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px;display:flex}.sf-grid-meta .sep{opacity:.3}.sf-label{color:var(--sf-ink-3);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:10px;font-weight:700;display:flex}.sf-inverter .sf-label{color:#f5f3ed9e}.sf-label-left{align-items:center;gap:8px;display:flex}.sf-tag{border:1px solid var(--sf-line);color:var(--sf-ink-3);letter-spacing:.05em;padding:2px 5px;font-size:9px;font-weight:600}.sf-glyph-row{align-items:center;gap:10px;display:flex}.sf-glyph{flex:none;display:inline-block}.sf-glyph.sun{background:var(--sf-solar);border-radius:50%;width:28px;height:28px}.sf-glyph.bat{border:2px solid var(--sf-battery);width:30px;height:18px;position:relative}.sf-glyph.bat:after{content:"";background:var(--sf-battery);width:4px;height:8px;position:absolute;top:4px;right:-6px}.sf-glyph.house{background:var(--sf-load);clip-path:polygon(50% 0,100% 40%,100% 100%,0 100%,0 40%);width:26px;height:26px}.sf-glyph.tower{background:var(--sf-ink-2);clip-path:polygon(20% 100%,50% 0,80% 100%,65% 100%,50% 50%,35% 100%);width:26px;height:26px}.sf-value-row{align-items:baseline;gap:4px;display:flex}.sf-value{letter-spacing:-.02em;font-size:24px;font-weight:700}.sf-value .unit{color:var(--sf-ink-3);margin-left:3px;font-size:12px;font-weight:500}.sf-value small,.sf-sub{color:var(--sf-ink-3);font-size:11px;font-weight:500}.sf-sub{color:var(--sf-ink-2);margin-top:5px}.sf-pv-string-row{z-index:2;grid-template-columns:repeat(4,130px);gap:26px;width:auto;display:grid;position:absolute;top:4%;left:4%}.sf-string{background:var(--sf-panel);border:1px solid var(--sf-line);border-top:2px solid var(--sf-solar);border-radius:0;min-height:70px;padding:10px}.sf-string.active{border-color:var(--sf-solar)}.sf-string span,.sf-string small,.sf-tile-grid span{color:var(--sf-ink-3);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:10px;display:block}.sf-string .sf-sub{letter-spacing:0;text-transform:none;font-size:9px}.sf-string strong,.sf-tile-grid b{color:var(--sf-solar);margin-top:4px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:14px;display:block}.sf-string strong small{color:var(--sf-ink-3);text-transform:none;letter-spacing:0;margin-left:3px;font-size:11px;display:inline}.sf-inverter{z-index:3;background:var(--sf-ink);width:180px;color:var(--sf-bg);cursor:pointer;padding:16px 18px;position:absolute;top:60%;left:41%;transform:translateY(-50%)}.iv-label{color:#f5f3ed9e;letter-spacing:.12em;text-transform:uppercase;font-size:10px}.iv-name{margin-top:6px;font-size:14px;font-weight:700;line-height:1.22}.iv-power{margin-top:6px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:28px;font-weight:700}.iv-power small{color:#f5f3ed9e;margin-left:4px;font-size:12px}.iv-bar{background:#f5f3ed24;height:4px;margin-top:10px}.iv-bar span{background:var(--sf-solar);height:100%;display:block}.iv-meta{color:#f5f3edb8;border-top:1px solid #f5f3ed29;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;font-size:11px;display:flex}.sf-side{flex-direction:column;gap:20px;display:flex}.sf-wire-label{z-index:4;background:var(--sf-panel);border:1px solid var(--sf-line);color:var(--sf-ink-2);letter-spacing:.02em;border-radius:2px;padding:2px 8px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 3px #0000000d}.sf-wire-label .arr{margin-right:4px;font-weight:700}.pv-main .arr{color:var(--sf-solar)}.battery-main .arr{color:var(--sf-battery)}.load-main .arr{color:var(--sf-load)}.grid-main .arr{color:var(--sf-ink-3)}.sf-wire-label span{margin-right:3px}.sf-wire-label.pv-main{top:53.7%;left:35%}.sf-wire-label.battery-main{top:72%;left:33%}.sf-wire-label.load-main{top:13%;left:73%}.sf-wire-label.grid-main{top:78%;left:73%}.sf-wire-label.solar-flow-label span{color:var(--sf-solar)}.sf-wire-label.battery span{color:var(--sf-battery)}.sf-wire-label.load span{color:var(--sf-load)}.sf-junction{fill:var(--sf-panel);stroke-width:1.5px}.sf-junction.solar{stroke:var(--sf-solar)}.sf-junction.load{stroke:var(--sf-load)}.sf-junction.idle{stroke:var(--sf-idle)}.sf-battery-node{z-index:2;background:var(--sf-panel);border:1.5px solid var(--sf-battery);width:230px;color:var(--sf-ink);text-align:left;font:inherit;cursor:pointer;padding:14px;position:absolute;top:78%;left:13%}.sf-bat-vis{align-items:center;gap:16px;margin:8px 0 10px;display:flex}.sf-bat-shell{border:2px solid var(--sf-battery);flex:none;width:70px;height:36px;position:relative}.sf-bat-shell:after{content:"";background:var(--sf-battery);width:4px;height:18px;position:absolute;top:8px;right:-6px}.sf-bat-shell span{background:var(--sf-battery);height:100%;transition:width .4s;display:block}.sf-bat-shell span.charging{animation:2s ease-in-out infinite sf-battery-pulse}@keyframes sf-battery-pulse{0%{opacity:.6;filter:brightness()}50%{opacity:1;filter:brightness(1.5);box-shadow:0 0 15px var(--sf-battery)}to{opacity:.6;filter:brightness()}}.sf-bat-pct{letter-spacing:-.02em;font-size:28px;font-weight:700}.sf-bat-pct small{color:var(--sf-ink-3);margin-left:2px;font-size:14px;font-weight:500}.sf-bat-rows{grid-template-columns:auto 1fr;gap:8px 12px;font-size:11px;display:grid}.sf-bat-rows span{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.06em}.sf-bat-rows b{font-family:JetBrains Mono,ui-monospace,monospace;font-weight:600}.sf-bat-rows b:first-of-type{color:var(--sf-battery)}.sf-status-bar{z-index:10;border-top:1px solid var(--sf-line);color:var(--sf-ink-3);justify-content:space-between;gap:18px;padding-top:16px;font-size:12px;display:flex;position:absolute;bottom:24px;left:28px;right:28px}.sf-status-bar .left{flex-wrap:wrap;gap:20px;display:flex}.sf-status-bar span{align-items:center;gap:6px;display:inline-flex}.sf-status-bar i{background:var(--sf-solar);border-radius:50%;width:6px;height:6px}.sf-status-bar b{color:var(--sf-ink);font-family:JetBrains Mono,ui-monospace,monospace}.sf-card{padding:22px}.sf-stat{border:0;border-top:1px solid var(--sf-line-2);background:0 0;grid-template-columns:1fr auto;gap:12px;width:100%;padding:12px 0;display:grid}.sf-stat:first-of-type{border-top:0}.sf-stat .lab{color:var(--sf-ink-2);font-size:13px}.sf-stat .val{font-family:JetBrains Mono,ui-monospace,monospace;font-size:15px;font-weight:700}.sf-stat .val small{color:var(--sf-ink-3);font-size:11px}.solar-c{color:var(--sf-solar)}.battery-c{color:var(--sf-battery)}.load-c{color:var(--sf-load)}.idle{color:var(--sf-ink-3)}.sf-battery-meter{background:var(--sf-line-2);height:8px;margin:12px 0 4px}.sf-battery-meter span{background:var(--sf-battery);height:100%;display:block}.sf-tile-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.sf-tile-grid button{background:var(--sf-panel);border:1px solid var(--sf-line);min-height:78px;padding:14px}.sf-spark-wrap{height:60px;margin-top:10px;position:relative}.sf-spark-wrap svg{width:100%;height:100%}.sf-spark-labels{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;margin-top:8px;font-size:10px;display:flex}.sf-mobile{flex-direction:column;height:100%;padding-bottom:90px;display:flex;overflow:auto}.sft-layout{background:var(--sf-bg);min-height:100%;color:var(--sf-ink);flex-direction:column;font-family:JetBrains Mono,monospace;display:flex}.sft-header{background:var(--sf-panel);border-bottom:1px solid var(--sf-line);flex-shrink:0;align-items:center;gap:8px;padding:6px 12px;display:flex;overflow:hidden}.sft-brand{align-items:center;gap:8px;display:flex}.sft-title{text-transform:uppercase;letter-spacing:.05em;color:var(--sf-ink);font-size:13px;font-weight:700}.sft-age{color:var(--sf-ink-3);font-size:11px}.sft-weather{color:var(--sf-ink-2);align-items:center;gap:6px;font-size:12px;display:flex}.sft-wcond{color:var(--sf-ink-3);font-size:11px}.sft-hd-btn{border:1px solid var(--sf-line);background:var(--sf-bg);width:28px;height:28px;color:var(--sf-ink-2);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.sft-hd-btn:hover{background:var(--sf-line);color:var(--sf-ink)}.sft-hd-btn-danger{color:#e05252;border-color:#e0525266}.sft-hd-btn-danger:hover{color:#fff;background:#e05252;border-color:#e05252}.sft-hd-btn-ac-charge{color:#fbbf24;background:#fbbf241a;border-color:#fbbf244d;align-items:center;gap:4px;width:auto;padding:0 10px;font-size:11px;font-weight:600;display:inline-flex}.sft-hd-btn-ac-charge:hover{color:#fbbf24;background:#fbbf2433;border-color:#fbbf24}.sft-hd-btn-ac-charge.loading{opacity:.6;cursor:not-allowed}.sft-hd-btn-ac-charge:disabled{opacity:.5;cursor:not-allowed}.sft-header .tsw-btn{border:1px solid var(--sf-line);background:var(--sf-bg);height:28px;color:var(--sf-ink-2);border-radius:6px;gap:5px;padding:0 8px;font-size:11px;transition:background .15s,color .15s}.sft-header .tsw-btn:hover{background:var(--sf-line);color:var(--sf-ink)}.sft-lic-chip{letter-spacing:.04em;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px;flex-shrink:0;align-items:center;padding:3px 8px;font-size:10px;font-weight:600;display:inline-flex}.sft-lic-chip.active{color:var(--sf-solar,#38a34b);background:#38a34b26;border-color:#38a34b59}.sft-lic-chip.warn{color:#d6a01a;background:#d6a01a26;border-color:#d6a01a59}.sft-lic-chip.expired{color:#e05252;background:#e0525226;border-color:#e0525259}.sft-lic-chip.lifetime{color:#8250c8;background:#8250c826;border-color:#8250c859}.sft-tiles-row{border-bottom:1px solid var(--sf-line);flex-shrink:0;grid-template-columns:repeat(4,1fr);gap:0;display:grid}.sft-tile{border-right:1px solid var(--sf-line);flex-direction:column;gap:2px;padding:10px 14px;display:flex}.sft-tile:last-child{border-right:none}.sft-tile-eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--sf-ink-3);font-size:10px}.sft-tile-val{color:var(--sf-ink);font-size:22px;font-weight:700;line-height:1.1}.sft-tile-unit{color:var(--sf-ink-3);font-size:12px;font-weight:400}.sft-tile-sub{color:var(--sf-ink-3);font-size:11px}.sft-tile-solar .sft-tile-val{color:var(--sf-solar)}.sft-tile-bat .sft-tile-val{color:var(--sf-battery)}.sft-tile-load .sft-tile-val{color:var(--sf-load)}.sft-flow-center{border-bottom:1px solid var(--sf-line);flex:none;justify-content:center;align-items:flex-start;height:660px;padding:10px 12px 20px;display:flex;overflow:hidden}.sft-bottom{border-top:1px solid var(--sf-line);flex-direction:column;flex-shrink:0;display:flex}.sft-bottom>.sf-card{border-bottom:1px solid var(--sf-line);border-radius:0;margin:0}.sft-bottom>.sf-card:last-child{border-bottom:none}.sft-summary-row{border-bottom:1px solid var(--sf-line);flex-shrink:0;gap:0;display:flex}.sft-sum-item{border-right:1px solid var(--sf-line);flex-direction:column;flex:1;gap:2px;padding:8px 12px;display:flex}.sft-sum-item:last-child{border-right:none}.sft-sum-label{text-transform:uppercase;letter-spacing:.06em;color:var(--sf-ink-3);white-space:nowrap;font-size:9px}.sft-sum-val{color:var(--sf-ink);white-space:nowrap;font-size:14px;font-weight:700}@media (width<=1180px){.solar-flow-dashboard{grid-template-columns:1fr}.sf-side{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.sf-topbar{scrollbar-width:none;overflow-x:auto}.sf-topbar::-webkit-scrollbar{display:none}.sf-stage{overflow-x:auto}}@media (width<=1334px){.dashboard{background:var(--sf-bg);padding:0}.mobile-topbar{background:var(--sf-bg);border-bottom:1px solid var(--sf-line);-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--sf-ink)}.device-list{background:0 0;border:0}.device-button{flex-basis:178px;min-height:58px}.powerflow-shell{padding:0;overflow:visible}.sfm-header{justify-content:space-between;align-items:center;padding:24px 20px;display:flex}.sfm-header .left h2{letter-spacing:-.02em;margin:0;font-size:28px;font-weight:700}.sfm-header .sub{color:var(--sf-ink-3);align-items:center;gap:8px;margin-top:4px;font-size:13px;display:flex}.dot{border-radius:50%;width:8px;height:8px}.dot.online{background:#45b058;box-shadow:0 0 8px #45b058}.dot.battery{background:var(--sf-battery);box-shadow:0 0 8px var(--sf-battery)}.sfm-circle-btn{border:1px solid var(--sf-line);background:var(--sf-panel);width:44px;height:44px;color:var(--sf-ink);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex;box-shadow:0 2px 8px #0000000a}.sfm-card{background:var(--sf-panel);border:1px solid var(--sf-line-2);border-radius:12px;margin:0 16px 12px;padding:16px}.sfm-chart-card{background:var(--sf-panel);border:1px solid var(--sf-line);border-radius:12px;margin:0 12px 16px;padding:14px 12px 10px}.sfm-chart-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.sfm-chart-title{color:var(--sf-ink-2);letter-spacing:.02em;font-size:12px;font-weight:600}.sfm-card.main-card{padding:10px 14px}.sfm-main-row{align-items:center;gap:12px;display:flex}.sfm-main-pv{cursor:pointer;flex-direction:column;flex:1;min-width:0;display:flex}.sfm-main-pv small{color:var(--sf-ink-3);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:700;display:block}.sfm-main-pv strong{letter-spacing:-.03em;margin-top:1px;font-size:24px;font-weight:800;line-height:1}.sfm-main-pv strong span{opacity:.45;margin-left:2px;font-size:12px;font-weight:600}.sfm-main-sep{background:var(--sf-line-2);flex-shrink:0;width:1px;height:30px}.sfm-main-item{cursor:pointer;flex-direction:column;align-items:center;min-width:58px;display:flex}.sfm-main-item small{color:var(--sf-ink-3);letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px;font-size:8px;font-weight:700;display:block}.sfm-main-item strong{font-size:15px;font-weight:700;line-height:1}.sfm-main-item strong span{opacity:.45;margin-left:1px;font-size:9px;font-weight:600}.sfm-summary{grid-template-columns:repeat(4,1fr);gap:8px;padding:0 16px 14px;display:grid}.sfm-summary .item{background:var(--sf-panel);border:1px solid var(--sf-line-2);text-align:center;border-radius:8px;padding:8px 6px}.sfm-summary span{color:var(--sf-ink-3);margin-bottom:4px;font-size:9px;font-weight:700;display:block}.sfm-summary strong{font-size:16px;font-weight:700}.sfm-card.flow-card{padding:20px}.sfm-card.flow-card .head{justify-content:space-between;margin-bottom:24px;display:flex}.sfm-card.flow-card .head span{letter-spacing:.05em;font-size:12px;font-weight:700}.sfm-card.flow-card .head small{color:var(--sf-ink-3);align-items:center;gap:6px;font-size:10px;font-weight:700;display:flex}.sfm-ac-charge-btn{color:#fbbf24;cursor:pointer;white-space:nowrap;background:#fbbf241a;border:1px solid #fbbf244d;border-radius:6px;align-items:center;gap:4px;padding:2px 10px;font-size:11px;font-weight:600;transition:background .2s,border-color .2s;display:inline-flex}.sfm-ac-charge-btn:hover{background:#fbbf2433;border-color:#fbbf24}.sfm-ac-charge-btn.loading{opacity:.6;cursor:not-allowed}.sfm-ac-charge-btn:disabled{opacity:.5;cursor:not-allowed}.vnode{z-index:2;border:1.5px solid var(--sf-ink);background:#fff;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:0;padding:10px 12px;display:grid;position:relative}.vnode.pv{border-color:var(--sf-solar)}.vnode.inv{background:var(--sf-ink);color:#fff;border-color:var(--sf-ink)}.vnode.bat{border-color:var(--sf-battery)}.vnode.load{border-color:var(--sf-load)}.vnode.gridn{border-color:var(--sf-idle)}.vnode .gly{flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.vnode .gly.sun{background:var(--sf-solar);border-radius:50%}.vnode .gly.invg{background:var(--sf-solar)}.vnode .gly.batg{border:1.5px solid var(--sf-battery);background:0 0;border-radius:2px;align-items:center;width:32px;height:16px;padding:1.5px;position:relative;justify-content:flex-start!important;display:flex!important}.vnode .gly.batg:after{content:"";background:var(--sf-battery);border-radius:0 1px 1px 0;width:3px;height:7px;position:absolute;top:3px;right:-4px}.vnode .gly.batg .fill{height:100%;width:var(--soc,0%);background:var(--sf-battery);opacity:1;border-radius:1px;transition:width .4s}.vnode .gly.batg.charging .fill{animation:1.2s cubic-bezier(.4,0,.2,1) infinite sf-bat-charge}@keyframes sf-bat-charge{0%{opacity:.4;width:0%}50%{width:var(--soc);opacity:1}to{width:var(--soc);opacity:.4}}.vnode .gly.houseg{background:var(--sf-load);clip-path:polygon(50% 0,100% 40%,100% 100%,0 100%,0 40%)}.vnode .gly.towerg{background:var(--sf-ink-2);clip-path:polygon(20% 100%,50% 0,80% 100%,65% 100%,50% 50%,35% 100%)}.vnode .name{text-transform:uppercase;letter-spacing:.1em;color:var(--sf-ink-3);font-size:11px}.vnode.inv .name{color:#ffffff80}.vnode .val{margin-top:2px;font-family:JetBrains Mono,monospace;font-size:18px;font-weight:600}.vnode.inv .val{color:#fff}.vnode .u{color:var(--sf-ink-3);margin-left:2px;font-size:11px;font-weight:500}.vnode .right{text-align:right;color:var(--sf-ink-3);font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.4}.vnode.inv .right{color:#fff9}.vnode .badge{border:1px solid var(--sf-line);text-transform:uppercase;padding:2px 6px;font-size:9px;display:inline-block}.vnode.inv .badge{color:#ffffffb3;border-color:#fff3}.wire{fill:none;stroke-width:3px;stroke-linecap:round;opacity:.35}.wire.solar{stroke:var(--sf-solar)}.wire.battery{stroke:var(--sf-battery)}.wire.load{stroke:var(--sf-load)}.wire.grid,.wire.idle{stroke:var(--sf-idle)}.flow{fill:none;stroke-width:4px;stroke-linecap:round;stroke-dasharray:10 14;opacity:.95;animation:.7s linear infinite sf-dash}.flow.solar{stroke:var(--sf-solar)}.flow.battery{stroke:var(--sf-battery)}.flow.load{stroke:var(--sf-load)}.flow.grid{stroke:var(--sf-idle)}.flow.inv{stroke:var(--sf-ink-3);opacity:.5}.flow.reverse{animation-direction:reverse}.flow.fast{animation-duration:.4s}@keyframes sf-dash{to{stroke-dashoffset:-48px}}.vflow2d{grid-template-rows:86px 100px 86px;grid-template-columns:1fr 1.15fr 1fr;place-items:center stretch;gap:24px 14px;padding:4px 0 2px;display:grid;position:relative}.vflow2d .wires2d{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.vnode.v2{text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:100%;height:100%;padding:8px 5px;display:flex}.v2.pv{grid-area:1/2/2/3}.v2.bat{grid-area:2/1/3/2}.v2.inv{grid-area:2/2/3/3}.v2.load{grid-area:2/3/3/4}.v2.gridn{grid-area:3/2/4/3}.vnode.v2 .gly{margin:0 0 3px}.vnode.v2 .name{font-size:8.5px}.vnode.v2 .val{margin-top:0;font-size:14px;line-height:1.05}.vnode.v2 .val .u{font-size:8.5px}.vnode.v2 .sub{color:var(--sf-ink-3);font-family:JetBrains Mono,monospace;font-size:8.5px;line-height:1.25}.vnode.v2.inv .sub{color:#fff9}.vnode.v2.inv .val .u{color:#ffffff8c}.vnode.v2.inv .pbar{background:#ffffff29;border-radius:2px;width:76%;height:3px;margin:2px 0;overflow:hidden}.vnode.v2.inv .pbar>span{background:var(--sf-solar);height:100%;transition:width .4s;display:block}.sfm-bat-hero{background:var(--sf-panel);border:1px solid var(--sf-line-2);border-radius:12px;flex-direction:column;align-items:center;margin:0 20px 20px;padding:40px 24px;display:flex}.sfm-bat-large{border:4px solid var(--sf-battery);border-radius:8px;width:140px;height:220px;padding:6px;position:relative}.sfm-bat-large:before{content:"";background:var(--sf-battery);border-radius:4px 4px 0 0;width:60px;height:10px;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.sfm-bat-large .fill{background:var(--sf-battery);height:calc(var(--soc,0%) * (100% - 12px) / 100%);opacity:1;border-radius:4px;transition:height .5s ease-out;position:absolute;bottom:6px;left:6px;right:6px}.sfm-bat-large.charging .fill{animation:1.5s cubic-bezier(.4,0,.2,1) infinite sf-vbat-charge}@keyframes sf-vbat-charge{0%{opacity:.5;filter:brightness()}50%{opacity:1;filter:brightness(1.3)}to{opacity:.5;filter:brightness()}}.sfm-bat-large .content{color:#fff;mix-blend-mode:difference;z-index:10;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.sfm-bat-large .val{font-family:JetBrains Mono,monospace;font-size:64px;font-weight:800;line-height:.8}.sfm-bat-large .lab{letter-spacing:.08em;margin-top:8px;font-size:12px;font-weight:800}.sfm-bat-chart{background:var(--sf-panel);border:1px solid var(--sf-line-2);border-radius:12px;margin:0 20px 20px;padding:20px}.sfm-bat-chart .head{color:var(--sf-ink-2);margin-bottom:14px;font-size:12px;font-weight:700}.sfm-bat-chart .axis{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;font-size:9px;font-weight:700;display:flex}.sfm-bat-grid{text-align:center;grid-template-columns:repeat(2,1fr);gap:12px;margin:24px 20px 0;display:grid}.sfm-bat-grid .item small{color:var(--sf-ink-3);margin-bottom:6px;font-size:10px;font-weight:700;display:block}.sfm-bat-grid .item strong{font-size:20px;font-weight:700}.sfm-list{background:var(--sf-panel);border:1px solid var(--sf-line-2);border-radius:12px;margin:0 20px 20px;overflow:hidden}.sfm-list-row{border-bottom:1px solid var(--sf-line-2);justify-content:space-between;padding:16px 20px;font-size:14px;display:flex}.sfm-list-row:last-child{border:0}.sfm-list-row span{color:var(--sf-ink-2)}.sfm-list-row b{font-weight:700}.sfm-list-row b.green{color:#45b058}.sfm-nav{background:var(--sf-panel);border-top:1px solid var(--sf-line);height:58px;padding-bottom:env(safe-area-inset-bottom);z-index:100;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 12px #00000008}.sfm-stats-grid{grid-template-columns:1fr 1fr;gap:12px;padding:0 20px 100px;display:grid}.stat-card{background:var(--sf-panel);border:1px solid var(--sf-line-2);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.stat-card .icn{background:var(--sf-bg-2);border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;font-size:20px;display:flex}.stat-card.sol .icn{color:var(--sf-solar);background:oklch(90% .1 80)}.stat-card.hom .icn{color:var(--sf-load);background:oklch(90% .1 260)}.stat-card.bat .icn{color:var(--sf-battery);background:oklch(90% .1 140)}.stat-card.lif .icn{color:var(--sf-ink-2);background:oklch(90% 0 0)}.stat-card.grd .icn{color:var(--sf-ink-1);background:oklch(90% .05 200)}.stat-card.self .icn{color:var(--sf-green);background:oklch(90% .1 150)}.stat-card .main{flex-direction:column;gap:4px;display:flex}.stat-card label{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.02em;font-size:11px;font-weight:700}.stat-card .vals{flex-wrap:wrap;align-items:baseline;gap:4px;display:flex}.stat-card strong{color:var(--sf-ink-1);font-family:JetBrains Mono,monospace;font-size:18px;font-weight:800}.stat-card span{color:var(--sf-ink-3);font-size:11px;font-weight:600}.sfm-card.summary-card{margin:0 20px 20px;padding:0}.sfm-list.no-pad{padding:0}.sfm-nav button{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;background:0 0;border:none;outline:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 6px;font-size:9.5px;font-weight:600;transition:all .2s;display:flex}.sfm-nav button.active{color:var(--sf-ink)}.sfm-nav .icn{place-items:center;width:20px;height:20px;margin-bottom:1px;display:grid}.sfm-nav .sq{border:1.6px solid;width:12px;height:12px;transition:all .2s}.sfm-nav button.active .sq{background:currentColor;transform:scale(1.1)}.sfm-nav .ci{border:1.6px solid;border-radius:50%;width:13px;height:13px;transition:all .2s}.sfm-nav button.active .ci{background:currentColor;transform:scale(1.1)}.sfm-nav .li{flex-direction:column;gap:2px;width:14px;height:12px;display:flex}.sfm-nav .li b{background:currentColor;width:100%;height:2px;display:block}}.mono{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,monospace}.unit{color:var(--sf-ink-3);margin-left:2px;font-size:11px;font-weight:500}.sf-status-bar{z-index:10;border-top:1px solid var(--sf-line);color:var(--sf-ink-3);justify-content:space-between;align-items:center;padding-top:16px;font-size:12px;display:flex;position:absolute;bottom:24px;left:24px;right:24px}.sf-status-bar .left{align-items:center;gap:20px;display:flex}.sf-status-bar i{background:var(--sf-solar);width:6px;height:6px;box-shadow:0 0 8px var(--sf-solar);border-radius:50%;margin-right:8px;display:inline-block}.sf-status-bar .mono{font-family:JetBrains Mono,monospace;font-weight:600}.sf-ac-charge-btn{color:#fbbf24;cursor:pointer;white-space:nowrap;background:#fbbf241a;border:1px solid #fbbf244d;border-radius:6px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:600;transition:background .2s,border-color .2s;display:inline-flex}.sf-ac-charge-btn:hover{background:#fbbf2433;border-color:#fbbf24}.sf-ac-charge-btn.loading{opacity:.6;cursor:not-allowed}.sf-ac-charge-btn:disabled{opacity:.5;cursor:not-allowed}.sf-device-picker{border:1px solid var(--sf-ink-1);background:#ffffff0d;border-radius:8px;flex-direction:column;gap:4px;padding:6px 12px;display:flex}.sf-device-picker label{text-transform:uppercase;color:var(--sf-ink-2);letter-spacing:.5px;font-size:10px}.sf-device-picker select{color:var(--sf-ink-3);cursor:pointer;background:0 0;border:none;outline:none;padding:0;font-size:13px;font-weight:500}.sf-device-picker select option{background:var(--sf-bg-1);color:var(--sf-ink-3)}.device-selector-minimal{border:1px solid var(--sf-line);color:var(--sf-ink);background:0 0;border-radius:4px;outline:none;padding:2px 4px;font-size:14px;font-weight:600}.user-profile-menu{--upm-bg:transparent;--upm-border:1px solid var(--sf-line);--upm-color:var(--sf-ink-3);--upm-muted:var(--sf-ink-2);--upm-hover:var(--sf-line);--upm-accent:var(--accent-blue,#3b82f6);--upm-radius:8px;--upm-menu-bg:#fff;--upm-menu-color:#111827;--upm-menu-muted:#6b7280;--upm-menu-border:#0f172a1f;flex-shrink:0;display:inline-flex;position:relative}.user-profile-menu .upm-trigger{border:var(--upm-border);border-radius:var(--upm-radius);background:var(--upm-bg);min-width:34px;height:34px;color:var(--upm-color);cursor:pointer;font:inherit;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 10px 0 6px;font-size:12px;font-weight:700;display:inline-flex}.user-profile-menu.compact .upm-trigger{width:34px;min-width:34px;padding:0}.user-profile-menu .upm-trigger:hover,.user-profile-menu .upm-trigger[aria-expanded=true]{background:var(--upm-hover)}.upm-avatar{background:color-mix(in srgb, var(--upm-accent) 18%, transparent);width:22px;height:22px;color:var(--upm-color);border:1px solid color-mix(in srgb, var(--upm-accent) 45%, transparent);border-radius:50%;justify-content:center;align-items:center;font-size:10px;line-height:1;display:inline-flex}.upm-name{text-overflow:ellipsis;max-width:132px;overflow:hidden}.upm-chevron{color:var(--upm-muted)}.upm-popover{z-index:120;border:1px solid var(--upm-menu-border);background:var(--upm-menu-bg);width:230px;color:var(--upm-menu-color);border-radius:8px;padding:8px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 42px #0f172a38}.upm-popover.align-left{left:0;right:auto}.upm-head{border-bottom:1px solid #0f172a14;align-items:center;gap:8px;padding:8px 8px 10px;display:flex}.upm-head-icon{background:#0f172a0f;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.upm-head-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:800;overflow:hidden}.upm-user{border-bottom:1px solid #0f172a14;align-items:center;gap:8px;padding:8px 8px 10px;display:flex}.upm-user-icon{background:#0f172a0f;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.upm-user-text{flex-direction:column;gap:1px;min-width:0;display:flex}.upm-user-text strong,.upm-user-text small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.upm-user-text strong{font-size:13px;font-weight:800}.upm-user-text small{color:var(--upm-menu-muted);font-size:11px}.upm-section{padding:10px 6px}.upm-section-title,.upm-label{color:var(--upm-menu-muted);text-transform:uppercase;align-items:center;gap:7px;margin-bottom:8px;font-size:11px;font-weight:800;display:flex}.upm-lang-row,.upm-lang-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.upm-lang-row button,.upm-lang-grid button,.upm-action{color:#111827;cursor:pointer;background:#fff;border:1px solid #0f172a1f;border-radius:7px;height:32px;font-size:12px;font-weight:800}.upm-lang-row button:hover,.upm-lang-grid button:hover,.upm-action:hover{background:#f3f4f6}.upm-lang-row button.active,.upm-lang-grid button.active{border-color:var(--upm-accent);background:color-mix(in srgb, var(--upm-accent) 12%, #fff);color:#0f172a}.upm-lang-grid button{justify-content:center;align-items:center;gap:4px;display:inline-flex}.upm-caret{color:var(--upm-muted);transition:transform .16s}.upm-caret.open{transform:rotate(180deg)}.upm-action{justify-content:flex-start;align-items:center;gap:8px;width:100%;padding:0 9px;display:flex}.upm-action.danger{color:#dc2626}.s3-profile-menu{--upm-bg:#ffffff14;--upm-border:1px solid #ffffff24;--upm-color:#eaf8ff;--upm-muted:#9fb6c3;--upm-hover:#ffffff24;--upm-accent:#67e8f9;--upm-radius:14px}.upm-edge{margin-left:auto}.dashboard>.user-profile-menu{z-index:260;color:var(--upm-trigger-color,var(--text-primary,var(--sf-ink,#111827)));display:inline-flex;position:fixed;top:14px;right:16px}.user-profile-menu.compact{z-index:2200;position:relative;top:auto;right:auto}.user-profile-menu .upm-trigger{border:1px solid var(--upm-trigger-border,#94a3b857);background:var(--upm-trigger-bg,#ffffffd6);min-width:36px;height:36px;color:var(--upm-trigger-color,#111827);-webkit-backdrop-filter:blur(16px)saturate(150%);border-radius:999px;gap:8px;max-width:min(220px,100vw - 32px);padding:0 10px 0 6px;box-shadow:0 14px 34px #0f172a29}[data-theme=dark] .user-profile-menu .upm-trigger{background:var(--upm-trigger-bg,#0f172ac7);color:var(--upm-trigger-color,#f8fafc);border-color:var(--upm-trigger-border,#e2e8f02e)}.user-profile-menu.compact .upm-trigger{width:34px;min-width:34px;height:34px;box-shadow:none;border-radius:8px;padding:0}.user-profile-menu .upm-avatar{color:#fff;background:linear-gradient(135deg,#10b981,#3b82f6);border:0;width:26px;height:26px;font-size:12px;font-weight:800}.user-profile-menu .upm-popover{z-index:320;color:#111827;background:#fff;border:1px solid #94a3b842;width:240px}[data-theme=dark] .user-profile-menu .upm-popover{color:#f8fafc;background:#111827;border-color:#e2e8f029}.sf-logout-btn,.sf-config-btn{margin-left:0}.sf-config-popover{z-index:40;overscroll-behavior:contain;width:min(980px,100vw - 44px);max-height:calc(100dvh - 120px);position:absolute;top:100%;right:22px;overflow-y:auto}.sf-config-modal{z-index:50;-webkit-backdrop-filter:blur(2px);background:#0006;justify-content:flex-end;align-items:flex-start;padding:16px;animation:.18s ease-out sf-modal-fade;display:flex;position:fixed;inset:0}.sf-config-modal-inner{flex-direction:column;width:min(980px,100%);max-height:calc(100dvh - 32px);display:flex}.sf-config-modal-inner .sf-config-panel{flex-direction:column;flex:1;min-height:0;padding:0;display:flex}@keyframes sf-modal-fade{0%{opacity:0}to{opacity:1}}@media (width<=768px){.sf-config-modal{background:var(--sf-panel);-webkit-backdrop-filter:none;justify-content:stretch;align-items:stretch;padding:0;animation:none}.sf-config-modal-inner{border-radius:0;width:100%;height:100dvh;max-height:100dvh;animation:.22s ease-out sf-page-in;overflow:hidden}.sf-config-modal-inner .sf-config-panel{height:100%;box-shadow:none;border:0;border-radius:0}@keyframes sf-page-in{0%{transform:translate(100%)}to{transform:translate(0)}}}.mob-config-popover{z-index:200;overscroll-behavior:contain;width:min(440px,100vw - 16px);max-height:calc(100dvh - 80px);margin-top:6px;right:0;overflow-y:auto}.sf-config-panel{background:var(--sf-panel);border:1px solid var(--sf-line);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--sf-ink);border-radius:12px;padding:20px;box-shadow:0 18px 40px #00000040}.sf-config-panel.compact{margin:14px;padding-bottom:86px}.sf-config-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.sf-config-modal-inner .sf-config-head{z-index:3;background:var(--sf-panel);border-bottom:1px solid var(--sf-line);border-radius:12px 12px 0 0;margin:0;padding:16px 20px 12px;position:sticky;top:0}.sf-config-modal-inner .sf-config-body{overscroll-behavior:contain;background:var(--sf-panel);flex-direction:column;flex:1;gap:18px;min-height:0;padding:16px 20px;display:flex;overflow-y:auto}.sf-config-modal-inner .sf-config-actions{z-index:3;padding:12px 20px max(12px, env(safe-area-inset-bottom));background:var(--sf-panel);border-top:1px solid var(--sf-line);border-radius:0 0 12px 12px;margin:0;position:sticky;bottom:0}.sf-config-modal-inner .sf-config-status{margin:0 20px 8px}@media (width<=768px){.sf-config-modal-inner .sf-config-head{padding:max(14px, env(safe-area-inset-top)) 16px 12px;border-radius:0;align-items:center;min-height:56px}.sf-config-modal-inner .sf-config-head strong{font-size:17px;font-weight:700}.sf-config-modal-inner .sf-config-head span{font-size:12px}.sf-config-modal-inner .sf-config-head .sf-icon-btn{width:36px;height:36px}.sf-config-modal-inner .sf-config-body{padding:18px 16px 20px}.sf-config-modal-inner .sf-config-actions{padding:12px 16px max(16px, env(safe-area-inset-bottom));border-radius:0}.sf-config-modal-inner .sf-config-status{margin:0 16px 8px}}.sf-config-body{flex-direction:column;gap:18px;display:flex}.sf-config-section{flex-direction:column;gap:10px;display:flex}.sf-config-section-title{letter-spacing:.12em;text-transform:uppercase;color:var(--sf-ink-3);border-bottom:1px dashed var(--sf-line);padding-bottom:6px;font-size:11px;font-weight:700}.sf-config-head strong{font-size:15px;line-height:1.2;display:block}.chip-badge{text-transform:uppercase;letter-spacing:.5px;color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;display:inline-block}.chip-badge.esp32{color:#4f46e5;background:#eef2ff;border-color:#c7d2fe}.chip-badge.esp32-c3{color:#059669;background:#ecfdf5;border-color:#a7f3d0}.chip-badge.esp32-s3{color:#d97706;background:#fffbeb;border-color:#fde68a}.chip-badge.esp8266{color:#dc2626;background:#fef2f2;border-color:#fecaca}.chip-badge.none{opacity:.5}.sf-config-head span{color:var(--sf-ink-3);margin-top:3px;font-size:12px;display:block}.sf-icon-btn{border:1.5px solid var(--sf-line);width:30px;height:30px;color:var(--sf-ink);cursor:pointer;background:#8080800d;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:inline-flex}.sf-icon-btn:hover{border-color:var(--accent-blue);background:#8080801f}.sf-config-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.sf-config-grid label{min-width:0;color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.05em;gap:5px;font-size:11px;font-weight:700;display:grid}.sf-config-grid input,.sf-config-grid select{border:1.5px solid var(--sf-line);width:100%;min-width:0;height:38px;color:var(--sf-ink);background:#80808014;border-radius:8px;outline:none;padding:0 12px;font-size:13px;transition:border-color .2s}.sf-config-grid input:focus,.sf-config-grid select:focus{border-color:var(--accent-blue)}.sf-config-grid select option{background:var(--sf-panel);color:var(--sf-ink)}.sf-config-actions{gap:8px;margin-top:14px;display:flex}.sf-config-actions button{background:var(--sf-solar);color:#fff;cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;height:36px;padding:0 13px;font-size:12px;font-weight:800;display:inline-flex}.sf-config-actions button.danger{background:#d44728}.sf-config-actions button:disabled{opacity:.6;cursor:wait}.sf-config-status{color:var(--sf-ink-3);background:#8080800d;border-radius:6px;margin-top:12px;padding:8px;font-size:12px;line-height:1.45}@keyframes sf-spin{to{transform:rotate(360deg)}}.sf-config-panel .spin{transform-origin:50%;animation:.9s linear infinite sf-spin}.sf-config-status.loading{color:var(--sf-battery,#c99318);background:#c993181a;align-items:center;gap:8px;display:flex}.sf-config-spinner{border:2px solid;border-top-color:#0000;border-radius:50%;flex:none;width:14px;height:14px;animation:.8s linear infinite sf-spin}.sf-config-spinner.lg{border-width:3px;width:28px;height:28px}.sf-config-body{position:relative}.sf-config-progress-bar{color:var(--sf-battery,#c99318);background:color-mix(in srgb, var(--sf-panel) 76%, transparent);border-radius:6px;align-items:center;gap:8px;margin-bottom:8px;padding:6px 12px;font-size:12px;font-weight:600;display:flex}.sf-config-spinner.sm{border-width:2px;width:12px;height:12px}.sf-config-field.loading input,.sf-config-field.loading select{color:#999;font-style:italic}.sf-config-loading-overlay{z-index:5;color:var(--sf-battery,#c99318);text-align:center;background:#8080801f;background:color-mix(in srgb, var(--sf-panel) 76%, transparent);-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);cursor:progress;border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:center;gap:12px;padding-top:44px;font-size:13px;font-weight:600;display:flex;position:absolute;inset:0}.sf-config-field{gap:6px;display:grid}.sf-config-readonly-value{color:var(--sf-ink,#14181a);border:1px solid var(--sf-line,#e2ddd2);background:#80808012;border-radius:8px;padding:8px 10px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:600}.field-label-row{justify-content:space-between;align-items:center;min-height:18px;display:flex}.field-label-row label{margin:0}.field-push-btn{background:var(--accent-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;animation:.3s cubic-bezier(.34,1.56,.64,1) field-pop;display:flex}@keyframes field-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.field-push-btn:disabled{cursor:wait;background:#64748b}.sf-config-field.changed input,.sf-config-field.changed select{border-color:var(--accent-blue);background:#3b82f60d}.mob-config-popover .sf-config-grid{grid-template-columns:1fr 1fr}.sf-config-modal-inner .sf-config-grid,.sf-config-popover .sf-config-grid,.ed-config-popover .sf-config-grid{grid-template-columns:repeat(4,1fr)}@media (width<=1100px){.sf-config-modal-inner .sf-config-grid,.sf-config-popover .sf-config-grid,.ed-config-popover .sf-config-grid{grid-template-columns:1fr 1fr}}@media (width<=768px){.sf-config-modal-inner .sf-config-grid,.sf-config-popover .sf-config-grid,.ed-config-popover .sf-config-grid{grid-template-columns:1fr}}@media (width<=1334px){.sf-config-grid{grid-template-columns:1fr}.sf-config-actions{grid-template-columns:1fr;display:grid;position:static}.sf-config-actions button{width:100%;height:44px;font-size:13px}.sf-config-actions button svg{flex-shrink:0;width:15px;height:15px}}.sf-mobile .sf-config-panel{background:var(--sf-panel);border:1px solid var(--sf-line);-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--sf-ink);border-radius:12px;margin:0 16px 16px;box-shadow:0 2px 12px #0000000f}.sf-mobile .sf-config-panel.compact{margin:0 16px 16px;padding-bottom:90px}.sf-mobile .sf-config-head strong{color:var(--sf-ink)}.sf-mobile .sf-config-head span{color:var(--sf-ink-3)}.sf-mobile .sf-config-grid label{color:var(--sf-ink-2)}.sf-mobile .sf-config-grid input,.sf-mobile .sf-config-grid select{background:var(--sf-bg);border-color:var(--sf-line);color:var(--sf-ink)}.sf-mobile .sf-config-grid input:focus,.sf-mobile .sf-config-grid select:focus{border-color:var(--accent-blue);background:#fff}.sf-mobile .sf-config-field.changed input,.sf-mobile .sf-config-field.changed select{border-color:var(--accent-blue);background:#3b82f60d}.sf-mobile .sf-config-status{color:var(--sf-ink-3);background:#0000000a}.sf-mobile .sf-icon-btn{border-color:var(--sf-line);background:var(--sf-bg);color:var(--sf-ink-2)}.sf-mobile .sf-icon-btn:hover{background:var(--sf-line)}.demo-banner{background:var(--sf-panel);border:1px solid var(--sf-line);color:var(--sf-ink-2);pointer-events:none;z-index:900;white-space:nowrap;border-radius:20px;align-items:center;gap:8px;padding:8px 16px;font-size:12px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0003}.demo-badge{color:var(--accent-blue);letter-spacing:.04em;background:#3b82f626;border:1px solid #3b82f64d;border-radius:10px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.sf-theme-skin-picker{gap:8px;padding:0 16px 4px;display:flex}.sf-skin-opt{border:1px solid var(--sf-line);color:var(--sf-ink-3);cursor:pointer;background:0 0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;display:flex}.sf-skin-opt:hover{background:var(--sf-line-2);color:var(--sf-ink)}.sf-skin-opt.active{background:rgba(var(--sf-solar-rgb,245 166 35) / .15);color:var(--sf-solar);border-color:var(--sf-solar)}.tsw-btn{border:1px solid var(--sf-line);color:var(--sf-ink-3);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;align-items:center;gap:7px;padding:6px 12px;font-family:inherit;font-size:12.5px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.tsw-btn:hover{background:var(--sf-line-2);color:var(--sf-ink)}.mobile-topbar .tsw-btn{background:var(--topbar-btn-bg,transparent);border:var(--topbar-btn-border,1px solid var(--sf-line));width:34px;height:34px;color:var(--topbar-btn-color,var(--sf-ink-3));justify-content:center;padding:0}.mobile-topbar .tsw-btn:active{background:var(--topbar-btn-active-bg,var(--sf-line))}.mobile-topbar .tsw-btn span{display:none}.mobile-universal-nav{grid-template-columns:unset!important;display:flex!important}.mobile-universal-nav button{flex:1}.mobile-settings-overlay{top:0;left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:90;background:var(--sf-bg,#0e1117);overscroll-behavior:contain;flex-direction:column;animation:.22s ease-out mob-settings-in;display:flex;position:fixed;overflow-y:auto}@keyframes mob-settings-in{0%{transform:translate(100%)}to{transform:translate(0)}}.mobile-settings-overlay .sf-mobile{height:100%}.mobile-settings-overlay .sf-config-panel,.mobile-settings-overlay .sf-config-panel.compact{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;margin:0;padding:0 0 24px}.mobile-settings-overlay .sf-config-head{justify-content:flex-end;padding:8px 16px 0}.mobile-settings-overlay .sf-config-head>div:first-child{display:none}.mobile-settings-overlay .sf-config-body{gap:12px;padding:12px 16px}.mobile-settings-overlay .sf-config-section{background:var(--sf-panel);border:1px solid var(--sf-line);border-radius:14px;gap:12px;padding:14px}.mobile-settings-overlay .sf-config-section-title{letter-spacing:.04em;text-transform:uppercase;color:var(--sf-ink-3);font-size:12px;font-weight:700}.mobile-settings-overlay .sf-config-status{margin:8px 16px 0}.mobile-settings-overlay .sf-config-loading-overlay{inset:0;bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:95;position:fixed}.tsw-popover{z-index:99999;background:var(--sf-panel);border:1px solid var(--sf-line);border-radius:14px;min-width:328px;padding:12px;position:fixed;box-shadow:0 16px 48px #0003,0 2px 8px #0000001f}.tsw-label{color:var(--sf-ink-3);text-transform:uppercase;letter-spacing:.08em;padding:0 2px 8px;font-size:10px;font-weight:700}.tsw-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.tsw-card{border:1.5px solid var(--sf-line);cursor:pointer;text-align:center;background:0 0;border-radius:8px;flex-direction:column;align-items:stretch;gap:5px;padding:6px;font-family:inherit;transition:border-color .12s,background .12s;display:flex;position:relative}.tsw-card:hover{border-color:var(--tsw-color);background:color-mix(in srgb, var(--tsw-color) 6%, transparent)}.tsw-card.active{border-color:var(--tsw-color);background:color-mix(in srgb, var(--tsw-color) 10%, transparent)}.tsw-thumb{background:color-mix(in srgb, var(--tsw-color) 5%, var(--sf-bg));border-radius:5px;line-height:0;overflow:hidden}.tsw-card-name{color:var(--sf-ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-weight:600;overflow:hidden}.tsw-card.active .tsw-card-name{color:var(--tsw-color)}.tsw-badge{background:var(--tsw-color);border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;display:flex;position:absolute;top:4px;right:4px}.dbg-modal-overlay{z-index:1000;background:#000000a6;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dbg-modal-panel{flex-direction:column;width:100%;max-width:900px;height:80vh;display:flex}.dbg-modal-panel .dbg-terminal{flex:1;min-height:0}.dbg-modal-panel .dbg-output{flex:1;min-height:0;max-height:none}.dbg-terminal{background:#0d1117;border:1px solid #ffffff14;border-radius:8px;flex-direction:column;font-family:JetBrains Mono,Fira Mono,ui-monospace,monospace;font-size:12px;display:flex;overflow:hidden}.dbg-header{color:#8b949e;letter-spacing:.02em;background:#ffffff0a;border-bottom:1px solid #ffffff0f;align-items:center;gap:8px;padding:8px 12px;font-size:11px;font-weight:600;display:flex}.dbg-header span{color:#c9d1d9}.dbg-btn-ghost{color:#8b949e;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:2px 6px;font-size:11px;display:flex}.dbg-btn-ghost:hover{color:#c9d1d9;background:#ffffff14}.dbg-output{flex:1;min-height:160px;max-height:280px;padding:8px 0;overflow-y:auto}.dbg-line{align-items:flex-start;gap:8px;padding:2px 12px;line-height:1.5;display:flex}.dbg-line:hover{background:#ffffff08}.dbg-ts{color:#484f58;min-width:72px}.dbg-arrow{min-width:14px}.dbg-text{color:#8b949e;white-space:pre-wrap;word-break:break-all;flex:1}.dbg-cmd .dbg-arrow{color:#58a6ff}.dbg-cmd .dbg-text{color:#c9d1d9}.dbg-cmd .dbg-waiting{color:#484f58;font-style:italic}.dbg-ok .dbg-arrow,.dbg-ok .dbg-text{color:#3fb950}.dbg-err .dbg-arrow,.dbg-err .dbg-text{color:#f85149}.dbg-info .dbg-arrow,.dbg-info .dbg-text{color:#484f58}.dbg-input-row{background:#ffffff05;border-top:1px solid #ffffff0f;align-items:center;gap:6px;padding:8px 12px;display:flex}.dbg-label{color:#484f58;white-space:nowrap;font-size:11px}.dbg-select,.dbg-input-num{color:#c9d1d9;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:4px;outline:none;padding:4px 6px;font-family:inherit;font-size:12px}.dbg-select{min-width:56px}.dbg-input-num{width:60px}.dbg-select:focus,.dbg-input-num:focus{border-color:#58a6ff}.dbg-form{border-top:1px solid #ffffff0f;flex-direction:column;display:flex}.dbg-form .dbg-input-row{border-top:1px solid #ffffff0a}.dbg-field-row{background:#ffffff05;align-items:center;gap:6px;padding:6px 12px;display:flex}.dbg-field-dropdown{flex:1;position:relative}.dbg-field-btn{color:#e6edf3;cursor:pointer;text-align:left;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:3px;justify-content:space-between;align-items:center;width:100%;padding:4px 8px;font-family:inherit;font-size:12px;display:flex}.dbg-field-btn:hover{border-color:#fff3}.dbg-field-btn-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.dbg-field-btn-arrow{color:#484f58;margin-left:6px;font-size:9px}.dbg-field-popover{z-index:200;background:#1c2128;border:1px solid #ffffff26;border-radius:4px;flex-direction:column;max-height:480px;display:flex;position:absolute;bottom:calc(100% + 2px);left:0;right:0}.dbg-field-search{color:#e6edf3;background:#ffffff0a;border:none;border-bottom:1px solid #ffffff1a;border-radius:4px 4px 0 0;outline:none;padding:6px 8px;font-family:inherit;font-size:12px}.dbg-field-search::placeholder{color:#484f58}.dbg-field-list{flex:1;overflow-y:auto}.dbg-field-group{color:#484f58;text-transform:uppercase;letter-spacing:.05em;pointer-events:none;padding:6px 8px 2px;font-size:10px}.dbg-field-option{color:#8b949e;cursor:pointer;padding:5px 12px;font-size:12px}.dbg-field-option:hover{color:#e6edf3;background:#ffffff0f}.dbg-field-option.selected{color:#58a6ff}.dbg-field-empty{color:#484f58;text-align:center;padding:8px;font-size:12px}.dbg-decoded{align-items:baseline;gap:6px;padding:3px 0 4px;display:flex}.dbg-field-label{color:#8b949e;font-size:11px}.dbg-field-value{color:#79c0ff;font-size:13px}.dbg-field-unit{color:#8b949e;font-size:11px}.dbg-regs{margin:2px 0 0}.dbg-btn-send{color:#fff;cursor:pointer;background:#238636;border:1px solid #ffffff1a;border-radius:4px;margin-left:auto;padding:4px 12px;font-family:inherit;font-size:12px;font-weight:600}.dbg-btn-send:hover:not(:disabled){background:#2ea043}.dbg-btn-send:disabled{opacity:.4;cursor:not-allowed}.eps-tag{letter-spacing:.06em;color:#fff;vertical-align:middle;text-transform:uppercase;white-space:nowrap;background:#f59e0b;border-radius:5px;align-items:center;margin-left:6px;padding:1px 6px;font-size:9px;font-weight:800;line-height:1.4;display:inline-flex;box-shadow:0 0 0 1px #f59e0b55}.grid-lost-banner{background:#ef44441a;border:1px solid #ef444466;border-radius:12px;flex:none;align-items:center;gap:10px;width:100%;max-width:1120px;margin:0 auto;padding:10px 14px;display:flex}.grid-lost-banner .glb-icon{color:#ef4444;flex:none}.grid-lost-banner .glb-text{flex-direction:column;gap:1px;min-width:0;display:flex}.grid-lost-banner .glb-text b{color:#ef4444;letter-spacing:.02em;font-size:13px;font-weight:800}.grid-lost-banner .glb-text span{opacity:.85;font-size:12px}.fault-warning-overlay{z-index:60;pointer-events:none;width:min(560px,100% - 24px);position:absolute;top:10px;left:50%;transform:translate(-50%)}.fault-warning-overlay>*{pointer-events:auto}.fault-warning-overlay.collapsed{width:auto;left:10px;transform:none}.fault-warning-banner{background:#fff7ed;border:1px solid #f59e0b66;border-radius:12px;width:100%;animation:.18s fwb-pop;overflow:hidden;box-shadow:0 12px 30px #0000002e}[data-theme=dark] .fault-warning-banner{background:#1f2937}.fault-warning-banner.has-fault{background:#fef2f2;border-color:#ef444466}[data-theme=dark] .fault-warning-banner.has-fault{background:#2a1518}@keyframes fwb-pop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.fwb-pill{color:#b45309;font:inherit;cursor:pointer;background:#fff7ed;border:1px solid #f59e0b66;border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:13px;font-weight:700;animation:.18s fwb-pop;display:inline-flex;box-shadow:0 6px 18px #00000029}.fwb-pill b{font-weight:800}.fault-warning-overlay.has-fault .fwb-pill{color:#ef4444;background:#fef2f2;border-color:#ef444466}[data-theme=dark] .fwb-pill{color:#fbbf24;background:#1f2937}[data-theme=dark] .fault-warning-overlay.has-fault .fwb-pill{color:#f87171;background:#2a1518}.fwb-head{cursor:pointer;width:100%;color:inherit;font:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;display:flex}.fwb-icon.fault{color:#ef4444}.fwb-icon.warn{color:#f59e0b}.fwb-title{flex:1;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.fault-warning-banner.has-fault .fwb-title{color:#ef4444}.fault-warning-banner:not(.has-fault) .fwb-title{color:#b45309}[data-theme=dark] .fault-warning-banner:not(.has-fault) .fwb-title{color:#fbbf24}.fwb-count{color:#fff;background:#ef4444;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:800;display:inline-flex}.fault-warning-banner:not(.has-fault) .fwb-count{background:#f59e0b}.fwb-body{flex-direction:column;gap:8px;padding:0 12px 10px;display:flex}.fwb-row{align-items:flex-start;gap:10px;display:flex}.fwb-row-label{text-transform:uppercase;letter-spacing:.04em;opacity:.75;flex:none;min-width:70px;padding-top:4px;font-size:11px;font-weight:700}.fwb-row.fault .fwb-row-label{color:#ef4444}.fwb-row.warn .fwb-row-label{color:#b45309}[data-theme=dark] .fwb-row.warn .fwb-row-label{color:#fbbf24}.fwb-chips{flex-wrap:wrap;gap:6px;display:flex}.fwb-chip{color:#1f2937;background:#fff;border:1px solid #00000014;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;line-height:1.4;display:inline-flex}[data-theme=dark] .fwb-chip{color:#e5e7eb;background:#1f2937;border-color:#ffffff1f}.fwb-row.fault .fwb-chip b{color:#ef4444}.fwb-row.warn .fwb-chip b{color:#d97706}[data-theme=dark] .fwb-row.warn .fwb-chip b{color:#fbbf24}@media (width<=860px){.fault-warning-banner{border-radius:10px;margin:0 0 8px}.fwb-row{flex-direction:column;gap:4px}.fwb-row-label{padding-top:0}}.forecast-card{box-sizing:border-box;border:1px solid var(--sf-line,#e2ddd2);background:var(--sf-panel,#fff);width:100%;color:var(--sf-ink,#14181a);font:inherit;border-radius:12px;margin:0;padding:12px 16px}html[data-skin=solar] .forecast-card,html[data-skin=energy] .forecast-card{border-radius:4px}html[data-skin=aurora][data-theme=dark] .forecast-card{--sf-panel:#161e3acc;--sf-line:#7896dc3d;--sf-ink:#e8edff;--sf-solar:#22d3ee}html[data-skin=aurora][data-theme=light] .forecast-card{--sf-panel:#ffffffeb;--sf-line:#3c508c29;--sf-ink:#0d1430;--sf-solar:#0891b2}html[data-skin=helios][data-theme=dark] .forecast-card{--sf-panel:#0d1218;--sf-line:#1b2532;--sf-ink:#e0e8f0;--sf-solar:#22d3ee}html[data-skin=helios][data-theme=light] .forecast-card{--sf-panel:#fff;--sf-line:#dde3ed;--sf-ink:#0a141c;--sf-solar:#0891b2}html[data-skin=sundial][data-theme=dark] .forecast-card{--sf-panel:#161a34cc;--sf-line:#8ca0dc3d;--sf-ink:#f1f3ff;--sf-solar:#22d3ee}html[data-skin=sundial][data-theme=light] .forecast-card{--sf-panel:#fffdf7f0;--sf-line:#1f1c1229;--sf-ink:#0f0e1a;--sf-solar:#0891b2}html[data-skin=verdant] .forecast-card,html[data-skin=solar3d] .forecast-card{--sf-panel:#0f141cd6;--sf-line:#ffffff29;--sf-ink:#eef3f8;--sf-solar:#22d3ee}.workspace.has-forecast .powerflow-shell{flex:0 auto}@media (width<=767px){.workspace.has-forecast .powerflow-shell>div{height:auto!important;min-height:0!important;padding-bottom:0!important;overflow:visible!important}}.forecast-head{align-items:center;gap:7px;margin-bottom:10px;display:flex}.forecast-ic{color:var(--sf-solar,#38a34b);flex:none}.forecast-title{text-transform:uppercase;letter-spacing:.04em;opacity:.8;font-size:12px;font-weight:700}.forecast-detail{font:inherit;color:var(--sf-solar,#38a34b);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:2px 4px;font-size:11px;font-weight:600}.forecast-detail:hover{text-decoration:underline}.forecast-body{align-items:center;gap:20px;display:flex}.forecast-stats{flex-direction:column;flex:none;gap:10px;min-width:116px;display:flex}.fc-stat{flex-direction:column;gap:1px;display:flex}.fc-stat-label{opacity:.6;font-size:11px}.fc-stat-val{font-size:24px;font-weight:800;line-height:1.05}.fc-stat-val.sm{font-size:17px;font-weight:700}.fc-stat-val small{opacity:.6;margin-left:3px;font-size:12px;font-weight:600}.fc-ach{color:var(--sf-solar,#38a34b);font-size:11px;font-weight:600}.forecast-chart-area{flex:1;min-width:0}.forecast-chart-top{align-items:center;gap:8px;margin-bottom:6px;display:flex}.fc-legend{gap:8px;display:flex}.fc-leg{font:inherit;border:1px solid var(--sf-line,#e2ddd2);color:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.fc-leg.off{opacity:.42;text-decoration:line-through}.fc-dot{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.fc-chart{width:100%;position:relative}.fc-plot{width:100%;height:132px;position:relative}.fc-line{width:100%;height:100%;display:block}.fc-axis{stroke:var(--sf-line,#e2ddd2);stroke-width:1px}.fc-series{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.fc-now{stroke:#9ca3af;stroke-width:1px;stroke-dasharray:3 3}.fc-cross{pointer-events:none;border-left:1px dashed #9ca3af;width:0;position:absolute;top:0;bottom:0;transform:translate(-.5px)}.fc-hdot{border:1.5px solid var(--sf-panel,#fff);pointer-events:none;z-index:2;border-radius:50%;width:8px;height:8px;position:absolute;transform:translate(-50%,-50%)}.fc-tip{color:#fff;white-space:nowrap;pointer-events:none;z-index:3;background:#1f2530;border-radius:8px;max-width:220px;padding:6px 9px;font-size:11px;line-height:1.5;position:absolute;top:2px;transform:translate(-50%);box-shadow:0 4px 14px #00000038}.fc-tip-h{opacity:.85;margin-bottom:2px;font-weight:700}.fc-tip-row{align-items:center;gap:6px;display:flex}.fc-tip-row i{border-radius:50%;flex:none;width:8px;height:8px}.fc-tip-row b{font-variant-numeric:tabular-nums;margin-left:auto;padding-left:12px}.fc-xaxis{opacity:.5;height:13px;margin-top:3px;font-size:10px;position:relative}.fc-xaxis span{white-space:nowrap;position:absolute;top:0}.forecast-chart-panel .forecast-chart-legend{align-items:center;gap:12px;font-size:11px;font-weight:600;display:flex}.forecast-chart-legend .fc-legend-item{align-items:center;gap:5px;display:inline-flex}.forecast-chart-legend .fc-dot{border-radius:50%;width:9px;height:9px;display:inline-block}@media (width<=860px){.forecast-card{border-radius:10px;padding:11px 12px}.forecast-body{flex-direction:column;align-items:stretch;gap:10px}.forecast-stats{flex-flow:wrap;gap:18px 24px;min-width:0}.forecast-chart-area{min-width:0}.forecast-chart-top,.fc-legend{flex-wrap:wrap}.fc-stat-val{font-size:20px}.fc-plot{height:108px}}@media (width<=767px){.forecast-card:last-child{margin-bottom:calc(58px + 18px + env(safe-area-inset-bottom,0px))}}.savings-card{box-sizing:border-box;border:1px solid var(--sf-line,#e2ddd2);background:var(--sf-panel,#fff);width:100%;color:var(--sf-ink,#14181a);font:inherit;border-radius:12px;margin:0;padding:12px 16px}html[data-skin=solar] .savings-card,html[data-skin=energy] .savings-card{border-radius:4px}html[data-skin=aurora][data-theme=dark] .savings-card{--sf-panel:#161e3acc;--sf-line:#7896dc3d;--sf-ink:#e8edff;--sf-solar:#22d3ee}html[data-skin=aurora][data-theme=light] .savings-card{--sf-panel:#ffffffeb;--sf-line:#3c508c29;--sf-ink:#0d1430;--sf-solar:#0891b2}html[data-skin=helios][data-theme=dark] .savings-card{--sf-panel:#0d1218;--sf-line:#1b2532;--sf-ink:#e0e8f0;--sf-solar:#22d3ee}html[data-skin=helios][data-theme=light] .savings-card{--sf-panel:#fff;--sf-line:#dde3ed;--sf-ink:#0a141c;--sf-solar:#0891b2}html[data-skin=sundial][data-theme=dark] .savings-card{--sf-panel:#161a34cc;--sf-line:#8ca0dc3d;--sf-ink:#f1f3ff;--sf-solar:#22d3ee}html[data-skin=sundial][data-theme=light] .savings-card{--sf-panel:#fffdf7f0;--sf-line:#1f1c1229;--sf-ink:#0f0e1a;--sf-solar:#0891b2}html[data-skin=verdant] .savings-card,html[data-skin=solar3d] .savings-card{--sf-panel:#0f141cd6;--sf-line:#ffffff29;--sf-ink:#eef3f8;--sf-solar:#22d3ee}.savings-head{align-items:center;gap:7px;margin-bottom:10px;display:flex}.savings-ic{color:var(--sf-solar,#38a34b);flex:none}.savings-title{text-transform:uppercase;letter-spacing:.04em;opacity:.8;font-size:12px;font-weight:700}.savings-cta-text{opacity:.7;font-size:12px}.savings-body{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.savings-stats{flex-wrap:wrap;gap:18px 26px;display:flex}.sv-stat{flex-direction:column;gap:1px;display:flex}.sv-stat-label{opacity:.6;font-size:11px}.sv-stat-val{font-size:22px;font-weight:800;line-height:1.05}.sv-stat-val.sm{font-size:16px;font-weight:700}.savings-roi{flex-direction:column;align-items:flex-end;gap:1px;margin-left:auto;display:flex}.sv-roi-main{color:var(--sf-solar,#38a34b);font-size:13px;font-weight:700}.sv-roi-sub{opacity:.6;font-size:11px}.savings-history{border-top:1px solid var(--sf-line,#e2ddd2);margin-top:14px;padding-top:12px}.savings-history-head{opacity:.72;justify-content:space-between;gap:12px;font-size:11px;font-weight:700;display:flex}.savings-year-nav{justify-content:flex-end;align-items:center;gap:5px;min-width:92px;display:flex}.savings-year-nav button{border:1px solid var(--sf-line,#e2ddd2);width:24px;height:24px;color:inherit;cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex}.savings-year-nav button:hover:not(:disabled){background:color-mix(in srgb, var(--sf-solar,#38a34b) 12%, transparent);color:var(--sf-solar,#38a34b)}.savings-year-nav button:disabled{opacity:.3;cursor:default}.savings-year-nav span{text-align:center;font-variant-numeric:tabular-nums;min-width:34px}.savings-chart{transition:opacity .15s}.savings-chart.loading{opacity:.45;pointer-events:none}.savings-chart{width:100%;height:180px;color:var(--sf-ink,#14181a);margin-top:5px}.savings-chart-loading{opacity:.6;place-items:center;height:180px;font-size:11px;display:grid}.savings-chart .recharts-default-tooltip{font-size:11px;background:var(--sf-panel,#fff)!important;border-color:var(--sf-line,#e2ddd2)!important;color:var(--sf-ink,#14181a)!important}@media (width<=860px){.savings-card{border-radius:10px;padding:11px 12px}.savings-roi{align-items:flex-start;margin-left:0}.savings-chart{height:165px}}@media (width<=767px){.savings-card{margin-bottom:calc(58px + 18px + env(safe-area-inset-bottom,0px))}}.workspace-cards-row{align-items:stretch;gap:1rem;display:flex}.workspace-cards-row:empty{display:none}.workspace-cards-row>.forecast-card{flex:2 1 0;min-width:0}.workspace-cards-row>.savings-card{flex-direction:column;flex:1 1 0;min-width:0;display:flex}.workspace-cards-row>.savings-card .savings-body{flex:1;align-content:center}@media (width<=900px){.workspace-cards-row{flex-direction:column}.workspace-cards-row>.forecast-card,.workspace-cards-row>.savings-card{flex:auto}}.notif-fab{z-index:1150;color:#fff;cursor:pointer;background:#1f2937;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .15s;display:inline-flex;position:fixed;bottom:84px;right:18px;box-shadow:0 4px 14px #0000002e}.notif-fab:hover{transform:translateY(-2px)}.notif-fab.raised{bottom:148px}.notif-panel.raised{bottom:212px}.notif-badge{color:#fff;background:#ef4444;border:2px solid #fff;border-radius:10px;justify-content:center;align-items:center;min-width:19px;height:19px;padding:0 5px;font-size:11px;font-weight:800;display:inline-flex;position:absolute;top:-3px;right:-3px}.notif-panel{z-index:1151;width:min(360px,100vw - 32px);max-height:min(480px,100dvh - 180px);color:inherit;background:#fff;border:1px solid #00000018;border-radius:14px;flex-direction:column;display:flex;position:fixed;bottom:148px;right:18px;overflow:hidden;box-shadow:0 12px 36px #00000038}[data-theme=dark] .notif-panel{color:#e5e7eb;background:#111827;border-color:#ffffff1f}.notif-panel-head{border-bottom:1px solid #00000012;justify-content:space-between;align-items:center;padding:10px 14px;font-size:14px;font-weight:800;display:flex}[data-theme=dark] .notif-panel-head{border-color:#ffffff14}.notif-close{cursor:pointer;color:inherit;opacity:.6;background:0 0;border:none;padding:4px;display:inline-flex}.notif-close:hover{opacity:1}.notif-list{overflow-y:auto}.notif-empty{text-align:center;opacity:.6;padding:26px 14px;font-size:13px}.notif-row{border-bottom:1px solid #0000000d;align-items:flex-start;gap:9px;padding:10px 14px;display:flex}[data-theme=dark] .notif-row{border-color:#ffffff0d}.notif-row.unread{background:#3b82f60d}.notif-ic{flex:none;margin-top:2px}.notif-ic.fault{color:#ef4444}.notif-ic.warn{color:#f59e0b}.notif-ic.info{color:#3b82f6}.notif-ic.ok{color:#22c55e}.notif-row-main{flex:1;min-width:0}.notif-row-title{flex-wrap:wrap;gap:6px;font-size:13px;line-height:1.45;display:flex}.notif-row-title b{flex:none}.notif-row.unread .notif-row-title,.notif-toast .notif-row-title{font-weight:600}.notif-row-meta{opacity:.55;margin-top:2px;font-size:11px}.notif-dot{background:#3b82f6;border-radius:50%;flex:none;width:8px;height:8px;margin-top:6px}.notif-charge-actions{gap:8px;margin-top:8px;display:flex}.notif-charge-btn{cursor:pointer;border:1px solid #0000;border-radius:7px;padding:5px 12px;font-size:12px;font-weight:600}.notif-charge-btn.yes{color:#fff;background:#16a34a}.notif-charge-btn.no{color:#6b7280;background:0 0;border-color:#d1d5db}.notif-charge-btn:disabled{opacity:.5;cursor:default}.notif-charge-done{color:#16a34a;margin-top:6px;font-size:12px}.notif-charge-done.err{color:#dc2626}.schedule-fab{z-index:1150;color:#fff;cursor:pointer;background:#0f766e;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .15s;display:inline-flex;position:fixed;bottom:84px;left:18px;box-shadow:0 4px 14px #0000002e}.schedule-fab:hover{transform:translateY(-2px)}.schedule-badge{color:#fff;background:#f59e0b;border:2px solid #fff;border-radius:10px;justify-content:center;align-items:center;min-width:19px;height:19px;padding:0 5px;font-size:11px;font-weight:800;display:inline-flex;position:absolute;top:-3px;right:-3px}.schedule-panel{z-index:1151;width:min(380px,100vw - 32px);max-height:min(480px,100dvh - 180px);color:inherit;background:#fff;border:1px solid #00000018;border-radius:14px;flex-direction:column;display:flex;position:fixed;bottom:148px;left:18px;overflow:hidden;box-shadow:0 12px 36px #00000038}[data-theme=dark] .schedule-panel{color:#e5e7eb;background:#111827;border-color:#ffffff1f}.schedule-panel-head{border-bottom:1px solid #00000012;justify-content:space-between;align-items:center;padding:10px 14px;font-size:14px;font-weight:800;display:flex}[data-theme=dark] .schedule-panel-head{border-color:#ffffff14}.schedule-close{cursor:pointer;color:inherit;opacity:.6;background:0 0;border:none;padding:4px;display:inline-flex}.schedule-close:hover{opacity:1}.schedule-list{overflow-y:auto}.schedule-empty{text-align:center;opacity:.6;padding:26px 14px;font-size:13px}.schedule-row{border-bottom:1px solid #0000000d;align-items:flex-start;gap:9px;padding:10px 14px;display:flex}[data-theme=dark] .schedule-row{border-color:#ffffff0d}.schedule-ic{flex:none;margin-top:2px}.schedule-ic.charge{color:#16a34a}.schedule-ic.disch{color:#c2410c}.schedule-row-main{flex:1;min-width:0}.schedule-row-title{font-size:13px;font-weight:600;line-height:1.4}.schedule-row-meta{opacity:.6;margin-top:2px;font-size:11px}.schedule-cancel{color:#dc2626;cursor:pointer;background:0 0;border:1px solid #d1d5db;border-radius:7px;flex:none;align-self:center;padding:5px 12px;font-size:12px;font-weight:600}.schedule-cancel:disabled{opacity:.5;cursor:default}@media (width<=767px){.schedule-fab{left:14px;bottom:calc(58px + 16px + env(safe-area-inset-bottom,0px))}.schedule-panel{left:14px;bottom:calc(58px + 80px + env(safe-area-inset-bottom,0px))}}.notif-toasts{z-index:1300;flex-direction:column;gap:8px;width:min(340px,100vw - 28px);display:flex;position:fixed;top:14px;right:14px}.notif-toast{color:inherit;background:#fff;border:1px solid #f59e0b66;border-left:4px solid #f59e0b;border-radius:12px;align-items:flex-start;gap:9px;padding:10px 12px;animation:.25s notif-slide-in;display:flex;box-shadow:0 8px 24px #0003}.notif-toast.fault{border-color:#ef444466 #ef444466 #ef444466 #ef4444}[data-theme=dark] .notif-toast{color:#e5e7eb;background:#111827}@keyframes notif-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@media (width<=860px){.notif-fab{right:14px;bottom:calc(58px + 16px + 62px + env(safe-area-inset-bottom,0px))}.notif-panel{right:14px;bottom:calc(58px + 16px + 124px + env(safe-area-inset-bottom,0px))}.notif-toasts{top:calc(env(safe-area-inset-top,0px) + 60px)}.notif-fab.raised{bottom:calc(58px + 144px + env(safe-area-inset-bottom,0px))}.notif-panel.raised{bottom:calc(58px + 206px + env(safe-area-inset-bottom,0px))}}.system-notice-stack{flex-direction:column;flex:none;gap:8px;width:100%;max-width:1120px;margin:0 auto;display:flex}.system-notice-banner{color:#172554;background:#eff6ff;border:1px solid #2563eb55;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex;box-shadow:0 10px 24px #0f172a1f}.system-notice-banner.maintenance{color:#2e1065;background:#f5f3ff;border-color:#7c3aed55}.system-notice-banner.important{color:#083344;background:#ecfeff;border-color:#0891b255}[data-theme=dark] .system-notice-banner{color:#dbeafe;background:#13223a;border-color:#60a5fa66}[data-theme=dark] .system-notice-banner.maintenance{color:#ede9fe;background:#24163c;border-color:#a78bfa66}[data-theme=dark] .system-notice-banner.important{color:#cffafe;background:#102f35;border-color:#22d3ee66}.snb-icon{color:#2563eb;flex:none;margin-top:2px}.system-notice-banner.maintenance .snb-icon{color:#7c3aed}.system-notice-banner.important .snb-icon{color:#0891b2}.snb-content{flex-direction:column;gap:2px;min-width:0;display:flex}.snb-kicker{text-transform:uppercase;letter-spacing:.06em;opacity:.72;font-size:10px;font-weight:800}.snb-content strong{font-size:13px;font-weight:800;line-height:1.25}.snb-content span{opacity:.9;overflow-wrap:anywhere;font-size:12px;line-height:1.45}.snb-close{width:26px;height:26px;color:inherit;opacity:.65;cursor:pointer;background:0 0;border:1px solid;border-radius:8px;flex:none;place-items:center;margin-left:auto;display:inline-grid}.snb-close:hover{opacity:1;background:#ffffff61}.notice-level,.notice-status{color:#374151;white-space:nowrap;background:#f9fafb;border:1px solid #d1d5db;border-radius:999px;align-items:center;padding:3px 8px;font-size:11px;font-weight:800;display:inline-flex}.notice-level.info{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.notice-level.maintenance{color:#6d28d9;background:#f5f3ff;border-color:#ddd6fe}.notice-level.important{color:#0e7490;background:#ecfeff;border-color:#a5f3fc}.notice-status.live{color:#15803d;background:#dcfce7;border-color:#bbf7d0}.notice-status.scheduled{color:#92400e;background:#fef3c7;border-color:#fde68a}.notice-status.off{color:#6b7280;background:#f3f4f6;border-color:#e5e7eb}.demo-readonly-settings{margin:12px}.demo-config-btn{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.demo-config-modal{width:min(960px,100vw - 32px);max-height:min(760px,100vh - 48px);overflow:auto}.demo-config-modal .demo-readonly-settings{margin:0}.cpw-backdrop,.fpw-backdrop{-webkit-backdrop-filter:blur(6px);background:#070a108c;place-items:center;padding:24px;z-index:999999!important;display:grid!important;position:fixed!important;inset:0!important}.cpw-modal,.fpw-modal{color:#14181a;background:#fff;border:1px solid #e2ddd2;border-radius:12px;width:min(420px,100%);max-height:min(720px,100vh - 48px);overflow:auto;box-shadow:0 24px 90px #00000073}[data-theme=dark] .cpw-modal,[data-theme=dark] .fpw-modal{color:#f8fafc;background:#111827;border-color:#e2e8f029}.cpw-head,.fpw-head{border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;display:flex}.cpw-head h3,.fpw-head h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.cpw-close,.fpw-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.cpw-close:hover,.fpw-close:hover{color:var(--text-primary)}.cpw-body,.fpw-body{flex-direction:column;gap:14px;padding:18px;display:flex}.cpw-label,.fpw-label,.rpw-label{color:var(--text-secondary);margin-bottom:6px;font-size:13px}.cpw-body input,.fpw-body input,.rpw-card input{color:#0f172a;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:14px}[data-theme=dark] .cpw-body input,[data-theme=dark] .fpw-body input,[data-theme=dark] .rpw-card input{color:#f8fafc;background:#ffffff0f;border-color:#e2e8f02e}.cpw-body input:focus,.fpw-body input:focus,.rpw-card input:focus{border-color:var(--accent-blue,#3b82f6);box-shadow:0 0 0 2px #3b82f640}.cpw-err,.fpw-err,.rpw-err{color:#fca5a5;background:#ef444429;border:1px solid #ef444466;border-radius:8px;padding:9px 12px;font-size:13px}.cpw-msg,.fpw-msg,.rpw-msg{color:#6ee7b7;background:#10b98129;border:1px solid #10b98166;border-radius:8px;padding:9px 12px;font-size:13px}.fpw-hint,.rpw-hint{color:var(--text-secondary);margin:0;font-size:13px}.cpw-foot,.fpw-foot{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.cpw-btn-ghost,.fpw-btn-ghost,.rpw-btn{border:1px solid var(--card-border);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:8px;padding:9px 16px;font-size:14px}.cpw-btn-primary,.fpw-btn-primary{background:var(--accent-blue);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 16px;font-size:14px}.cpw-btn-ghost:disabled,.fpw-btn-ghost:disabled,.cpw-btn-primary:disabled,.fpw-btn-primary:disabled,.rpw-btn:disabled{opacity:.55;cursor:not-allowed}.rpw-page{background:var(--bg-gradient);place-items:center;min-height:100vh;padding:24px;display:grid}.rpw-card{color:#14181a;background:#fff;border:1px solid #e2ddd2;border-radius:12px;flex-direction:column;gap:14px;width:min(420px,100%);padding:24px;display:flex;box-shadow:0 24px 90px #00000073}[data-theme=dark] .rpw-card{color:#f8fafc;background:#111827;border-color:#e2e8f029}.rpw-card h2{color:inherit;margin:0 0 4px;font-size:18px}.rpw-card form{flex-direction:column;gap:14px;display:flex}
