@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BmRLXWpJ.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DCQwxkRk.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-D_uavGvn.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-RFb1v-CK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-greek-700-normal-wyJ6jzdA.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-CkZN0sRy.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-CkEo6LDy.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-BV5B8Are.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.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,.canvas-stage{--bg-0:oklch(15.5% .01 258);--bg-1:oklch(18.5% .012 258);--bg-2:oklch(22% .013 258);--bg-3:oklch(26% .014 258);--border-1:oklch(27.5% .013 258);--border-2:oklch(34% .015 258);--border-hi:oklch(45% .015 258);--fg-0:oklch(97% .004 258);--fg-1:oklch(88% .007 258);--fg-2:oklch(74% .01 258);--fg-3:oklch(58.5% .012 258);--fg-4:oklch(45% .012 258);--accent:oklch(74% .13 282);--accent-fg:oklch(18% .03 282);--accent-soft:oklch(74% .13 282/.16);--accent-line:oklch(74% .13 282/.55);--ok:oklch(78% .15 152);--ok-soft:oklch(78% .15 152/.14);--warn:oklch(82% .16 82);--warn-soft:oklch(82% .16 82/.14);--bad:oklch(68% .19 25);--bad-soft:oklch(68% .19 25/.14);--surface-glass:oklch(20.5% .013 258/.88);--shadow-pop:0 12px 32px oklch(0% 0 0/.42), 0 2px 6px oklch(0% 0 0/.25)}:root{--rp1:oklch(72% .17 30);--rp1-bg:oklch(72% .17 30/.18);--rp2:oklch(78% .13 220);--rp2-bg:oklch(78% .13 220/.18);--font-sans:"IBM Plex Sans", -apple-system, system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--r-1:5px;--r-2:7px;--r-3:10px;--control-h:30px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg-0:oklch(96.5% .004 258);--bg-1:oklch(99.5% .001 258);--bg-2:oklch(97% .004 258);--bg-3:oklch(93.5% .007 258);--border-1:oklch(90.5% .006 258);--border-2:oklch(84.5% .009 258);--border-hi:oklch(72% .012 258);--fg-0:oklch(20% .012 258);--fg-1:oklch(30% .014 258);--fg-2:oklch(44% .013 258);--fg-3:oklch(56% .012 258);--fg-4:oklch(68% .01 258);--accent:oklch(52% .18 282);--accent-fg:oklch(99% .005 282);--accent-soft:oklch(52% .18 282/.1);--accent-line:oklch(52% .18 282/.45);--ok:oklch(56% .14 152);--ok-soft:oklch(56% .14 152/.12);--warn:oklch(62% .15 70);--warn-soft:oklch(62% .15 70/.12);--bad:oklch(56% .19 25);--bad-soft:oklch(56% .19 25/.1);--surface-glass:oklch(99.5% .001 258/.92);--shadow-pop:0 12px 32px oklch(20% .02 258/.16), 0 2px 6px oklch(20% .02 258/.08);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--bg-0);color:var(--fg-1);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:13px;line-height:1.4;overflow:hidden}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.mono{font-family:var(--font-mono)}.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-2);background-clip:padding-box;border:2px solid #0000;border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:var(--border-hi)}.btn{height:var(--control-h);background:var(--bg-2);border:1px solid var(--border-1);color:var(--fg-1);border-radius:var(--r-2);white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:0 11px;font-size:12.5px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--bg-3);border-color:var(--border-2);color:var(--fg-0)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn svg{flex:none}.btn.ghost{color:var(--fg-2);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--bg-2);border-color:var(--border-1)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}.btn.primary:hover:not(:disabled){background:color-mix(in oklch, var(--accent) 88%, white);color:var(--accent-fg);border-color:#0000}.btn.sm{height:26px;padding:0 9px;font-size:12px}.btn .kbd{font-family:var(--font-mono);background:oklch(0% 0 0/.18);border-radius:3px;margin-left:2px;padding:0 4px;font-size:10px}.icon-btn{width:var(--control-h);height:var(--control-h);color:var(--fg-2);border-radius:var(--r-2);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--bg-2);color:var(--fg-0)}.icon-btn[aria-pressed=true]{background:var(--bg-3);color:var(--fg-0)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.link-btn{font-family:var(--font-mono);text-transform:none;letter-spacing:0;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:10.5px;display:inline-flex}.link-btn:hover{text-decoration:underline}.button-row{grid-template-columns:1fr 1fr;gap:6px;display:grid}.segmented{background:var(--bg-0);border:1px solid var(--border-1);border-radius:var(--r-2);gap:2px;padding:2px;display:inline-flex}.segmented.fill{width:100%;display:flex}.segmented.fill>*,.segmented.fill>.tip-anchor>button{flex:1}.segmented button{height:calc(var(--control-h) - 6px);min-width:calc(var(--control-h) - 4px);border-radius:calc(var(--r-2) - 2px);color:var(--fg-3);white-space:nowrap;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:0 9px;font-size:12px;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.segmented button:hover:not(:disabled){color:var(--fg-0)}.segmented button.active{background:var(--bg-3);color:var(--fg-0);box-shadow:0 1px 2px oklch(0% 0 0/.25), inset 0 0 0 1px var(--border-2)}.segmented button:disabled{opacity:.35;cursor:not-allowed}.segmented .tip-anchor{display:flex}.select,.field{width:100%;height:var(--control-h);background:var(--bg-0);border:1px solid var(--border-1);border-radius:var(--r-2);color:var(--fg-0);text-align:left;align-items:center;gap:8px;padding:0 10px;font-size:12.5px;transition:border-color .12s,background .12s;display:inline-flex}.select{cursor:pointer}.select:hover:not(:disabled),.field:hover{border-color:var(--border-2)}.select.open,.field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.select:disabled{opacity:.5;cursor:not-allowed}.select-value{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.select-chevron{color:var(--fg-3);flex:none;transition:transform .15s}.select.open .select-chevron,.btn[aria-expanded=true] .select-chevron{transform:rotate(180deg)}.field{width:auto;color:var(--fg-3);padding:0 8px}.field input{width:58px;color:var(--fg-0);font-family:var(--font-mono);background:0 0;border:0;outline:0;font-size:12px}.field.warn{border-color:color-mix(in oklch, var(--warn) 60%, var(--border-1));color:var(--warn)}.calibration{align-items:center;gap:4px;display:flex}input[type=range]{--fill:50%;appearance:none;cursor:pointer;background:0 0;width:100%;height:16px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--fill), var(--bg-3) var(--fill));border-radius:2px;height:4px}input[type=range]::-moz-range-track{background:var(--bg-3);border-radius:2px;height:4px}input[type=range]::-moz-range-progress{background:var(--accent);border-radius:2px;height:4px}input[type=range]::-webkit-slider-thumb{appearance:none;border:3px solid var(--accent);background:oklch(99% 0 0);border-radius:50%;width:14px;height:14px;margin-top:-5px;box-shadow:0 1px 3px oklch(0% 0 0/.4)}input[type=range]::-moz-range-thumb{border:3px solid var(--accent);background:oklch(99% 0 0);border-radius:50%;width:8px;height:8px}.slider-stack{gap:14px;display:grid}.slider-row{grid-template-columns:1fr auto;align-items:baseline;row-gap:6px;display:grid}.slider-row input{grid-column:1/-1}.slider-label{color:var(--fg-2);font-size:12px}.slider-value{font-family:var(--font-mono);color:var(--fg-0);font-size:12px}.slider-value .u{color:var(--fg-3);margin-left:3px}.field-grid{grid-template-columns:82px 1fr;align-items:center;gap:8px 10px;display:grid}.field-label{color:var(--fg-2);align-items:center;gap:4px;font-size:12px;display:inline-flex}.chip-row{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid var(--border-1);font-family:var(--font-mono);color:var(--fg-3);cursor:pointer;background:0 0;border-radius:999px;padding:3px 8px;font-size:10.5px}.chip:hover{border-color:var(--border-2);color:var(--fg-1)}.chip.active{background:var(--accent-soft);border-color:var(--accent-line);color:var(--fg-0)}.popover{z-index:1000}.menu{background:var(--bg-1);border:1px solid var(--border-2);border-radius:var(--r-3);min-width:180px;max-width:320px;box-shadow:var(--shadow-pop);padding:4px;animation:.1s ease-out pop-in}.menu-item{border-radius:var(--r-2);width:100%;min-height:32px;color:var(--fg-1);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:6px 9px;font-size:12.5px;display:flex}.menu-item.highlight,.menu-item:hover:not(:disabled){background:var(--bg-3);color:var(--fg-0)}.menu-item:disabled{opacity:.4;cursor:not-allowed}.menu-item svg{color:var(--fg-3);flex:none}.menu-label{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.menu-description{color:var(--fg-3);font-size:11px}.menu-item .menu-check{color:var(--accent)}.tooltip{border-radius:var(--r-2);color:oklch(90% .006 258);pointer-events:none;background:oklch(24% .014 258);border:1px solid oklch(34% .015 258);max-width:300px;padding:8px 10px;font-size:11.5px;line-height:1.5;animation:.1s ease-out pop-in;box-shadow:0 8px 24px oklch(0% 0 0/.35)}.tooltip .tooltip-title{color:oklch(98% .004 258);font-weight:600}.tooltip .tooltip-warn{color:oklch(84% .15 82);margin-top:4px}.tooltip .mono{color:oklch(76% .01 258);font-size:10.5px}@keyframes pop-in{0%{opacity:0;transform:translateY(2px)}}.tip-anchor{align-items:center;min-width:0;display:inline-flex}.tip-anchor.block{display:block}.tip-anchor>:disabled{pointer-events:none}.info-tip{color:var(--fg-4);cursor:help;vertical-align:-2px;border-radius:50%;display:inline-flex}.info-tip:hover,.info-tip:focus-visible{color:var(--accent)}.details{margin-top:12px}.details>summary{color:var(--fg-3);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:11.5px;list-style:none;display:flex}.details>summary::-webkit-details-marker{display:none}.details>summary:before{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:5px;height:5px;transition:transform .15s;transform:rotate(-45deg)}.details[open]>summary:before{transform:rotate(45deg)}.details>summary:hover{color:var(--fg-1)}.details>.kv{margin-top:10px}.app{grid-template:"top top top"52px"rail main side"minmax(0,1fr)"bot bot bot"28px/236px minmax(0,1fr) 356px;width:100vw;height:100vh;display:grid}.topbar{background:var(--bg-1);border-bottom:1px solid var(--border-1);z-index:10;grid-area:top;align-items:center;gap:16px;min-width:0;padding:0 14px;display:flex}.brand{--brand-tilt:-16deg;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.brand-mark{flex:none;width:22px;height:22px;position:relative}.brand-mark:before,.brand-mark:after{content:"";border:2px solid var(--rp2);transform-origin:0 100%;border-radius:3px;width:14px;height:14px;transition:transform .45s cubic-bezier(.2,.9,.3,1.25);position:absolute;bottom:4px;left:5px}.brand-mark:after{border-color:var(--rp1);transform:rotate(var(--brand-tilt))}.brand-pivot{z-index:1;background:var(--fg-0);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-1);border-radius:50%;margin:0 0 -3px -3px;position:absolute;bottom:4px;left:5px}.wordmark{letter-spacing:-.02em;align-items:baseline;font-size:15px;line-height:1;display:inline-flex}.wm-anchor{color:var(--fg-2);font-weight:500}.wm-align{isolation:isolate;color:var(--fg-0);font-weight:700;position:relative}.wm-align:before,.wm-align:after{content:attr(data-text);z-index:-1;transform-origin:0 85%;transition:transform .45s cubic-bezier(.2,.9,.3,1.25),opacity .3s;position:absolute;top:0;left:0}.wm-align:before{color:var(--rp1);opacity:.7;transform:rotate(-5deg)}.wm-align:after{color:var(--rp2);opacity:.7;transform:rotate(3deg)}.brand:hover .brand-mark:after,.brand:hover .wm-align:before,.brand:hover .wm-align:after{transform:none}.brand:hover .wm-align:before,.brand:hover .wm-align:after{opacity:0}@media (prefers-reduced-motion:reduce){.brand-mark:after,.wm-align:before,.wm-align:after{transition:none}}.crumbs{align-items:center;gap:6px;min-width:0;display:flex}.file-chip{min-width:0;max-width:240px;height:var(--control-h);border-radius:var(--r-2);color:var(--fg-2);font-family:var(--font-mono);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:7px;padding:0 8px 0 5px;font-size:11.5px;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.file-chip:not(.loaded){border-style:dashed;border-color:var(--border-2);color:var(--fg-3)}.file-chip:hover:not(:disabled){background:var(--bg-2);border-color:var(--border-2);color:var(--fg-0)}.file-chip:disabled{opacity:.5;cursor:not-allowed}.file-chip .file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.file-chip-icon{color:var(--fg-4);flex:none}.file-chip-group{align-items:center;min-width:0;display:inline-flex}.file-chip-remove{border-radius:var(--r-1);min-width:22px;height:22px;color:var(--fg-4);cursor:pointer;opacity:.6;background:0 0;border:0;align-items:center;gap:4px;margin-left:-6px;padding:0 5px;font-size:11.5px;font-weight:500;transition:opacity .12s,background .12s,color .12s;display:inline-flex}.file-chip-group:hover .file-chip-remove,.file-chip-remove:focus-visible,.file-chip-group.confirming .file-chip-remove{opacity:1}.crumbs{flex:0 auto}.github-link{color:var(--fg-3);flex:none;margin-left:-8px}.brand{flex:none}.file-chip-remove:hover:not(:disabled),.file-chip-group.confirming .file-chip-remove{background:var(--bad-soft);color:var(--bad)}.file-chip-remove:disabled{cursor:not-allowed}.tag{background:var(--bg-3);color:var(--fg-1);font-family:var(--font-mono);letter-spacing:.04em;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:600}.top-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.vsep{background:var(--border-1);flex:none;width:1px;height:20px;margin:0 4px}.rail{background:var(--bg-1);border-right:1px solid var(--border-1);flex-direction:column;grid-area:rail;min-height:0;display:flex}.rail-mode{border-bottom:1px solid var(--border-1);gap:8px;padding:12px;display:grid}.rail-steps{flex:1;align-content:start;gap:6px;padding:8px;display:grid;overflow:auto}.rail-group{border-radius:var(--r-3);border:1px solid #0000;padding:4px}.rail-group.active{background:var(--bg-2);border-color:var(--border-1)}.rail-group.locked{opacity:.55}.rail-stage{border-radius:var(--r-2);width:100%;color:var(--fg-1);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;font-weight:600;display:flex}.rail-stage:hover:not(:disabled){background:var(--bg-3)}.rail-stage:disabled{cursor:default}.rail-group.active .rail-stage{color:var(--fg-0)}.stage-status{font-family:var(--font-mono);color:var(--fg-3);align-items:center;gap:4px;font-size:10.5px;font-weight:400;display:inline-flex}.stage-status.ok{color:var(--ok)}.stage-status.warn{color:var(--warn)}.stage-status.bad{color:var(--bad)}.rail-step{border-radius:var(--r-2);height:30px;color:var(--fg-2);cursor:pointer;grid-template-columns:20px minmax(0,1fr) auto 18px;align-items:center;gap:8px;padding:0 6px 0 8px;display:grid}.rail-step:hover:not([aria-disabled=true]){background:var(--bg-3);color:var(--fg-0)}.rail-step[aria-disabled=true]{cursor:default}.rail-step.active{background:var(--accent-soft);color:var(--fg-0)}.step-marker{border:1px solid var(--border-2);width:20px;height:20px;font-family:var(--font-mono);color:var(--fg-3);border-radius:50%;justify-content:center;align-items:center;font-size:10px;display:inline-flex}.rail-step.done .step-marker{background:var(--ok-soft);color:var(--ok);border-color:#0000}.rail-step.active .step-marker{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.step-name{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.step-image{font-family:var(--font-mono);color:var(--fg-3);font-size:10px}.step-clear{visibility:hidden;border-radius:4px;width:18px;height:18px}.rail-step:hover .step-clear,.step-clear:focus-visible{visibility:visible}.main{background:var(--bg-0);flex-direction:column;grid-area:main;min-width:0;display:flex;overflow:hidden}.canvas-bar{background:var(--bg-1);border-bottom:1px solid var(--border-1);height:44px;color:var(--fg-2);align-items:center;gap:10px;padding:0 12px;font-size:12px;display:flex}.canvas-bar .spacer{flex:1}.canvas-title{white-space:nowrap;color:var(--fg-3);align-items:baseline;gap:8px;display:flex}.canvas-stage-name{color:var(--fg-0);font-size:12.5px;font-weight:600}.opacity-control{width:170px;color:var(--fg-3);align-items:center;gap:8px;display:inline-flex}.opacity-control .mono{color:var(--fg-1);min-width:34px;font-size:11.5px}.meta-pill{border:1px solid var(--border-1);height:26px;color:var(--fg-3);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:11.5px;display:inline-flex}.meta-pill .mono{color:var(--fg-0)}.meta-pill .dot{background:var(--ok);border-radius:50%;width:6px;height:6px}.canvas-stage{background:radial-gradient(1100px 700px at 50% 30%, oklch(19% .012 258) 0%, var(--bg-0) 70%);color:var(--fg-1);flex:1;display:flex;position:relative;overflow:hidden}.canvas-stage.split{background:var(--border-1);grid-template-columns:1fr 1fr;gap:1px;display:grid}.canvas-pane{background:var(--bg-0);flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.pane-label{z-index:5;font-family:var(--font-mono);color:var(--fg-3);pointer-events:none;align-items:center;gap:8px;font-size:11.5px;display:flex;position:absolute;top:10px;left:12px}.pane-label .active-mark{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%}.pane-corner{z-index:5;font-family:var(--font-mono);color:var(--fg-3);text-shadow:0 1px 3px oklch(0% 0 0/.95);pointer-events:none;font-size:10.5px;position:absolute;bottom:10px;right:12px}.drop-empty{border:1.5px dashed var(--border-2);border-radius:var(--r-3);background:var(--bg-1);color:var(--fg-3);font:inherit;text-align:center;cursor:pointer;place-content:center;justify-items:center;gap:8px;transition:border-color .12s,background .12s,color .12s;display:grid;position:absolute;inset:12px}.drop-empty:hover:not(:disabled){border-color:var(--accent-line);background:var(--bg-2);color:var(--fg-1)}.drop-empty:disabled{cursor:default}.canvas-pane.dragging-file .drop-empty{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.drop-title{color:var(--fg-1);font-size:13px;font-weight:600}.drop-sub{font-family:var(--font-mono);font-size:11px}.roi-rect{fill:none;stroke-width:2px;stroke-dasharray:7 5;opacity:.95;vector-effect:non-scaling-stroke}.roi-rect.rp1{stroke:var(--rp1)}.roi-rect.rp2{stroke:var(--rp2)}.fixed-roi{opacity:.72}.moving-roi{fill:none;stroke-width:2.5px;stroke-dasharray:2 5;opacity:.98;vector-effect:non-scaling-stroke}.moving-roi.rp1{stroke:var(--rp1)}.moving-roi.rp2{stroke:var(--rp2)}.roi-fill{opacity:.07}.roi-fill.rp1{fill:var(--rp1)}.roi-fill.rp2{fill:var(--rp2)}.vec-line{stroke-width:2px;stroke-dasharray:7 6;opacity:.85;vector-effect:non-scaling-stroke}.vec-line.t1{stroke:var(--rp1)}.vec-line.t2{stroke:var(--rp2)}.crosshair line{stroke-width:1.6px;opacity:.88;vector-effect:non-scaling-stroke}.crosshair.rp1 line{stroke:var(--rp1)}.crosshair.rp2 line{stroke:var(--rp2)}.crosshair-ring{fill:none;stroke-width:1.8px;vector-effect:non-scaling-stroke}.crosshair-ring.rp1{stroke:var(--rp1)}.crosshair-ring.rp2{stroke:var(--rp2)}.crosshair-dot.rp1{fill:var(--rp1)}.crosshair-dot.rp2{fill:var(--rp2)}.transformed-marker{fill:none;stroke-width:2px;stroke-dasharray:7 5;opacity:.95;vector-effect:non-scaling-stroke}.transformed-marker.rp1{stroke:var(--rp1)}.transformed-marker.rp2{stroke:var(--rp2)}.point-label{font-family:var(--font-mono);fill:oklch(97% .004 258);paint-order:stroke;stroke:oklch(0% 0 0/.88);stroke-linejoin:round;stroke-width:3.5px;font-size:17px;font-weight:600}.live-placement-guide{stroke-width:1.5px;stroke-dasharray:5 6;opacity:.8;vector-effect:non-scaling-stroke}.placement-guide path{fill:none;stroke:var(--rp2);stroke-width:2.25px;stroke-dasharray:12 7;opacity:.98;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 1.5px oklch(0% 0 0/.95))}.placement-guide .placement-guide-label{fill:var(--rp2);font-size:20px}.loupe{z-index:20;border:2px solid var(--bg-3);width:144px;height:144px;box-shadow:0 0 0 1px var(--border-2), 0 10px 30px oklch(0% 0 0/.5);background:var(--bg-0);pointer-events:none;border-radius:50%;position:absolute;overflow:hidden}.loupe .crosslines:before,.loupe .crosslines:after{content:"";background:oklch(96% .004 258/.55);position:absolute}.loupe .crosslines:before{width:1px;top:0;bottom:0;left:50%;transform:translate(-.5px)}.loupe .crosslines:after{height:1px;top:50%;left:0;right:0;transform:translateY(-.5px)}.loupe .loupe-label{font-family:var(--font-mono);color:oklch(97% .004 258);background:oklch(0% 0 0/.55);border-radius:3px;padding:1px 5px;font-size:11px;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.prompt{z-index:12;background:var(--surface-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-2);max-width:calc(100% - 32px);box-shadow:var(--shadow-pop);border-radius:14px;align-items:center;gap:12px;padding:9px 10px 9px 14px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.prompt .swatch{background:var(--accent);width:9px;height:9px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%;flex:none}.prompt.rp1 .swatch{background:var(--rp1);box-shadow:0 0 0 4px var(--rp1-bg)}.prompt.rp2 .swatch{background:var(--rp2);box-shadow:0 0 0 4px var(--rp2-bg)}.prompt.ok .swatch{background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}.prompt.bad .swatch{background:var(--bad);box-shadow:0 0 0 4px var(--bad-soft)}.prompt-text{min-width:0;padding-right:4px}.prompt .title{white-space:nowrap;color:var(--fg-0);align-items:center;gap:5px;font-size:13px;font-weight:500;display:flex}.prompt .title b{font-weight:600}.prompt .sub{color:var(--fg-3);font-size:11px;font-family:var(--font-mono);align-items:center;gap:4px;margin-top:1px;display:flex}.prompt-actions{flex:none;gap:4px;display:flex}.autorun-bar{background:var(--accent);transform-origin:0;border-radius:2px;width:100%;min-width:140px;height:3px;margin-top:5px;animation:linear forwards autorun-countdown;display:block}@keyframes autorun-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.side{background:var(--bg-1);border-left:1px solid var(--border-1);flex-direction:column;grid-area:side;min-height:0;display:flex}.side-tabs{border-bottom:1px solid var(--border-1);padding:0 6px;display:flex}.side-tab{min-width:0;color:var(--fg-3);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex-direction:column;flex:1 1 0;align-items:center;gap:3px;padding:9px 2px 7px;font-size:10.5px;font-weight:500;display:flex}.side-tab:hover{color:var(--fg-1)}.side-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.side-tab.active span{color:var(--fg-0)}.side-header{border-bottom:1px solid var(--border-1);align-items:center;gap:8px;padding:12px 16px;display:flex}.side-header-name{color:var(--fg-0);font-size:13.5px;font-weight:600}.phase-badge{background:var(--bg-3);color:var(--fg-2);border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:500}.phase-badge.running,.phase-badge.ready{background:var(--accent-soft);color:var(--accent)}.phase-badge.done{background:var(--ok-soft);color:var(--ok)}.side-body{flex:1;overflow:auto}.side-foot{border-top:1px solid var(--border-1);padding:8px 10px}.side-foot .btn{width:100%}.settings-fields{border:0;min-width:0;margin:0;padding:0}.settings-fields:disabled{opacity:.6}.section{border-bottom:1px solid var(--border-1);padding:14px 16px}.section.flush{padding-left:8px;padding-right:8px}.section.flush>.section-h{padding:0 8px}.section-h{letter-spacing:.07em;text-transform:uppercase;color:var(--fg-3);justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;font-size:10.5px;font-weight:600;display:flex}.section-h>span:first-child{align-items:center;gap:5px;display:inline-flex}.section-h .h-meta{font-family:var(--font-mono);text-transform:none;letter-spacing:0;color:var(--fg-4);font-weight:400}.status-text{font-family:var(--font-mono);text-transform:none;letter-spacing:0;font-size:10.5px;font-weight:400}.status-text.ok{color:var(--ok)}.status-text.warn{color:var(--warn)}.kv{grid-template-columns:1fr auto;gap:7px 12px;font-size:12px;display:grid}.kv .k{color:var(--fg-3);align-items:center;gap:4px;display:inline-flex}.kv .v{font-family:var(--font-mono);color:var(--fg-1);text-align:right;font-size:11.5px}.kv .v.strong{color:var(--fg-0);font-weight:600}.kv .v.muted{color:var(--fg-3)}.kv .v.warn{color:var(--warn)}.kv .v.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty-note{color:var(--fg-3);text-align:center;padding:18px 16px;font-size:12px}.hint{color:var(--fg-3);margin:10px 0 0;font-size:11.5px}.warn-list{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.warn-list li{color:var(--warn);align-items:flex-start;gap:6px;font-size:11.5px;line-height:1.45;display:flex}.warn-list svg{flex:none;margin-top:2px}.results-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.results-grid.dense{grid-auto-flow:dense}.results-card.wide{grid-column:1/-1}.results-card{background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--r-3);min-width:0;padding:10px 12px}.results-card .lbl{color:var(--fg-3);align-items:center;gap:4px;font-size:10.5px;display:flex}.results-card .big{font-family:var(--font-mono);color:var(--fg-0);letter-spacing:-.02em;white-space:nowrap;margin-top:4px;font-size:20px;font-weight:500}.results-card .big.ok{color:var(--ok)}.results-card .big .u{color:var(--fg-3);letter-spacing:0;margin-left:3px;font-size:11px}.results-grid.dense .big{font-size:17px}.stage-results{gap:10px;display:grid}.stage-result{border:1px solid var(--border-1);border-radius:var(--r-3);gap:10px;padding:12px;display:grid}.stage-result.pending{border-style:dashed}.stage-result-h{align-items:center;gap:8px;display:flex}.stage-result-name{color:var(--fg-0);flex:1;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.stage-result-h .h-meta{font-family:var(--font-mono);color:var(--fg-4);font-size:10.5px}.stage-result-h .icon-btn{width:26px;height:26px}.score-chart{background:var(--bg-0);border:1px solid var(--border-1);border-radius:var(--r-2);width:100%;height:84px;position:relative;overflow:hidden}.score-chart.compact{height:40px}.score-chart .grid line{stroke:var(--border-1);stroke-width:.5px}.score-chart .axis-l,.score-chart .axis-r{font-family:var(--font-mono);color:var(--fg-4);font-size:9px;position:absolute}.score-chart .axis-l{top:5px;left:6px}.score-chart .axis-r{bottom:4px;left:6px}.score-chart .score-line{fill:none;stroke:var(--ok);stroke-width:1.5px;vector-effect:non-scaling-stroke}.score-chart .score-fill{fill:var(--ok-soft);stroke:none}.score-chart .score-dot{fill:var(--ok)}.score-chart .score-now{font-family:var(--font-mono);color:var(--ok);font-size:11px;position:absolute;top:5px;right:8px}.iter-row{border-radius:var(--r-1);font-family:var(--font-mono);color:var(--fg-1);grid-template-columns:22px 1fr 104px 62px 18px;align-items:center;gap:8px;padding:5px 8px;font-size:11px;display:grid}.iter-row.head{font-family:var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-4);font-size:10px;font-weight:600}.iter-row.current{background:var(--accent-soft)}.iter-row.rejected{color:var(--fg-3)}.iter-row:not(.head):hover{background:var(--bg-2)}.iter-row .n{color:var(--fg-4)}.iter-row .num{text-align:right;white-space:nowrap}.iter-row .score-bar{background:var(--bg-3);border-radius:2px;height:3px;margin-top:3px;overflow:hidden}.iter-row .score-bar>div{background:var(--ok);height:100%;transition:width .3s}.iter-status{justify-content:center;display:flex}.roi-history-controls{z-index:3;background:var(--bg-1);position:sticky;top:0}.roi-history-list{gap:10px;padding:10px;display:grid}.roi-history-empty{border:1px dashed var(--border-2);border-radius:var(--r-3);color:var(--fg-3);text-align:center;padding:24px 14px;font-size:12px}.roi-history-card{border:1px solid var(--border-1);border-radius:var(--r-3);background:var(--bg-2);overflow:hidden}.roi-history-card.rejected{opacity:.82}.roi-history-card.boundary{border-color:color-mix(in oklch, var(--warn) 55%, var(--border-1))}.roi-history-card-h{border-bottom:1px solid var(--border-1);justify-content:space-between;align-items:flex-start;gap:8px;padding:9px 10px;display:flex}.roi-history-title{color:var(--fg-0);font-size:12px;font-weight:600}.roi-history-delta{color:var(--fg-3);font:10px/1.35 var(--font-mono);margin-top:2px}.roi-history-badges{flex:none;gap:4px;display:flex}.history-badge{background:var(--bg-3);color:var(--fg-3);font:9.5px/1.3 var(--font-mono);text-transform:uppercase;border-radius:999px;padding:2px 7px}.history-badge.accepted{background:var(--ok-soft);color:var(--ok)}.history-badge.rejected{background:var(--bad-soft);color:var(--bad)}.history-badge.boundary{background:var(--warn-soft);color:var(--warn)}.roi-history-roi{border-bottom:1px solid var(--border-1);padding:9px 10px 10px}.roi-history-roi:last-child{border-bottom:0}.roi-history-roi.active{box-shadow:inset 2px 0 0 var(--accent)}.roi-history-roi.context{box-shadow:inset 2px 0 0 var(--border-2)}.roi-history-roi-h{color:var(--fg-1);justify-content:space-between;align-items:baseline;gap:8px;font-size:11px;font-weight:600;display:flex}.roi-history-objective{color:var(--fg-3);font:9.5px/1.2 var(--font-mono);flex:none;font-weight:400}.roi-history-scores{color:var(--fg-2);font:9.5px/1.2 var(--font-mono);flex-wrap:wrap;gap:8px;margin:5px 0 7px;display:flex}.roi-history-scores .fallback,.roi-history-scores .weak{color:var(--warn)}.roi-history-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.roi-history-figure{border:1px solid var(--border-1);border-radius:var(--r-2);background:var(--bg-0);flex-direction:column;justify-content:flex-end;align-items:center;min-width:0;margin:0;padding:6px 4px 4px;display:flex}.roi-history-figure.composite{width:100%}.roi-history-figure canvas{object-fit:contain;background:#000;width:auto;max-width:100%;height:108px;display:block}.roi-history-figure.composite canvas{height:128px}.roi-history-figure figcaption{color:var(--fg-3);font:9.5px/1.2 var(--font-mono);text-align:center;margin-top:5px}.bottombar{background:var(--bg-1);border-top:1px solid var(--border-1);font-family:var(--font-mono);color:var(--fg-3);white-space:nowrap;grid-area:bot;align-items:center;gap:12px;padding:0 14px;font-size:10.5px;display:flex;overflow:hidden}.bottombar .spacer{flex:1}.bottombar .disclaimer{color:var(--warn);cursor:help}.bottombar .secondary{display:contents}@media (width<=1360px){.bottombar .secondary{display:none}}.bottombar .pill{color:var(--fg-2);align-items:center;gap:6px;display:inline-flex}.bottombar .pill .dot{border-radius:50%;width:6px;height:6px}.bottombar .pill.idle .dot{background:var(--fg-4)}.bottombar .pill.run .dot{background:var(--warn);animation:1s linear infinite blink}.bottombar .pill.ok .dot{background:var(--ok)}@keyframes blink{50%{opacity:.35}}
