@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: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,d09GRgABAAAAAAbUAA8AAAAACOgAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABgAAAAcABQABEdQT1MAAAFwAAAAHgAAAB5EdEx1R1NVQgAAAZAAAAAnAAAAKLj8uOpPUy8yAAABuAAAAFEAAABgFwRca1NUQVQAAAIMAAAARgAAAF7mY9MfY21hcAAAAlQAAABRAAAAdAyHCodnYXNwAAACqAAAAAgAAAAIAAAAEGdseWYAAAKwAAAB6QAAAl7g5OpvaGVhZAAABJwAAAA2AAAANhSQ8UNoaGVhAAAE1AAAAB8AAAAkAcoBImhtdHgAAAT0AAAAHgAAADofBAM2bG9jYQAABRQAAAAgAAAAIATcBZ9tYXhwAAAFNAAAABwAAAAgAIcCb25hbWUAAAVQAAABEgAAAoA4pV3kcG9zdAAABmQAAABwAAAAlNdzMTB42mNgZGBg4GGAAEYgZAWTjCAeAAG0ABkAAQAAAAoAHAAcAAFERkxUAAgABAAAAAD//wAAAAAAAHjaY2BkYGDgYlADQiYXN58QBqGcxJI8Bj4GEGABEf//g0gAWkkFVQB42mNgYYpinMDAysDA1MUUwcDA4A2hGeMYjBgdgKIMDJwMUMDEzoAEvJyAxAEGXpaXzH/+XWFgYP7DqKPAwDj//nWgSjWmW0BZBQZWABNDDdYAAAB42kXIIQIBARQFwHl/QQIkWXInUAANXMOBJCcTd+KIGCjMNViq9/H0CM6P/S0j0bOwUqh08iEb8kPTXn3RiMoYhD90Nwc3AAB42lXIRwHCQBAF0JceehWAlTjhjikUgAVQA4mJLbdk5neUqHBVKWSv3XF2VCnt3AyevkVZv+sxBBbbq/6HfFP4hEcYQgEK82v1aHQ5RTs3FRQAAAAAAQAB//8AD3jabZA1tNRAFEDfTGDdfXHI2QQnZJJvK5ngDs13Welwt/78CtcS7xvcrcHKbXCtceh+wgtu437nXRCgC4BY9AGOXOAFYNHR0dzoKCGju8gJ6xiZaF3DWqcPBiSV5i2geaCgAlAJ77ghgjfiLC7KojvOZEmSXS63emXr5W7lsTLtXFMkRmks4ly+cYOEnvO2YLDNANv+9oJwhkpAAJAcHPG/1RC2BERc1ZGGMxYVWDyVSjc0NMaZELUf9e4JhCgNB3b2PiJRctuqZ0WPR8zilxutN/ji97vUBYMAnGjtzxjtK3wrDaMABo+R9KjWwNRUMppwuWS1QdfFZCIlMF2TxDGuJJlYW7OmVlvD+sx86b1hvC/l8yXf2hqZ66xbZ80yWzyD9/fzGaRzA58+nSOzYC+gw9AP+vyNqUAUhoD4lSnputbgUFPJ5O9Y+ReWlxkrc96naX08b3zk/KORb+E+VjYPmH1M6+UHeVlDtCzzGZ9FY8YMA8gPMsQA0jqaGkHT6cYSdVwl7Zs9Wzx+DyWUugPujd03T52ikrUvM26kF9PIcRmycuDBKcd3XRhPDgtnQACINzJ3fVl1tTB++3bc2S7kyD3cCQIQNMcSKaY2YOciE+d0zFbGjps6u0PILTFlRZHNJfAFnfeHtgAAAAABAAAAAjYEro52gl8PPPUAAwPoAAAAANvSppoAAAAA29rQ8vk5/tQEkgP8AAAABgACAAAAAAAAeNpjYGRgYP7z7woDA8uGn5Z/+1kmAUVQAR8Ar8AG6gB42mOKYIgCYiMkrAzCUHEbJJoBikHgCkMPAPDwCFUAAAAAABoAOwBGAFEAbwB3AKkAsQDmAQkBCQEJAQkBFgEveNpjYGRgYOBn3MGQx7CFgQ3MQwBmBiYALRoB+HjajJADbgVQEEXPZ20bQW3bthvXbr8Vp4to1KV0AV1Wb9JvZzJvzhvcB6CQL0wYzHnAj6E/yAYaDeVBNlJsMAfZxCy/QTbTy3eQLdTzGWQr3VwGuZhx2v/ZAIVUB9kc0TSUKJ8f5FIRHGPjnWs+2MKt+MYzt1xwr/jIk3JymR0X0wzIXKo7VbXjFvfLn3lTtCn7qPoB6+yyzb3qy8pdq/6hrj11fMj7OFbtEY+mrlU/516rVFCdVobplw/JEjVaCaqIYlUiUzOaW9aa/Q1idmlPXZHbCagW/B10XwaRi06VuVdMf+9DnIov6rlF8yzhUXxC/4c66Uz48UepqEN9N/Tzt2RwjOljsUUfj581AbaEXsIAAHjaY2BiAIP/qQxGQIqRAR3wA7EKw0lGJgYbRmZGFkZWRjZGdgZmRg5GTkYuRm42x6Si1LJU9tK8TAMTR1cI7WoB5btB+Zas6Ym5uYlgnoGjAZNzEF9icmlJanJ+bpJecmJxKg9IxtjADMwBAKDtHJg=)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}:root{--bg:#f8fafc;--surface:#fff;--surface-alt:#f1f5f9;--surface-hover:#eef2ff;--border:#e2e8f0;--border-strong:#cbd5e1;--text:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--text-placeholder:#cbd5e1;--accent:#4f46e5;--accent-hover:#4338ca;--accent-active:#3730a3;--accent-light:#eef2ff;--accent-border:#c7d2fe;--ok:#16a34a;--ok-bg:#f0fdf4;--ok-border:#bbf7d0;--warn:#d97706;--warn-bg:#fffbeb;--warn-border:#fde68a;--error:#dc2626;--error-bg:#fef2f2;--error-border:#fecaca;--pending:#6b7280;--pending-bg:#f9fafb;--pending-border:#e5e7eb;--nav-h:52px;--ctx-h:40px;--radius:6px;--radius-sm:4px;--radius-lg:10px;--radius-xl:14px;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px #00000012, 0 2px 4px #0000000f;--shadow-lg:0 10px 15px #0000001a, 0 4px 6px #0000000d;--shadow-modal:0 20px 60px #0000002e;--t:.12s ease;--t-long:.25s ease;--font:"Inter", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Consolas", monospace}[data-theme=dark]{--bg:#0f172a;--surface:#1e293b;--surface-alt:#334155;--surface-hover:#1e1b4b;--border:#334155;--border-strong:#475569;--text:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-placeholder:#64748b;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-active:#c7d2fe;--accent-light:#1e1b4b;--accent-border:#4338ca;--ok:#22c55e;--ok-bg:#052e16;--ok-border:#15803d;--warn:#f59e0b;--warn-bg:#1c1200;--warn-border:#92400e;--error:#f87171;--error-bg:#1c0000;--error-border:#991b1b;--pending:#9ca3af;--pending-bg:#1f2937;--pending-border:#374151;--shadow-sm:0 1px 2px #0000004d;--shadow:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow-md:0 4px 6px #00000059, 0 2px 4px #00000040;--shadow-lg:0 10px 15px #0006, 0 4px 6px #0000004d;--shadow-modal:0 20px 60px #0009}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:13px;line-height:1.5}#root{height:100%}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}ul,ol{list-style:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.h-full{height:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.text-xs{font-size:11px}.text-sm{font-size:12px}.text-md{font-size:14px}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-accent{color:var(--accent)}.text-ok{color:var(--ok)}.text-warn{color:var(--warn)}.text-error{color:var(--error)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-mono{font-family:var(--font-mono)}.uppercase{text-transform:uppercase;letter-spacing:.05em}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.p-3{padding:12px}.p-4{padding:16px}.divider{background:var(--border);height:1px;margin:12px 0}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-shell{background:var(--bg);flex-direction:column;height:100vh;display:flex;overflow:hidden}.page-body{flex-direction:column;flex:1;display:flex;overflow:hidden}.page-placeholder{color:var(--text-muted);margin:auto;font-size:13px;font-style:italic}.ds-shell{height:100vh;font-family:var(--font);background:var(--bg);display:flex}.ds-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.ds-sidebar-footer{border-top:1px solid var(--border);flex-shrink:0;padding:10px 10px 14px}.ds-theme-toggle{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:12px;font-weight:500;font-family:var(--font);color:var(--text-secondary);cursor:pointer;transition:all var(--t);background:0 0;align-items:center;gap:7px;padding:6px 10px;display:flex}.ds-theme-toggle:hover{background:var(--surface-alt);border-color:var(--border-strong);color:var(--text)}.ds-sidebar-brand{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:9px;padding:16px;display:flex}.ds-brand-icon{background:var(--accent);color:#fff;border-radius:var(--radius);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.ds-brand-name{color:var(--text);font-size:13px;font-weight:700}.ds-brand-sub{color:var(--text-muted);margin-top:1px;font-size:10px}.ds-nav{flex:1;padding:8px 0 24px;overflow-y:auto}.ds-nav-group{margin-top:4px}.ds-nav-group-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);padding:6px 14px 3px;font-size:10px;font-weight:700}.ds-nav-link{text-align:left;width:100%;color:var(--text-secondary);cursor:pointer;transition:all var(--t);background:0 0;border:none;border-left:2px solid #0000;padding:5px 14px;font-size:12px;font-weight:500;display:block}.ds-nav-link:hover{color:var(--text);background:var(--surface-alt)}.ds-nav-link.active{color:var(--accent);border-left-color:var(--accent);background:var(--accent-light);font-weight:600}.ds-main{flex:1;margin-left:220px;overflow-y:auto}.ds-hero{background:var(--surface);border-bottom:1px solid var(--border);padding:36px 44px 28px}.ds-version{background:var(--accent-light);border:1px solid var(--accent-border);color:var(--accent);border-radius:100px;margin-bottom:12px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block}.ds-hero h1{color:var(--text);letter-spacing:-.03em;font-size:26px;font-weight:700;line-height:1.2}.ds-hero p{color:var(--text-muted);max-width:520px;margin-top:6px;font-size:13px;line-height:1.6}.ds-content{max-width:960px;padding:36px 44px}.ds-section{margin-bottom:56px;scroll-margin-top:24px}.ds-section-header{border-bottom:2px solid var(--border);align-items:center;gap:10px;margin-bottom:20px;padding-bottom:12px;display:flex}.ds-section-title{color:var(--text);letter-spacing:-.02em;font-size:20px;font-weight:700}.ds-badge-todo{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn);border-radius:100px;padding:2px 8px;font-size:10px;font-weight:600}.ds-placeholder{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-placeholder);text-align:center;padding:24px;font-size:12px;font-style:italic}.ds-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;padding:20px;display:flex}.ds-row.ds-row-col{flex-direction:column;align-items:stretch;max-width:320px}.ds-states{background:var(--border);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:1fr 1fr;gap:1px;margin-bottom:8px;display:grid;overflow:hidden}.ds-state-col{background:var(--surface);flex-direction:column;align-items:flex-start;gap:10px;padding:20px;display:flex}.ds-state-col.full{align-items:stretch}.ds-state-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:500}.btn-ghost.demo-hover{background:var(--surface-alt);color:var(--text);border-color:var(--border)}.ds-group-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:8px;font-size:10px;font-weight:600}.ds-swatches{flex-wrap:wrap;gap:8px;display:flex}.ds-swatch{width:76px}.ds-swatch-color{border-radius:var(--radius);border:1px solid #00000014;height:44px;margin-bottom:5px}.ds-swatch-token{font-family:var(--font-mono);color:var(--text-secondary);font-size:10px;line-height:1.4;display:block}.ds-swatch-value{font-family:var(--font-mono);color:var(--text-muted);font-size:10px;display:block}.ds-type-scale{flex-direction:column;width:100%;display:flex}.ds-type-row{border-bottom:1px solid var(--border);align-items:baseline;gap:20px;padding:9px 0;display:flex}.ds-type-row:last-child{border-bottom:none}.ds-type-meta{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;width:90px;font-size:10px}.ds-spacing-scale{flex-direction:column;gap:5px;width:100%;display:flex}.ds-spacing-row{align-items:center;gap:12px;display:flex}.ds-spacing-label{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;width:36px;font-size:10px}.ds-spacing-bar{background:var(--accent-light);border:1px solid var(--accent-border);border-radius:3px;flex-shrink:0;height:14px}.ds-shadow-grid{flex-wrap:wrap;gap:14px;display:flex}.ds-shadow-card{background:var(--surface);border-radius:var(--radius);flex-direction:column;gap:4px;min-width:120px;padding:12px 16px;display:flex}.ds-radius-grid{flex-wrap:wrap;gap:16px;display:flex}.ds-radius-box{background:var(--accent-light);border:2px solid var(--accent-border);justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:5px;display:flex}.ds-motion-rows{flex-direction:column;gap:8px;width:100%;display:flex}.ds-motion-row{background:var(--surface-alt);border-radius:var(--radius);border:1px solid var(--border);align-items:center;gap:16px;padding:12px 16px;display:flex}.ds-motion-token{font-family:var(--font-mono);color:var(--text-secondary);flex-shrink:0;width:80px;font-size:11px}.ds-motion-value{font-family:var(--font-mono);color:var(--text-muted);flex:1;font-size:11px}.ds-motion-demo{border-radius:var(--radius);background:var(--accent);cursor:pointer;flex-shrink:0;width:28px;height:28px;transition-property:transform;transition-timing-function:ease}.ds-motion-demo:hover{transform:scale(1.3)}.pv-canvas-area{background:#d1d5db;flex-direction:column;flex:1;align-items:center;gap:24px;padding:24px 20px;display:flex;overflow:auto}.pv-empty{height:100%;color:var(--text-placeholder);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.pv-empty-text{text-align:center;font-size:13px;line-height:1.6}.pdf-page{width:680px;min-height:900px;font-family:var(--font);color:#1a1a1a;transform-origin:top;background:#fff;border-radius:2px;flex-shrink:0;padding:48px 52px;transition:transform .2s;position:relative;box-shadow:0 4px 24px #0000002e}.pdf-doc-header{border-bottom:2px solid #1a1a1a;justify-content:space-between;align-items:flex-start;margin-bottom:28px;padding-bottom:14px;display:flex}.pdf-doc-title{letter-spacing:-.02em;color:#1a1a1a;font-size:20px;font-weight:700}.pdf-doc-meta{color:#666;text-align:right;font-size:10px;line-height:1.5}.pdf-famille-label{text-transform:uppercase;letter-spacing:.08em;color:#999;margin-bottom:4px;font-size:10px;font-weight:600}.pdf-forfait{page-break-inside:avoid;border:1px solid #e0e0e0;border-radius:3px;margin-bottom:20px;overflow:hidden}.pdf-forfait-hdr{background:#f5f5f5;border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:baseline;padding:7px 12px;display:flex}.pdf-forfait-hdr-label{color:#888;text-transform:uppercase;letter-spacing:.04em;font-size:10px}.pdf-forfait-hdr-val{color:#555;font-size:10px}.pdf-forfait-title{color:#1a1a1a;padding:8px 12px 4px;font-size:13px;font-weight:700}.pdf-forfait-desc{color:#555;padding:0 12px 8px;font-size:11px;line-height:1.5}.pdf-forfait-footer{color:#888;background:#fafafa;border-top:1px solid #f0f0f0;padding:6px 12px;font-size:10px;font-style:italic}.pdf-table{border-collapse:collapse;width:100%;font-size:11px}.pdf-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:#555;background:#f0f0f0;border-top:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;padding:5px 10px;font-size:10px;font-weight:700}.pdf-table td{color:#222;border-bottom:1px solid #f0f0f0;padding:5px 10px}.pdf-table tr:last-child td{border-bottom:none}.pdf-table tr:nth-child(2n) td{background:#fafafa}.btn{border-radius:var(--radius);height:32px;font-family:var(--font);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;transition:background var(--t), border-color var(--t), color var(--t), box-shadow var(--t);border:1px solid #0000;outline:none;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.btn:focus-visible{box-shadow:0 0 0 3px var(--accent-light), 0 0 0 1px var(--accent)}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 1px 2px #4f46e54d,inset 0 1px #ffffff1a}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 2px 4px #4f46e559,inset 0 1px #ffffff1a}.btn-primary:active{background:var(--accent-active);box-shadow:none}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:0 1px 2px #0000000d}.btn-secondary:hover{background:var(--surface-alt);border-color:var(--border-strong);color:var(--text)}.btn-secondary:active{background:var(--surface-alt);box-shadow:none}.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-alt);color:var(--text);border-color:var(--border)}.btn-danger{background:var(--error);color:#fff;border-color:var(--error);box-shadow:0 1px 2px #dc262640}.btn-danger:hover{background:#b91c1c;border-color:#b91c1c}.btn-danger:active{box-shadow:none;background:#991b1b}.btn-sm{height:26px;padding:0 10px;font-size:12px}.btn-lg{height:38px;padding:0 20px;font-size:14px}.btn-icon{width:32px;padding:0}.btn-icon.btn-sm{width:26px;height:26px}.btn-icon.btn-lg{width:38px}.w-full{width:100%}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:500}.form-input{border:1px solid var(--border);border-radius:var(--radius);width:100%;height:32px;font-family:var(--font);color:var(--text);background:var(--surface-alt);transition:border-color var(--t), box-shadow var(--t), background var(--t);appearance:none;outline:none;padding:0 10px;font-size:13px;box-shadow:inset 0 1px 2px #0000000a}.form-input:hover{border-color:var(--border-strong)}.form-input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-light)}.form-input::placeholder{color:var(--text-placeholder);font-weight:400}.form-input:disabled{opacity:.5;cursor:not-allowed;background:var(--surface-alt)}.form-input.error,.form-input.error:focus{border-color:var(--error);box-shadow:0 0 0 3px var(--error-bg)}.form-select{border:1px solid var(--border);border-radius:var(--radius);width:100%;height:32px;font-family:var(--font);color:var(--text);background:var(--surface-alt);transition:border-color var(--t), box-shadow var(--t), background var(--t);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2394A3B8' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;outline:none;padding:0 30px 0 10px;font-size:13px;box-shadow:inset 0 1px 2px #0000000a}.form-select:hover{border-color:var(--border-strong)}.form-select:focus{border-color:var(--accent);background-color:var(--surface);box-shadow:0 0 0 3px var(--accent-light)}.form-select:disabled{opacity:.5;cursor:not-allowed;background-color:var(--surface-alt)}.progress-wrapper{align-items:center;gap:10px;width:100%;display:flex}.progress-label{color:var(--text-muted);text-align:right;width:32px;font-size:11px;font-weight:500;font-family:var(--font-mono);flex-shrink:0}.progress-track{background:var(--border);border-radius:100px;flex:1;width:100%;height:6px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:100px;height:100%;transition:width .3s}.progress-fill.success{background:var(--ok)}.toast{color:#f1f5f9;border-radius:var(--radius-lg);font-family:var(--font);letter-spacing:-.01em;opacity:0;transition:opacity var(--t-long), transform var(--t-long);z-index:9999;pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-lg);background:#1e293b;border:1px solid #ffffff14;padding:9px 16px;font-size:13px;font-weight:500;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(10px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.divider{background:var(--border);border:none;height:1px;margin:0}.nav-item{border-radius:var(--radius);height:34px;color:var(--text-secondary);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;transition:background var(--t), color var(--t), border-color var(--t);text-align:left;font-size:13px;font-weight:500;font-family:var(--font);background:0 0;border:1px solid #0000;outline:none;align-items:center;gap:7px;padding:6px 14px;display:flex}.nav-item.locked,.nav-item:disabled{color:var(--text-placeholder);cursor:default}.nav-item.locked:hover,.nav-item:disabled:hover{color:var(--text-placeholder);background:0 0;border-color:#0000}.sub-nav-item{border-radius:var(--radius);height:26px;color:var(--text-secondary);cursor:pointer;transition:background var(--t), color var(--t), border-color var(--t);white-space:nowrap;font-size:12px;font-weight:500;font-family:var(--font);background:0 0;border:1px solid #0000;outline:none;padding:4px 12px}.icon-btn{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);transition:background var(--t), border-color var(--t), color var(--t);line-height:1;font-family:var(--font);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;display:flex}.icon-btn--sm{width:22px;height:22px;font-size:12px}.icon-btn--md{border-radius:var(--radius);width:28px;height:28px;font-size:14px}.icon-btn--close:hover{background:var(--surface-alt);border-color:var(--border);color:var(--text)}.icon-btn--edit:hover{background:var(--accent-light);border-color:var(--accent-border);color:var(--accent)}.icon-btn--delete:hover{background:var(--error-bg);border-color:var(--error-border);color:var(--error)}.radio-card-group{flex-direction:column;gap:6px;display:flex}.radio-card{border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color var(--t), background var(--t);background:var(--surface);-webkit-user-select:none;user-select:none;font-family:var(--font);text-align:left;outline:none;align-items:center;gap:10px;width:100%;padding:10px 14px;display:flex}.radio-card:hover{border-color:var(--accent-border);background:var(--accent-light)}.radio-card[data-state=checked]{border-color:var(--accent);background:var(--accent-light)}.radio-card:focus-visible{box-shadow:0 0 0 3px var(--accent-light);border-color:var(--accent)}.radio-dot{border:2px solid var(--border);width:14px;height:14px;transition:border-color var(--t);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.radio-card[data-state=checked] .radio-dot{border-color:var(--accent)}.radio-dot-fill{background:var(--accent);border-radius:50%;width:6px;height:6px;display:block}.radio-card-label{color:var(--text);flex:1;font-size:13px;font-weight:600}.radio-card-sub{color:var(--text-muted);margin-top:2px;font-size:11px;line-height:1.4}.radio-card.all{border-style:dashed}.radio-card.all[data-state=checked]{border-style:solid}.form-group{flex-direction:column;gap:5px;display:flex}.form-group-hint{color:var(--text-muted);font-size:11px;line-height:1.4}.form-group-error{color:var(--error);font-size:11px;font-weight:500;line-height:1.4}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-input-icon{color:var(--text-muted);pointer-events:none;flex-shrink:0;position:absolute;left:10px}.search-input{background:var(--surface-alt);padding-left:30px}.search-input:focus{background:var(--surface)}.search-input::-webkit-search-cancel-button{-webkit-appearance:none}.banner{border-radius:var(--radius);border:1px solid;align-items:flex-start;gap:10px;padding:10px 14px;font-size:13px;line-height:1.5;display:flex}.banner-icon{flex-shrink:0;margin-top:2px;display:flex}.banner-body{color:inherit;flex:1}.banner-body strong{margin-bottom:1px;font-weight:600;display:block}.banner.info{background:var(--accent-light);border-color:var(--accent-border);color:var(--accent)}.banner.warning{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn)}.banner.error{background:var(--error-bg);border-color:var(--error-border);color:var(--error)}.banner.success{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-header{border-bottom:1px solid var(--border);background:var(--surface-alt);border-radius:var(--radius) var(--radius) 0 0;align-items:center;gap:8px;height:36px;padding:0 14px;display:flex}.card-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;flex:1;font-size:11px;font-weight:600}.card-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.card-body{padding:14px}.accordion-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:box-shadow var(--t), border-color var(--t);overflow:hidden}.accordion-item:hover{border-color:var(--border-strong)}.accordion-item.expanded{box-shadow:var(--shadow-sm)}.accordion-item.selected{border-color:var(--accent-border)}.accordion-item.selected .accordion-header{background:var(--accent-light)}.accordion-item.selected.expanded .accordion-header{background:var(--accent-light);border-bottom-color:var(--accent-border)}.accordion-item.selected .accordion-title{color:var(--accent);font-weight:600}.accordion-item.focus-flash{animation:1.5s ease-out accordion-flash}@keyframes accordion-flash{0%{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:none}}.accordion-header{cursor:pointer;background:var(--surface);height:36px;transition:background var(--t);-webkit-user-select:none;user-select:none;border-bottom:1px solid #0000;align-items:center;gap:8px;padding:0 10px;display:flex}.accordion-item.expanded .accordion-header{border-bottom-color:var(--border);background:var(--surface-alt)}.accordion-header:hover{background:var(--surface-alt)}.drag-handle{color:var(--text-placeholder);cursor:grab;flex-shrink:0;font-size:13px;line-height:1}.drag-handle:active{cursor:grabbing}.accordion-chevron{color:var(--text-muted);transition:transform var(--t);flex-shrink:0;display:flex}.accordion-item.expanded .accordion-chevron{transform:rotate(90deg)}.accordion-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:400;overflow:hidden}.accordion-body{padding:14px}.acc-hdr-btn{border-radius:var(--radius-sm);cursor:pointer;width:24px;height:24px;color:var(--text-muted);transition:all var(--t);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.acc-hdr-btn:hover{background:var(--error-bg);border-color:var(--error-border);color:var(--error)}.list-item{border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;height:34px;transition:background var(--t), border-color var(--t);border:1px solid #0000;align-items:center;gap:6px;padding:0 6px;display:flex}.list-item:hover{background:var(--surface-alt);border-color:var(--border)}.list-item.selected{background:var(--accent-light);border-color:var(--accent-border)}.list-item.drag-over-target{border-color:var(--accent);background:var(--accent-light)}.list-item.dragging{opacity:.4}.li-handle{color:var(--text-placeholder);cursor:grab;flex-shrink:0;padding:0 2px;font-size:13px;line-height:1}.li-handle:active{cursor:grabbing}.li-label{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.list-item.selected .li-label{color:var(--accent);font-weight:600}.li-actions{opacity:0;transition:opacity var(--t);flex-shrink:0;gap:2px;display:flex}.list-item:hover .li-actions,.list-item.selected .li-actions{opacity:1}.li-btn{border-radius:var(--radius-sm);cursor:pointer;width:22px;height:22px;color:var(--text-muted);transition:all var(--t);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.li-btn:hover{background:var(--surface);border-color:var(--border);color:var(--text)}.li-btn.delete:hover{background:var(--error-bg);border-color:var(--error-border);color:var(--error)}.li-edit-input{font-family:var(--font);color:var(--text);border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface);box-shadow:0 0 0 2px var(--accent-light);outline:none;flex:1;min-width:0;padding:3px 6px;font-size:13px}.forfait-body{flex-direction:column;display:flex}.forfait-field-grid{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:90px 1fr;gap:1px;margin-bottom:8px;display:grid;overflow:hidden}.fg-label{background:var(--surface-alt);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;align-items:flex-start;padding:8px 10px 6px;font-size:10px;font-weight:700;display:flex}.fg-value{background:var(--surface);align-items:flex-start;padding:3px 6px;display:flex}.fg-input{width:100%;font-family:var(--font);color:var(--text);border-radius:var(--radius-sm);transition:background var(--t);resize:none;background:0 0;border:none;outline:none;padding:4px;font-size:12px;line-height:1.4}.fg-input:hover{background:var(--surface-alt)}.fg-input:focus{background:var(--accent-light);outline:1px solid var(--accent)}.forfait-table-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:6px;overflow:hidden}.forfait-table-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--surface-alt);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:5px 8px;font-size:10px;font-weight:700;display:flex}.ft-table{border-collapse:collapse;width:100%}.ft-table th{background:var(--surface-alt);border-bottom:1px solid var(--border);border-right:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;text-align:left;white-space:nowrap;padding:5px 8px;font-size:10px;font-weight:700}.ft-table th:last-child{border-right:none;width:28px}.ft-table td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:middle;padding:0}.ft-table td:last-child{text-align:center;border-right:none;width:28px}.ft-table tr:last-child td{border-bottom:none}.ft-cell-input{width:100%;font-family:var(--font);color:var(--text);transition:background var(--t);background:0 0;border:none;outline:none;padding:5px 8px;font-size:11px}.ft-cell-input:hover{background:var(--surface-alt)}.ft-cell-input:focus{background:var(--accent-light);outline:1px solid var(--accent)}.ft-del-row{cursor:pointer;width:22px;height:22px;color:var(--text-placeholder);border-radius:var(--radius-sm);transition:all var(--t);background:0 0;border:none;justify-content:center;align-items:center;margin:0 auto;display:flex}.ft-del-row:hover{background:var(--error-bg);color:var(--error)}.ft-label-actions{align-items:center;gap:2px;display:flex}.ft-search-btn{border-radius:var(--radius-sm);cursor:pointer;width:20px;height:20px;color:var(--text-muted);transition:all var(--t);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:flex}.ft-search-btn:hover{background:var(--accent-light);border-color:var(--accent-border);color:var(--accent)}.ft-add-row{font-family:var(--font);color:var(--accent);cursor:pointer;transition:opacity var(--t);letter-spacing:-.01em;background:0 0;border:none;align-items:center;gap:4px;margin-bottom:8px;padding:3px 2px;font-size:11px;font-weight:500;display:inline-flex}.ft-add-row:hover{opacity:.7}.upload-zone{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:var(--surface);transition:border-color var(--t), background var(--t);flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:200px;margin-bottom:14px;padding:28px 20px;display:flex;position:relative}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--accent);background:var(--accent-light)}.upload-zone.has-file{border-color:var(--ok);background:var(--ok-bg);border-style:solid}.upload-zone.disabled{opacity:.5;pointer-events:none;cursor:not-allowed}.upload-zone input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.upload-zone-icon{pointer-events:none;color:var(--text-muted);transition:color var(--t);line-height:1;display:flex}.upload-zone:hover .upload-zone-icon,.upload-zone.drag-over .upload-zone-icon{color:var(--accent)}.upload-zone.has-file .upload-zone-icon{color:var(--ok)}.upload-zone-primary{color:var(--text);pointer-events:none;font-size:13px;font-weight:600}.upload-zone-secondary{color:var(--text-muted);pointer-events:none;font-size:11px}.upload-zone-hint{color:var(--text-placeholder);pointer-events:none;font-size:10px}.upload-zone.has-file .upload-zone-hint{color:var(--ok);font-weight:500}.code-pill{border:1px solid var(--border);font-size:11px;font-family:var(--font-mono);color:var(--text-secondary);cursor:default;transition:background var(--t), border-color var(--t), color var(--t);border-radius:100px;justify-content:space-between;align-items:center;gap:5px;max-width:100px;padding:2px 6px 2px 8px;display:inline-flex}.code-pill:hover{background:var(--surface-alt);border-color:var(--accent-border)}.code-pill-del{cursor:pointer;width:14px;height:14px;color:var(--text-placeholder);transition:color var(--t);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.code-pill-del:hover{color:var(--error)}.app-header{height:var(--nav-h);background:var(--surface);border-bottom:2px solid var(--border);z-index:100;flex-shrink:0;align-items:center;gap:0;padding:0 16px;display:flex;position:relative}.header-brand{border-right:1px solid var(--border);flex-shrink:0;align-items:center;gap:9px;margin-right:12px;padding-right:20px;display:flex}.brand-icon{background:var(--accent);color:#fff;border-radius:var(--radius);letter-spacing:-.03em;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;font-weight:700;display:flex}.brand-name{color:var(--text);letter-spacing:-.02em;white-space:nowrap;font-size:14px;font-weight:700}.brand-tag{color:var(--text-muted);letter-spacing:0;margin-top:1px;font-size:10px;font-weight:400}.app-nav{flex:1;align-items:center;gap:2px;display:flex}.nav-item{border-radius:var(--radius);height:34px;color:var(--text-secondary);font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;white-space:nowrap;transition:background var(--t), color var(--t), border-color var(--t);background:0 0;border:1px solid #0000;outline:none;align-items:center;gap:7px;padding:0 14px;display:flex}.nav-item:hover{background:var(--surface-alt);color:var(--text);border-color:var(--border)}.nav-item.active{background:var(--accent-light);color:var(--accent);border-color:var(--accent-border);font-weight:600}.nav-item.locked{color:var(--text-placeholder);cursor:default}.nav-item.locked:hover{color:var(--text-placeholder);background:0 0;border-color:#0000}.nav-divider{background:var(--border);flex-shrink:0;width:1px;height:16px;margin:0 2px}.header-right{border-left:1px solid var(--border);flex-shrink:0;align-items:center;gap:4px;margin-left:auto;padding-left:16px;display:flex}.nav-arrow{border:1px solid var(--border);border-radius:var(--radius);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:background var(--t), border-color var(--t), color var(--t), opacity var(--t);background:0 0;justify-content:center;align-items:center;padding:0;display:flex}.nav-arrow:hover:not(:disabled){background:var(--surface-alt);border-color:var(--border-strong);color:var(--text)}.nav-arrow:disabled{opacity:.32;cursor:default}.sub-nav{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:2px;height:34px;padding:0 16px;display:flex}.sub-nav-item{border-radius:var(--radius);height:26px;color:var(--text-secondary);font-size:12px;font-weight:500;font-family:var(--font);cursor:pointer;transition:background var(--t), color var(--t), border-color var(--t);white-space:nowrap;background:0 0;border:1px solid #0000;outline:none;padding:0 12px}.sub-nav-item:hover{background:var(--surface-alt);color:var(--text);border-color:var(--border)}.sub-nav-item.active{background:var(--accent-light);color:var(--accent);border-color:var(--accent-border);font-weight:600}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:modalFadeIn var(--t) ease;background:#0f142880;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:82vh;box-shadow:var(--shadow-modal);animation:modalSlideUp var(--t-long) ease;flex-direction:column;display:flex}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:flex-start;gap:10px;padding:16px 18px 14px;display:flex}.modal-header-text{flex:1;min-width:0}.modal-title{color:var(--text);letter-spacing:-.01em;font-size:14px;font-weight:700}.modal-subtitle{color:var(--text-muted);margin-top:3px;font-size:12px;font-weight:400}.modal-close{cursor:pointer;border-radius:var(--radius);width:28px;height:28px;color:var(--text-muted);transition:all var(--t);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;margin-top:-2px;padding:0;display:flex}.modal-close:hover{background:var(--surface-alt);border-color:var(--border);color:var(--text)}.modal-body{flex:1;padding:18px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:12px 18px;display:flex}.context-bar{height:var(--ctx-h);background:var(--surface-alt);border-bottom:1px solid var(--border);flex-shrink:0;align-items:stretch;display:flex;overflow:hidden}.ctx-segment{border-right:1px solid var(--border);flex-shrink:0;align-items:center;gap:7px;padding:0 16px;display:flex}.ctx-segment:last-child{border-right:none}.ctx-spacer{flex:1}.ctx-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:10px;font-weight:700}.ctx-value{color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:12px;font-weight:600;overflow:hidden}.ctx-value.placeholder{color:var(--text-placeholder);font-style:italic;font-weight:400}.ctx-edit-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:22px;height:22px;color:var(--text-muted);cursor:pointer;transition:all var(--t);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.ctx-edit-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.status-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.status-card.ok{border-color:var(--ok-border)}.status-card.warning{border-color:var(--warn-border)}.status-card.error{border-color:var(--error-border)}.status-card-header{border-bottom:1px solid var(--border);align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.status-card-header.ok{background:var(--ok-bg);border-bottom-color:var(--ok-border)}.status-card-header.warning{background:var(--warn-bg);border-bottom-color:var(--warn-border)}.status-card-header.error{background:var(--error-bg);border-bottom-color:var(--error-border)}.status-card-icon{flex-shrink:0;align-items:center;display:flex}.status-card-header.ok .status-card-icon{color:var(--ok)}.status-card-header.warning .status-card-icon{color:var(--warn)}.status-card-header.error .status-card-icon{color:var(--error)}.status-card-title{color:var(--text);padding-top:2px;font-size:14px;font-weight:700;line-height:1.3}.status-card-header.ok .status-card-title{color:var(--ok)}.status-card-header.warning .status-card-title{color:var(--warn)}.status-card-header.error .status-card-title{color:var(--error)}.status-card-sub{color:var(--text-muted);margin-top:4px;font-size:11px;line-height:1.5}.status-card-body{padding:16px 18px}.file-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--t);align-items:center;gap:10px;margin-top:10px;margin-bottom:10px;padding:9px 12px;display:flex}.file-item:hover{border-color:var(--border-strong)}.file-item-icon{color:var(--text-muted);flex-shrink:0;align-items:center;display:flex}.file-item-info{flex:1;min-width:0}.file-item-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.file-item-meta{color:var(--text-muted);margin-top:1px;font-size:11px}.file-item-clear{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--text-muted);cursor:pointer;transition:all var(--t);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.file-item-clear:hover{background:var(--error-bg);border-color:var(--error-border);color:var(--error)}.ed-col{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.ed-col-header{border-bottom:2px solid var(--border);flex-shrink:0;align-items:center;gap:8px;height:38px;padding:0 10px 0 12px;display:flex}.ed-col-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);flex:1;font-size:10px;font-weight:700}.ed-col-count{color:var(--text-placeholder);background:var(--surface-alt);border:1px solid var(--border);border-radius:100px;padding:1px 7px;font-size:10px;font-weight:600}.ed-col-body{flex:1;padding:4px;overflow-y:auto}.ed-col-footer{border-top:1px solid var(--border);flex-shrink:0;padding:8px}.ed-col-footer .ed-add-btn{border:1px solid var(--border);border-radius:var(--radius);width:100%;height:28px;color:var(--text-secondary);font-size:12px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all var(--t);white-space:nowrap;background:0 0;justify-content:center;align-items:center;gap:4px;padding:0;display:flex}.ed-col-footer .ed-add-btn:hover{background:var(--surface-alt);border-color:var(--border-strong);color:var(--text)}.ed-col-footer .ed-add-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.col-empty{text-align:center;color:var(--text-placeholder);padding:24px 12px;font-size:12px;font-style:italic;line-height:1.6}.ed-col-group{border:1px solid var(--border);border-radius:var(--radius);display:flex;overflow:hidden}.ed-col-group .ed-col{border:none;border-radius:0}.ed-resize-handle{cursor:col-resize;z-index:2;background:0 0;flex-shrink:0;width:5px;position:relative}.ed-resize-handle:after{content:"";background:var(--border);width:1px;height:100%;transition:background var(--t), width var(--t), left var(--t);position:absolute;top:0;left:2px}.ed-resize-handle:hover:after,.ed-resize-handle.resizing:after{background:var(--accent);width:2px;left:1.5px}.code-row{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:5px 8px;display:flex}.code-row:last-child{border-bottom:none}.code-row .code-pill{flex:1}.code-row-del{border-radius:var(--radius-sm);width:20px;height:20px;color:var(--text-placeholder);cursor:pointer;transition:color var(--t), background var(--t);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.code-row-del:hover{color:var(--error);background:var(--error-bg)}.csr-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:border-color var(--t);overflow:hidden}.csr-wrap:hover{border-color:var(--accent)}.csr-item{cursor:pointer;transition:background var(--t), border-color var(--t);border-left:2px solid #0000;justify-content:space-between;align-items:flex-start;gap:6px;padding:8px 12px;display:flex}.csr-item:hover{background:var(--surface-alt);border-left-color:var(--border-strong)}.csr-body{flex:1;min-width:0;padding-top:1px}.csr-code-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.csr-code{font-size:12px;font-weight:700;font-family:var(--font-mono);color:var(--accent)}.csr-tarif{font-size:12px;font-weight:600;font-family:var(--font-mono);color:var(--text)}.csr-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:11px;overflow:hidden}.csr-ariane{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:10px;overflow:hidden}.csr-edit-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;width:22px;height:22px;transition:all var(--t);background:0 0;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;padding:0;display:flex}.csr-edit-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.csr-item.selected{background:var(--accent-light);border-left-color:var(--accent)}.summary-table{border-collapse:collapse;width:100%;font-size:12px}.summary-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:7px 0}.summary-table tr:last-child td{border-bottom:none}.summary-label{width:140px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding-top:8px;padding-right:12px;font-size:10px;font-weight:700}.summary-value{color:var(--text);font-size:13px;font-weight:500}.summary-value.missing{color:var(--error);font-style:italic}.recap-card-body{flex-direction:column;gap:16px;display:flex}.recap-card-extra{flex-direction:column;gap:8px;display:flex}.recap-card-actions{justify-content:flex-end;gap:8px;display:flex}.pv-toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;height:52px;padding:0 16px;display:flex}.pv-toolbar-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:600;overflow:hidden}.pv-toolbar-meta{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:11px}.pv-zone-select{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-alt);color:var(--text);cursor:pointer;transition:border-color var(--t);outline:none;padding:4px 8px;font-size:12px}.pv-zone-select:focus{border-color:var(--accent)}.pv-zoom-group{flex:1;justify-content:flex-end;align-items:center;gap:4px;display:flex}.pv-zoom-btn{border:1px solid var(--border);background:var(--surface-alt);border-radius:var(--radius-sm);cursor:pointer;width:26px;height:26px;color:var(--text-secondary);transition:border-color var(--t), color var(--t);font-size:13px;font-family:var(--font);justify-content:center;align-items:center;display:flex}.pv-zoom-btn:hover,.pv-zoom-reset:hover{border-color:var(--border-strong);color:var(--text)}.pv-zoom-val{color:var(--text-muted);text-align:center;font-variant-numeric:tabular-nums;width:36px;font-size:11px}.pv-zoom-reset{justify-content:center;align-items:center;width:26px;height:26px;margin-left:4px;padding:0;display:flex}.sf-tree{padding:0;overflow-y:auto}.sf-tree-famille{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);background:var(--surface-alt);border-bottom:1px solid var(--border);border-top:1px solid var(--border);z-index:1;padding:8px 12px 5px;font-size:10px;font-weight:700;position:sticky;top:0}.sf-tree-item{cursor:pointer;color:var(--text);transition:background var(--t), border-color var(--t);-webkit-user-select:none;user-select:none;border-left:2px solid #0000;justify-content:space-between;align-items:center;padding:7px 12px 7px 20px;font-size:12px;display:flex}.sf-tree-item:hover{background:var(--surface-alt);border-left-color:var(--border-strong)}.sf-tree-item.selected{background:var(--accent-light);border-left-color:var(--accent);color:var(--accent);font-weight:600}.sf-tree-name{flex:1;line-height:1.4}.sf-tree-count{color:var(--text-placeholder);background:var(--bg);border:1px solid var(--border);border-radius:100px;flex-shrink:0;margin-left:6px;padding:1px 6px;font-size:10px}.sf-tree-item.selected .sf-tree-count{background:var(--accent-light);border-color:var(--accent-border);color:var(--accent)}.generation-result{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.generation-result-header{background:var(--ok-bg);border-bottom:1px solid var(--ok-border);align-items:center;gap:12px;padding:16px 20px;display:flex}.generation-result-icon{color:var(--ok);flex-shrink:0;display:flex}.generation-result-title{color:var(--ok);font-size:14px;font-weight:600}.generation-result-sub{color:var(--text-secondary);margin-top:2px;font-size:13px}.generation-result-list{flex-direction:column;max-height:320px;padding:8px 0;display:flex;overflow-y:auto}.generation-result-file{color:var(--text);align-items:center;gap:10px;padding:10px 20px;font-size:13px;text-decoration:none;transition:background .15s;display:flex}.generation-result-file:hover{background:var(--surface-alt)}.generation-result-file svg{color:var(--text-muted);flex-shrink:0}.generation-result-footer{border-top:1px solid var(--border);justify-content:flex-end;padding:12px 20px;display:flex}.app-layout{background:var(--bg);flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-layout-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.two-col-layout{box-sizing:border-box;flex-direction:row;gap:16px;height:100%;padding:24px;display:flex;overflow:hidden}.two-col-left{flex:0 0 var(--tcl-left-width,360px);flex-direction:column;gap:14px;min-height:0;display:flex;overflow-y:auto}.two-col-right{flex-direction:column;flex:1;gap:14px;min-height:0;display:flex;overflow-y:auto}.placeholder-card{border:2px dashed var(--border);border-radius:var(--radius);background:var(--surface-alt);justify-content:center;align-items:center;display:flex}.placeholder-card-label{color:var(--text-secondary);font-size:14px}.anomaly-badges{flex-direction:column;gap:8px;display:flex}.anomaly-badge{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius);align-items:center;gap:10px;padding:8px 12px;display:flex}.anomaly-badge-count{color:var(--warn);text-align:right;min-width:24px;font-size:20px;font-weight:700}.anomaly-badge-label{color:var(--text-secondary);font-size:12px}.up-continue-card .card-body{flex-direction:column;gap:12px;display:flex}.fp-preview-scroll{border-radius:var(--radius);background:#d1d5db;justify-content:center;padding:24px 20px;display:flex;overflow-x:auto}.fp-pdf-page{width:100%;max-width:640px;font-family:var(--font);color:#1a1a1a;background:#fff;border-radius:2px;padding:32px 36px;font-size:12px;box-shadow:0 4px 24px #0000001f}.fp-pdf-forfait{border:1px solid #e0e0e0;border-radius:3px;overflow:hidden}.fp-pdf-hdr-row{background:#f5f5f5;border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:baseline;padding:7px 12px;display:flex}.fp-pdf-hdr-label{text-transform:uppercase;letter-spacing:.04em;color:#888;font-size:10px;font-weight:600}.fp-pdf-hdr-val{color:#333;font-size:11px}.fp-pdf-title{color:#111;padding:10px 12px 4px;font-size:13px;font-weight:600}.fp-pdf-desc{color:#555;padding:0 12px 8px;font-size:11px;line-height:1.4}.fp-pdf-table{border-collapse:collapse;width:100%;font-size:11px}.fp-pdf-table th{text-align:left;color:#444;text-transform:uppercase;letter-spacing:.03em;background:#f8f8f8;border-top:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;padding:6px 10px;font-size:10px;font-weight:600}.fp-pdf-table td{color:#333;border-bottom:1px solid #f0f0f0;padding:5px 10px}.fp-pdf-table tbody tr:last-child td{border-bottom:none}.fp-pdf-footer{color:#888;border-top:1px solid #e0e0e0;padding:8px 12px;font-size:10px;font-style:italic}.fp-pdf-empty{color:#bbb;text-align:center;border-top:1px solid #f0f0f0;padding:16px 12px;font-size:11px;font-style:italic}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.drop-target .list-item{border:1px dashed var(--accent-border);border-radius:var(--radius);transition:border-color var(--t), background var(--t)}.drop-target.drag-over .list-item{border-color:var(--accent);background:var(--accent-light)}.app-layout-body>.ed-col-group{border:none;border-top:1px solid var(--border);border-radius:0;flex:1;min-height:0}.sidebar-main-layout{grid-template-columns:var(--sml-sidebar-width,280px) 1fr;height:100%;display:grid;overflow:hidden}.sml-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;display:flex;overflow:hidden}.sml-main{background:var(--bg);flex-direction:column;display:flex;overflow:hidden}.app-layout-body>.sidebar-main-layout{flex:1;overflow:hidden}.pv-sidebar-search{border-bottom:1px solid var(--border);flex-shrink:0;padding:10px 12px}.pv-sidebar-search .search-input-wrapper{width:100%}.pv-code-results{flex:1;padding:10px 12px;overflow-y:auto}.pv-code-results .csr-wrap+.csr-wrap{margin-top:8px}.pv-code-empty{color:var(--text-muted);text-align:center;padding:24px 12px;font-size:12px}.pv-canvas-area{background:var(--bg);flex-direction:column;flex:1;align-items:center;padding:32px;display:flex;overflow-y:auto}.pv-empty{color:var(--text-placeholder);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:60px 0;display:flex}.pv-empty-icon{opacity:.4;font-size:32px}.pv-empty-text{font-size:13px;line-height:1.6}.pv-page{border:1px solid var(--border);box-sizing:border-box;--text:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--text-placeholder:#cbd5e1;--border:#e2e8f0;--surface-alt:#f1f5f9;--accent:#4f46e5;background:#fff;border-radius:4px;width:700px;padding:40px 48px;box-shadow:0 4px 24px #00000014}.pv-doc-header{border-bottom:2px solid var(--accent);justify-content:space-between;align-items:flex-start;margin-bottom:28px;padding-bottom:16px;display:flex}.pv-famille-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:4px;font-size:10px;font-weight:700}.pv-doc-title{color:var(--text);font-size:18px;font-weight:700}.pv-doc-meta{color:var(--text-muted);text-align:right;font-size:10px;line-height:1.7}.pv-forfait{border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:24px}.pv-forfait:last-of-type{border-bottom:none}.pv-forfait-header-row{gap:8px;margin-bottom:6px;display:flex}.pv-forfait-header-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-placeholder);background:var(--surface-alt);border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-size:9px;font-weight:700}.pv-forfait-header-val{color:var(--text-muted);font-size:11px}.pv-forfait-title{color:var(--text);margin-bottom:4px;font-size:14px;font-weight:700}.pv-forfait-desc{color:var(--text-muted);margin-bottom:10px;font-size:11px;line-height:1.5}.pv-forfait-footer{color:var(--text-placeholder);margin-top:8px;font-size:10px;font-style:italic}.pv-table{border-collapse:collapse;width:100%;margin-top:10px;font-size:11px}.pv-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--surface-alt);padding:5px 8px;font-size:9px;font-weight:700}.pv-table td{border-bottom:1px solid var(--border);color:var(--text);vertical-align:top;padding:6px 8px}.pv-table tr:last-child td{border-bottom:none}.pv-row-highlight td{animation:2s ease-out pv-flash;background:#fff9c4!important}@keyframes pv-flash{0%{background:#ffee58}to{background:#fff9c4}}.pv-no-forfait{text-align:center;color:var(--text-placeholder);padding:40px 0;font-size:12px;font-style:italic}.pv-row-highlight td{background:#fef9c3}.pv-page-num{text-align:center;color:var(--text-placeholder);margin-top:32px;font-size:10px}.single-col-layout{box-sizing:border-box;flex-direction:column;gap:16px;width:100%;height:100%;min-height:0;padding:24px;display:flex;overflow-y:auto}
