@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg-primary: #0a0a0a;--color-bg-surface: #111111;--color-bg-elevated: #1a1a1a;--color-border: #2a2a2a;--color-border-strong: #3a3a3a;--color-text-primary: #ebebeb;--color-text-muted: #888888;--color-text-dim: #555555;--color-accent: #7c3aed;--color-accent-hover: #6d28d9;--color-success: #22c55e;--color-danger: #ef4444;--color-warning: #f59e0b;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 15px;--font-size-lg: 18px;--font-size-xl: 24px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--sidebar-width: 220px;--topbar-height: 56px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6);--transition-fast: .12s ease;--transition-base: .2s ease}body{background-color:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn,.btn-danger,.btn-ghost,.btn-primary{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);white-space:nowrap;text-decoration:none;-webkit-user-select:none;user-select:none}.btn:disabled,.btn-danger:disabled,.btn-ghost:disabled,.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-ghost{background-color:transparent;border-color:var(--color-border);color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-elevated);border-color:var(--color-border-strong);color:var(--color-text-primary)}.btn-danger{background-color:transparent;border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:hover:not(:disabled){background-color:#ef44441f}.card{background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6)}.badge,.badge-warning,.badge-muted,.badge-danger,.badge-success{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.badge-success{background-color:#22c55e26;color:var(--color-success);border:1px solid rgba(34,197,94,.3)}.badge-danger{background-color:#ef444426;color:var(--color-danger);border:1px solid rgba(239,68,68,.3)}.badge-muted{background-color:#88888826;color:var(--color-text-muted);border:1px solid rgba(136,136,136,.2)}.badge-warning{background-color:#f59e0b26;color:var(--color-warning);border:1px solid rgba(245,158,11,.3)}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.data-table thead tr{border-bottom:1px solid var(--color-border)}.data-table thead th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.data-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--transition-fast)}.data-table tbody tr:hover{background-color:#ffffff08}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody td{padding:var(--space-3) var(--space-4);color:var(--color-text-primary);vertical-align:middle}.form-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-muted);margin-bottom:var(--space-2)}.form-input,.form-select{width:100%;padding:var(--space-2) var(--space-3);background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--font-size-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.form-input::placeholder,.form-select::placeholder{color:var(--color-text-dim)}.form-input:focus,.form-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #7c3aed26}.form-input:disabled,.form-select:disabled{opacity:.5;cursor:not-allowed}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-8)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-8)}.page-header h1{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text-primary)}.page-header p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.page-content{padding:var(--space-8);max-width:1200px}.page-placeholder{display:flex;align-items:center;justify-content:center;height:100%;font-size:var(--font-size-xl);color:var(--color-text-muted);font-weight:300}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg-primary)}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-dim)}.divider{height:1px;background-color:var(--color-border);margin:var(--space-6) 0}.mono{font-family:var(--font-mono);font-size:var(--font-size-xs);background-color:var(--color-bg-elevated);padding:2px var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text-muted)}.seg-toggle{display:inline-flex;align-self:flex-start;padding:2px;gap:2px;background-color:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}.seg-toggle button{padding:var(--space-1) var(--space-4);border-radius:calc(var(--radius-md) - 2px);color:var(--color-text-muted);font-size:var(--font-size-sm);transition:background-color var(--transition-fast),color var(--transition-fast)}.seg-toggle button:hover{color:var(--color-text-primary)}.seg-toggle button:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.seg-toggle button.active{background-color:var(--color-accent);color:var(--color-text-primary)}.flow-cell{display:inline-flex;align-items:center;gap:var(--space-2);margin-left:var(--space-1);font-family:var(--font-sans)}app-service-methods-modal .field-input.mono,app-external-methods-modal .field-input.mono{font-family:var(--font-mono);font-size:var(--font-size-xs)}app-external-methods-modal .field-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}app-service-methods-modal .flow-cell .action-btn{white-space:nowrap}app-service-methods-modal .field>.field-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.fb-host{display:block;height:100vh}.fb-state{max-width:560px;margin:15vh auto 0;padding:var(--space-8);display:flex;flex-direction:column;align-items:center;gap:var(--space-4);text-align:center;color:var(--color-text-muted);background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.fb-state h2{font-size:var(--font-size-lg)}.fb-state code{font-family:var(--font-mono);color:var(--color-text-primary)}.fb-state.error{color:var(--color-warning)}.fb-state-actions{display:flex;gap:var(--space-3)}.fb-spinner{width:22px;height:22px;border:2px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:50%;animation:fb-spin .8s linear infinite}@keyframes fb-spin{to{transform:rotate(360deg)}}.fb-page{display:flex;flex-direction:column;height:100%;min-height:0}.fb-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-6);padding:var(--space-3) var(--space-6);background-color:var(--color-bg-surface);border-bottom:1px solid var(--color-border)}.fb-toolbar-left{display:flex;flex-direction:column;gap:2px;min-width:0}.fb-toolbar-right{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.fb-crumbs{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.fb-crumbs a{color:var(--color-text-muted)}.fb-crumbs a:hover{color:var(--color-text-primary);text-decoration:none}.fb-crumbs code{font-family:var(--font-mono);color:var(--color-text-primary)}.fb-title-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.fb-title{font-size:var(--font-size-md);font-weight:600}.fb-save{font-size:var(--font-size-xs);color:var(--color-text-muted)}.fb-save.fb-save-saved{color:var(--color-success)}.fb-save.fb-save-error,.fb-save.fb-save-conflict{color:var(--color-danger)}.fb-btn-group{display:inline-flex;gap:2px}.fb-icon-btn{min-width:30px;height:30px;padding:0 var(--space-2);display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-sm);background-color:transparent;transition:background-color var(--transition-fast),color var(--transition-fast)}.fb-icon-btn.wide{min-width:48px;font-size:var(--font-size-xs)}.fb-icon-btn:hover:not(:disabled){color:var(--color-text-primary);background-color:var(--color-bg-elevated)}.fb-icon-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.fb-icon-btn:disabled{opacity:.35;cursor:not-allowed}.fb-icon-btn.danger:hover:not(:disabled){color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 40%,transparent)}.fb-banner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-6);font-size:var(--font-size-sm);border-bottom:1px solid var(--color-border)}.fb-banner ul{display:flex;flex-direction:column;gap:2px}.fb-banner.danger{background-color:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger)}.fb-banner.warning{background-color:color-mix(in srgb,var(--color-warning) 10%,transparent);color:var(--color-warning)}.fb-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr)}.fb-body.with-panel{grid-template-columns:minmax(0,1fr) 420px}.fb-canvas{overflow:auto;min-height:0;background-color:var(--color-bg-primary);background-image:radial-gradient(var(--color-border) 1px,transparent 1px);background-size:20px 20px}.fb-canvas-inner{width:max-content;min-width:100%;padding:var(--space-8) var(--space-12) 160px;display:flex;flex-direction:column;align-items:center}.fb-start,.fb-end{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:999px;background-color:var(--color-bg-surface);font-size:var(--font-size-xs);color:var(--color-text-muted)}.fb-start code,.fb-end code{font-family:var(--font-mono);color:var(--color-text-primary)}.fb-start-title{color:var(--color-text-primary);font-weight:600;font-size:var(--font-size-sm)}.fb-dot{width:10px;height:10px;border-radius:50%;background-color:var(--color-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-accent) 20%,transparent)}.fb-dot.end{background-color:var(--color-text-dim);box-shadow:none}.fb-empty-flow{margin-top:var(--space-4);max-width:320px;padding:var(--space-3) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:center}.fb-seq{display:flex;flex-direction:column;align-items:center;min-width:280px}.fb-add{position:relative;display:flex;flex-direction:column;align-items:center}.fb-stem{display:block;width:2px;height:10px;background-color:var(--color-border-strong)}.fb-stem.arrow{position:relative;height:12px}.fb-stem.arrow:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--color-border-strong)}.fb-add-btn{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px dashed var(--color-border-strong);background-color:var(--color-bg-primary);color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:1;transition:all var(--transition-fast)}.fb-add-btn:hover,.fb-add-btn.open,.fb-add-btn:focus-visible{border-style:solid;border-color:var(--color-accent);color:var(--color-text-primary);background-color:var(--color-accent);outline:none}.fb-menu{position:absolute;top:36px;left:50%;transform:translate(-50%);z-index:40;width:300px;padding:var(--space-1);background-color:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.fb-menu-item{width:100%;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);text-align:left;color:var(--color-text-primary)}.fb-menu-item:hover:not(:disabled),.fb-menu-item:focus-visible{background-color:color-mix(in srgb,var(--color-accent) 18%,transparent);outline:none}.fb-menu-item:disabled{opacity:.45;cursor:not-allowed}.fb-menu-icon{width:20px;text-align:center;font-size:var(--font-size-base)}.fb-menu-text{display:flex;flex-direction:column;gap:1px;min-width:0}.fb-menu-label{font-size:var(--font-size-sm);font-weight:500}.fb-menu-desc{font-size:var(--font-size-xs);color:var(--color-text-muted)}.fb-menu-sep{height:1px;margin:var(--space-1) 0;background-color:var(--color-border)}.fb-card{--fb-type-color: var(--color-accent);position:relative;width:280px;padding:var(--space-3);background-color:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-left:3px solid var(--fb-type-color);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.fb-card:hover{border-color:var(--color-text-dim);border-left-color:var(--fb-type-color)}.fb-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.fb-card.selected{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 25%,transparent)}.fb-card.has-error{border-color:color-mix(in srgb,var(--color-danger) 60%,transparent);border-left-color:var(--color-danger)}.fb-card.sim-ok{box-shadow:0 0 0 2px color-mix(in srgb,var(--color-success) 35%,transparent)}.fb-card.sim-error{box-shadow:0 0 0 2px color-mix(in srgb,var(--color-danger) 45%,transparent)}.fb-card.fb-type-condition{--fb-type-color: var(--color-warning)}.fb-card.fb-type-parallel{--fb-type-color: var(--color-text-primary)}.fb-card.fb-type-set_vars{--fb-type-color: var(--color-text-muted)}.fb-card.fb-type-response{--fb-type-color: var(--color-success)}.fb-card.fb-type-fail{--fb-type-color: var(--color-danger)}.fb-card:hover .fb-card-tools,.fb-card:focus-within .fb-card-tools,.fb-card.selected .fb-card-tools{opacity:1;pointer-events:auto}.fb-card-main{display:flex;align-items:flex-start;gap:var(--space-2)}.fb-card-num{flex-shrink:0;min-width:20px;color:var(--color-text-muted);font-size:var(--font-size-md);line-height:1.2}.fb-card-icon{flex-shrink:0;width:18px;text-align:center;color:var(--fb-type-color)}.fb-card-text{flex:1;min-width:0}.fb-card-name{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-card-sub{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-card-sub.warn{color:var(--color-warning)}.fb-card-badges{display:flex;gap:var(--space-1);flex-shrink:0}.fb-issue{padding:0 6px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600}.fb-issue.error{color:var(--color-danger);background-color:color-mix(in srgb,var(--color-danger) 15%,transparent)}.fb-issue.warning{color:var(--color-warning);background-color:color-mix(in srgb,var(--color-warning) 15%,transparent)}.fb-card-tools{position:absolute;top:-14px;right:6px;display:flex;gap:2px;padding:2px;background-color:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);opacity:0;pointer-events:none;transition:opacity var(--transition-fast)}.fb-tool{width:22px;height:22px;border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-xs)}.fb-tool:hover:not(:disabled){color:var(--color-text-primary);background-color:var(--color-bg-surface)}.fb-tool:focus-visible{outline:2px solid var(--color-accent)}.fb-tool:disabled{opacity:.3;cursor:not-allowed}.fb-tool.danger:hover:not(:disabled){color:var(--color-danger)}.fb-branches{position:relative;display:flex;align-items:stretch;padding-top:14px}.fb-branches:before{content:"";position:absolute;top:0;left:calc(50% - 1px);width:2px;height:14px;background-color:var(--color-border-strong)}.fb-branch-col{position:relative;display:flex;flex-direction:column;align-items:center;padding:14px var(--space-4) 0}.fb-branch-col:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background-color:var(--color-border-strong)}.fb-branch-col:after{content:"";position:absolute;top:0;left:calc(50% - 1px);width:2px;height:14px;background-color:var(--color-border-strong)}.fb-branch-col:first-child:before{left:50%}.fb-branch-col:last-child:before{right:50%}.fb-branch-label{max-width:220px;padding:2px var(--space-3);border:1px solid var(--color-border-strong);border-radius:999px;background-color:var(--color-bg-elevated);font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-branch-label.else{color:var(--color-text-muted);font-style:italic}.fb-branches.parallel .fb-branch-label{border-style:dashed}.fb-branch-tail{position:relative;flex:1;align-self:stretch;min-height:16px}.fb-branch-tail:before{content:"";position:absolute;top:0;bottom:0;left:calc(50% - 1px);width:2px;background-color:var(--color-border-strong)}.fb-branch-tail:after{content:"";position:absolute;bottom:0;left:calc(-1 * var(--space-4));right:calc(-1 * var(--space-4));height:2px;background-color:var(--color-border-strong)}.fb-branch-col:first-child .fb-branch-tail:after{left:50%}.fb-branch-col:last-child .fb-branch-tail:after{right:50%}.fb-join{width:2px;height:4px;background-color:var(--color-border-strong)}.fb-empty-branch{position:relative;z-index:1;padding:var(--space-1) var(--space-2);background-color:var(--color-bg-primary);font-size:var(--font-size-xs);color:var(--color-text-dim);font-style:italic}.fb-collapsed{margin-top:10px;padding:var(--space-1) var(--space-3);border:1px dashed var(--color-border-strong);border-radius:999px;font-size:var(--font-size-xs);color:var(--color-text-muted)}.fb-collapsed:hover{color:var(--color-text-primary)}.fb-link{color:var(--color-accent)}.fb-panel{min-height:0;overflow:hidden;background-color:var(--color-bg-surface);border-left:1px solid var(--color-border)}.fb-panel-inner{display:flex;flex-direction:column;height:100%}.fb-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.fb-panel-heading{display:flex;align-items:center;gap:var(--space-2)}.fb-panel-type{font-size:var(--font-size-sm);font-weight:600}.fb-panel-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.fb-panel-footer{display:flex;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border)}.fb-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.fb-label{font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.fb-label .fb-hint{text-transform:none;letter-spacing:0;font-weight:400}.fb-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.45}.fb-hint code{font-family:var(--font-mono);color:var(--color-text-primary)}.fb-hint.warn{color:var(--color-warning)}.fb-error{font-size:var(--font-size-xs);color:var(--color-danger)}.fb-issues{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background-color:var(--color-bg-primary);border:1px solid var(--color-border);font-size:var(--font-size-xs)}.fb-issues .error{color:var(--color-danger)}.fb-issues .warning{color:var(--color-warning)}.fb-issues code{font-family:var(--font-mono);opacity:.8}.fb-section{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-primary);min-width:0}.fb-section-title{padding:0 var(--space-1);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.fb-section-title .fb-hint{text-transform:none;letter-spacing:0;font-weight:400}.fb-details summary{cursor:pointer;list-style:revert}.fb-details:not([open]){gap:0}.fb-subsection{display:flex;flex-direction:column;gap:var(--space-2)}.fb-subtitle{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-primary)}.fb-subtitle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.fb-radio-list{display:flex;flex-direction:column;gap:var(--space-2)}.fb-radio,.fb-check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer}.fb-radio input[type=radio],.fb-radio input[type=checkbox],.fb-check input[type=radio],.fb-check input[type=checkbox]{accent-color:var(--color-accent);flex-shrink:0}.fb-radio strong,.fb-check strong{margin-right:var(--space-1)}.fb-check{flex-wrap:wrap}.fb-inline-input{width:140px;padding:2px var(--space-2)}.fb-inline-select{width:auto;display:inline-block;padding-top:2px;padding-bottom:2px}.fb-row-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.fb-map-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.25fr) auto;align-items:start;gap:var(--space-2)}.fb-arrow{padding-top:6px;color:var(--color-text-dim)}.fb-lane-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;align-items:center;gap:var(--space-2)}.fb-lane-num{font-size:var(--font-size-xs);color:var(--color-text-muted)}.fb-link-btn{align-self:flex-start;font-size:var(--font-size-sm);color:var(--color-accent)}.fb-link-btn:hover:not(:disabled){text-decoration:underline}.fb-link-btn:disabled{opacity:.4;cursor:not-allowed}.fb-chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.fb-chip{display:inline-flex;align-items:center;gap:var(--space-1);max-width:100%;padding:1px var(--space-2);border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--color-accent) 45%,transparent);background-color:color-mix(in srgb,var(--color-accent) 15%,transparent);color:var(--color-text-primary);font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fb-chip small{color:var(--color-text-muted)}.fb-chip.unknown{border-color:color-mix(in srgb,var(--color-danger) 50%,transparent);background-color:color-mix(in srgb,var(--color-danger) 12%,transparent)}.fb-chip.locked{border-color:var(--color-border-strong);background-color:var(--color-bg-elevated);color:var(--color-text-muted)}.fb-chip.required{border-color:color-mix(in srgb,var(--color-warning) 45%,transparent);background-color:color-mix(in srgb,var(--color-warning) 12%,transparent)}.fb-chip.removable button{color:var(--color-text-muted)}.fb-chip.removable button:hover{color:var(--color-danger)}button.fb-chip{font-family:var(--font-mono);cursor:pointer}button.fb-chip:hover:not(:disabled){border-color:var(--color-accent)}button.fb-chip:disabled{cursor:default}.fb-inline-add{display:flex;align-items:center;gap:var(--space-2)}.fb-inline-add .form-input,.fb-inline-add .form-select{flex:1;min-width:0}.fb-inline-add .fb-link-btn{align-self:center;white-space:nowrap}.fb-method-info{display:flex;align-items:center;gap:var(--space-2);min-width:0}.fb-method-info code{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-json{max-height:260px;overflow:auto;padding:var(--space-3);border-radius:var(--radius-sm);background-color:var(--color-bg-elevated);font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-primary);white-space:pre}.fb-json-input{resize:vertical;white-space:pre}.fb-missing{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background-color:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger);font-size:var(--font-size-xs)}.fb-case{gap:var(--space-2)}.fb-case-head{display:flex;gap:var(--space-2);align-items:center}.fb-match{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted)}.fb-rule{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-sm);background-color:var(--color-bg-surface);border:1px solid var(--color-border)}.fb-rule>app-template-input:first-child{flex:1 1 100%}.fb-rule>select{flex:1 1 140px;width:auto}.fb-rule>app-template-input:not(:first-child){flex:1 1 120px}.fb-status-input{max-width:120px}.form-input.mono,.mono.form-select{font-family:var(--font-mono);font-size:var(--font-size-xs)}.form-input.invalid,.invalid.form-select{border-color:var(--color-danger)}.fb-tpl{position:relative;display:block;min-width:0}.fb-tpl-row{display:flex;align-items:stretch;min-width:0}.fb-tpl-row.invalid .fb-tpl-field,.fb-tpl-row.invalid .fb-tpl-view{border-color:color-mix(in srgb,var(--color-danger) 60%,transparent)}.fb-tpl-field{flex:1;min-width:0;border-top-right-radius:0;border-bottom-right-radius:0}.fb-tpl-view{flex:1;min-width:0;min-height:34px;display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:4px var(--space-2);background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-right:none;border-radius:var(--radius-md) 0 0 var(--radius-md);cursor:text}.fb-tpl-view:focus-visible{outline:2px solid var(--color-accent)}.fb-tpl-text{font-family:var(--font-mono);font-size:var(--font-size-xs);white-space:pre-wrap}.fb-tpl-btn{flex-shrink:0;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:0 var(--radius-md) var(--radius-md) 0;background-color:var(--color-bg-elevated);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs)}.fb-tpl-btn:hover,.fb-tpl-btn.active{color:var(--color-text-primary);background-color:color-mix(in srgb,var(--color-accent) 25%,transparent)}.fb-tpl-btn:focus-visible{outline:2px solid var(--color-accent)}.fb-picker{position:absolute;top:calc(100% + 4px);left:0;z-index:60;width:max(100%,340px)}.align-right>.fb-picker{left:auto;right:0}.fb-picker{max-width:360px;display:flex;flex-direction:column;background-color:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.fb-picker-search{margin:var(--space-2);width:auto}.fb-picker-list{max-height:320px;overflow-y:auto;padding-bottom:var(--space-2)}.fb-picker-group+.fb-picker-group{border-top:1px solid var(--color-border)}.fb-picker-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-primary)}.fb-picker-sub{font-weight:400;color:var(--color-text-muted)}.fb-picker-item{display:flex;align-items:baseline;gap:var(--space-2);padding:3px var(--space-3);font-family:var(--font-mono);font-size:var(--font-size-xs);cursor:pointer}.fb-picker-item.active{background-color:color-mix(in srgb,var(--color-accent) 22%,transparent)}.fb-picker-label{color:var(--color-text-primary)}.fb-picker-note{font-family:var(--font-sans);color:var(--color-success)}.fb-picker-note.warn{color:var(--color-warning)}.fb-picker-preview{margin-left:auto;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:45%}.fb-picker-empty{padding:2px var(--space-3) var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.fb-picker-empty.warn{color:var(--color-warning)}.fb-picker-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2);border-top:1px solid var(--color-border)}.fb-picker-footer .btn-ghost{padding:var(--space-1) var(--space-3)}.fb-picker-filter{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.fb-picker-filter .form-select{width:auto;padding-top:2px;padding-bottom:2px;font-size:var(--font-size-xs)}@media(max-width:1023px){.fb-body.with-panel{grid-template-columns:minmax(0,1fr)}.fb-panel{position:fixed;top:0;right:0;bottom:0;z-index:100;width:min(420px,100vw);box-shadow:var(--shadow-lg)}}.fb-modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background-color:#0009}.fb-modal{width:min(560px,100%);max-height:calc(100vh - 2 * var(--space-8));display:flex;flex-direction:column;background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.fb-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border)}.fb-modal-header h3{font-size:var(--font-size-lg)}.fb-modal-sub{margin-top:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-muted)}.fb-modal-sub code{font-family:var(--font-mono);color:var(--color-text-primary)}.fb-modal-body{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5) var(--space-6);overflow-y:auto;font-size:var(--font-size-base);line-height:1.5}.fb-modal-body .fb-banner{margin:0}.fb-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border)}.fb-modal-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.fb-modal-error{color:var(--color-danger);font-size:var(--font-size-sm)}.fb-field{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted)}.fb-field textarea{resize:vertical;padding:var(--space-2) var(--space-3);font:inherit;color:var(--color-text-primary);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.fb-field textarea:focus{outline:none;border-color:var(--color-accent)}.fb-muted{color:var(--color-text-muted);font-size:var(--font-size-sm)}.fb-versions{list-style:none;display:flex;flex-direction:column;gap:var(--space-2);padding:0;margin:0}.fb-version{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md)}.fb-version.active{border-color:color-mix(in srgb,var(--color-success) 50%,transparent)}.fb-version-main{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.fb-version-notes{font-size:var(--font-size-sm);color:var(--color-text-muted)}.fb-version-actions{display:flex;gap:var(--space-2)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;font-size:16px}body{height:100%;overflow:hidden}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}ul,ol{list-style:none}img,svg{display:block;max-width:100%}button{border:none;background:none;font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--color-text-primary)}
