@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/Koine/studio/assets/archivo-vietnamese-wght-normal-XAtsl5Q_.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/Koine/studio/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/Koine/studio/assets/archivo-latin-wght-normal-E0tuGl4L.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,d09GMgABAAAAAAaEABMAAAAADFgAAAYdAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbbhwoP0hWQVJpBmA/U1RBVIE4AFwvbBEICoJ8gkMLFAAwhCoBNgIkAyIEIAWGUAdiDAcbvgpRVHJOI/viwCYyfSFrJjFIG8raYpYj9+IeSF0s6zD+Lk/4OGrZHhHV+wvt2ffuWPwlA51lIICIosSVmyOKEs5Uzlx3NKeXIgn1ssCydUybDV0IHga+SszIyfrQe9bLTFNxjayzgs76hNsDoSYtRe32fiJ4gxBjrP8L+w//zzHjv7Yqyr9o2vOBDXhCo2jMtr4uwAK/gV1U0PxAq/EAD+yW9EoKOL1KLw8rHrFgCSgRTQRzBzpeXVhweEDlyfY8gIoOa2CQJzrTAHIIoitTMVV2dyFwpJ2iAEQTpSkhPitxD3YwuZHEagTcAhyKAcBmUyPdhTovJThOw6HYiaF2M/J7erdi2OUutor6ES6Ac88AvfZvKpb6fJoArohb524042j6Jij36NI7P8Pb7s721naN9gcTtcjXQP4l+8BKEzFVGMxxoHqlq8Ul4LGneFJBDFaOdKpLPcg8P14YSDwIcn75hdlyJLTBlZ4voL6tT46yC/njunXqpJ0/bSvmrH1o3kRlwZ+j0DBogkF3KbDRVBlbOc+fY5HVXwPoT9hfekPnyZMaEmenYLMSg5npqegFOsgXsBv1IoF9aIVfSCNHkk6+gIzILsiYuhWQCfUtZEpbkRntQxBZgw7MwFbMcRvwJrAnBlDqs7isLtL7pO84Xru1i7ah7tckH1Wreqq6K9u0amxU1bcff/s2Y1ni3rh2I8zHzqkm3PGvv3mzC6NDBz/UcOBIg+nm88rxN8MbdtypvHUL5o1c2zG0urYpRmW+VHZdiba6GXN/3v0B3i3nt4RBsbfAu8ftLqRcTIlZ4VYheFTAS5nXLS65VZrbuW3daF2Ze1ChyGXWZN6u9nUuH1LfyTERifZXEpIueMe28vF8FOoTnsONzw+1djo9P71lZGx1vM8mH/BhvSa2HDsRZ1+Ul+RmpnPOIaEuwWnZZdkgQWAAyCDDZ1wk+0sh7wseAAwA6UlHxbftCgYAAwKAgwIAEA7ACfHIRbV7J6dwF/ZzcRRmAjXUYKAGWAlDCCFmKnH+LJEQfHKEmVrfmKwSEab36AcubXQBoDYJV/aRV+funFD8wAXLSLYbwr9+DR+h/qZIKCfeqRG5ghHpdY0zcV2nuz5iJMhAFjaTDwOcoyKGG9JHrCfdp4cC+kCvUrxc7+bliIMiHj95sPIbUeWZEP/HLnN2tlr9EBeRiktHuWvErx98fRz1MuEvHO3FDRgtsSzL/P0hsDLK2n5/uHMOjvTst0HD6t+80ZN798j7j//kjqHxIOZDFPR/FxurFD6/HxGbB799RPHLx5F89MoBOub9jVuOWtmPH3o9H3r26DIuff+LqPLwff/xryDRmiAYmjxiK0GwS9XU+k8QpUrHsCTs4qH89Fv44ubWbQmOE51M7J8Pt8+h+NKt3zZpa2L9zZqcRlyEc4MaNGdfjQCxgIygn78ne4yAzcLWA3zAJ6RRGbijvHr1W+XN8ywrG0EoZSySb0/A9KsllI7Q/Pq8hLu76tfTy5cF4X8bQxTtYp2vr6/+1oI4AhgAlNYFryt62VaX9ktO6VsAeDLeWx6fff4vdV1ts7N6+gw9GCsQnqPB0QUttB9nEc7Aaf4XM0NQ90VJ+HV1rG04znGCmXcpPCA9+nxdMPgPlT7Dz83NMfZuMJaNeRqbc+tjd2QER/b0B44d7nv5Rif7VC8svYkx9SKWwb3YzN2M3cY8jSNLl+PYZqfjxNTxOLXVCmfmduDc0ty1kLbjeiGfIrDFJXWPTTMD5TKupR8cpZgJeXTofId8NoUj6E8XfAc2k4WPdbCberDYAp8Q7L5dUo8wE8cs9QINZYvwXKzvBS4v/n+fQZkGrrFysKEIuFBgjQpxiHH1XA+ZBI+C+oAoxhYKECc42rGOc8L4mYhsiThGfFjOcKmFubPpDgwnY1918Fwo8ouenDJxvGP96HFWJ28hiOy251oKjkcbGz2POMme8CTMThx6wqOPsFtPI6j6HhDyDTxFQYnL88FcXGAGHl3ZuueRbEuxbK6Hc84ZDvRrREtLzyjj8Xkd/uShR1b0sYd8Nh8/c8znxCnadxQcf2nFVWIyw1g+4StXav9j75s+CQAA)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/Koine/studio/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/Koine/studio/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/Koine/studio/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/Koine/studio/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/Koine/studio/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/Koine/studio/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/Koine/studio/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/Koine/studio/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}div.mxRubberband{background:#07f;border:1px solid #00f;position:absolute;overflow:hidden}.mxCellEditor{_background:url(data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7);word-wrap:normal;resize:none;background:url(data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7);border:0 solid #0000;min-width:1px;margin:0;padding:0;display:inline-block;position:absolute;overflow:visible}.mxPlainTextEditor *{margin:0;padding:0}div.mxWindow{_background:url(data:image/gif;base64,R0lGODlhGgAUAIAAAOzs7PDw8CH5BAAAAAAALAAAAAAaABQAAAIijI+py70Ao5y02lud3lzhD4ZUR5aPiKajyZbqq7YyB9dhAQA7);z-index:1;background:url(data:image/gif;base64,R0lGODlhGgAUAIAAAOzs7PDw8CH5BAAAAAAALAAAAAAaABQAAAIijI+py70Ao5y02lud3lzhD4ZUR5aPiKajyZbqq7YyB9dhAQA7);border:1px solid #c3c3c3;position:absolute;overflow:hidden;box-shadow:3px 3px 12px silver}table.mxWindow{border-collapse:collapse;table-layout:fixed;font-family:Arial;font-size:8pt}td.mxWindowTitle{_background:url(data:image/gif;base64,R0lGODlhFwAXAMQAANfX18rKyuHh4c7OzsDAwMHBwc/Pz+Li4uTk5NHR0dvb2+jo6O/v79/f3/n5+dnZ2dbW1uPj44yMjNPT0+Dg4N3d3ebm5szMzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAXABcAAAWQICESxWiW5Ck6bOu+MMvMdG3f86LvfO/rlqBwSCwaj8ikUohoOp/QaDNCrVqvWKpgezhsv+AwmEIum89ocmPNbrvf64p8Tq/b5Yq8fs/v5x+AgYKDhIAAh4iJiouHEI6PkJGSjhOVlpeYmZUJnJ2en6CcBqMDpaanqKgXq6ytrq+rAbKztLW2shK5uru8vbkhADs=) repeat-x;text-overflow:ellipsis;white-space:nowrap;text-align:center;color:#000;background:url(data:image/gif;base64,R0lGODlhFwAXAMQAANfX18rKyuHh4c7OzsDAwMHBwc/Pz+Li4uTk5NHR0dvb2+jo6O/v79/f3/n5+dnZ2dbW1uPj44yMjNPT0+Dg4N3d3ebm5szMzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAXABcAAAWQICESxWiW5Ck6bOu+MMvMdG3f86LvfO/rlqBwSCwaj8ikUohoOp/QaDNCrVqvWKpgezhsv+AwmEIum89ocmPNbrvf64p8Tq/b5Yq8fs/v5x+AgYKDhIAAh4iJiouHEI6PkJGSjhOVlpeYmZUJnJ2en6CcBqMDpaanqKgXq6ytrq+rAbKztLW2shK5uru8vbkhADs=) repeat-x;height:13px;padding:4px 2px 6px;font-weight:700;overflow:hidden}td.mxWindowPane{vertical-align:top;padding:0}div.mxWindowPane{position:relative;overflow:hidden}td.mxWindowPane td{font-family:Arial;font-size:8pt}td.mxWindowPane input,td.mxWindowPane select,td.mxWindowPane textarea,td.mxWindowPane radio{border:1px solid #8c8c8c;padding:1px;font-family:Arial;font-size:8pt}td.mxWindowPane button{_background:url(data:image/gif;base64,R0lGODlhCgATALMAAP7+/t7e3vj4+Ojo6OXl5e/v7/n5+fb29vPz8/39/e3t7fHx8e7u7v///wAAAAAAACH5BAAAAAAALAAAAAAKABMAAAQ2MMlJhb0Y6c2X/2AhjiRjnqiirizqMkEsz0Rt30Ou7y8K/ouDcEg0GI9IgHLJbDif0Kh06owAADs=) repeat-x;float:left;background:url(data:image/gif;base64,R0lGODlhCgATALMAAP7+/t7e3vj4+Ojo6OXl5e/v7/n5+fb29vPz8/39/e3t7fHx8e7u7v///wAAAAAAACH5BAAAAAAALAAAAAAKABMAAAQ2MMlJhb0Y6c2X/2AhjiRjnqiirizqMkEsz0Rt30Ou7y8K/ouDcEg0GI9IgHLJbDif0Kh06owAADs=) repeat-x;padding:2px;font-family:Arial;font-size:8pt}img.mxToolbarItem{border-width:1px;margin-bottom:6px;margin-right:6px}select.mxToolbarCombo{vertical-align:top;border-style:inset;border-width:2px}div.mxToolbarComboContainer{padding:2px}img.mxToolbarMode{border-width:0;margin:2px 4px 4px 2px}img.mxToolbarModeSelected{border-style:inset;border-width:2px;margin:0 2px 2px 0}div.mxTooltip{cursor:default;color:#000;background:#ffc;border:1px solid #000;padding:4px;font-family:Arial;font-size:8pt;position:absolute;box-shadow:3px 3px 12px silver}div.mxPopupMenu{_background:url(data:image/gif;base64,R0lGODlhGgAUAIAAAOzs7PDw8CH5BAAAAAAALAAAAAAaABQAAAIijI+py70Ao5y02lud3lzhD4ZUR5aPiKajyZbqq7YyB9dhAQA7);background:url(data:image/gif;base64,R0lGODlhGgAUAIAAAOzs7PDw8CH5BAAAAAAALAAAAAAaABQAAAIijI+py70Ao5y02lud3lzhD4ZUR5aPiKajyZbqq7YyB9dhAQA7);border:1px solid #000;position:absolute;box-shadow:3px 3px 12px silver}table.mxPopupMenu{border-collapse:collapse;margin-top:1px;margin-bottom:1px}tr.mxPopupMenuItem{color:#000;cursor:pointer}tr.mxPopupMenuItemHover{color:#fff;cursor:pointer;background-color:#006}td.mxPopupMenuItem{white-space:nowrap;padding:2px 30px 2px 10px;font-family:Arial;font-size:8pt}td.mxPopupMenuIcon{background-color:#d0d0d0;padding:2px 4px}.mxDisabled{opacity:.2!important;cursor:default!important}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}:root{--koi-font-mono:"JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--koi-font-body:"Hanken Grotesk Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--koi-font-display:"Archivo Variable", "Hanken Grotesk Variable", system-ui, sans-serif;--koi-radius-2xs:2px;--koi-radius-xs:4px;--koi-radius:8px;--koi-radius-sm:6px;--koi-radius-lg:10px;--koi-radius-pill:999px;--koi-shadow:0 18px 50px #03070e80;--koi-accent-grad:linear-gradient(135deg, var(--koi-accent), var(--koi-cyan));--koi-z-base:1;--koi-z-sticky:2;--koi-z-raised:3;--koi-z-overlay:50;--koi-z-modal:100;--koi-z-popover:120;--koi-z-tooltip:200;--koi-z-toast:300;--koi-z-drag:400;--lang-csharp:#a179dc;--lang-typescript:#3178c6;--lang-python:#ffd43b;--lang-php:#777bb4;--lang-rust:#dea584;--koi-scrollbar-size:10px;--koi-scrollbar-thumb:color-mix(in srgb, var(--koi-muted) 40%, transparent);--koi-scrollbar-thumb-hover:color-mix(in srgb, var(--koi-muted) 65%, transparent);--koi-scrollbar-track:transparent;--koi-paper:#0e1117;--koi-paper-2:#161b22;--koi-surface:#1c2230;--koi-line:#2a3242;--koi-diagram-edge:#5d6b8e;--koi-fg:#d6dde8;--koi-muted:#7d8694;--koi-ink-soft:#aeb8c6;--koi-accent:#5aa9ff;--koi-on-accent:#08111f;--koi-cyan:#34d3c4;--koi-error:#ff6b6b;--koi-on-error:#2a0a0a;--koi-space-px:1px;--koi-space-0-5:2px;--koi-space-0-75:3px;--koi-space-1:4px;--koi-space-1-25:5px;--koi-space-1-5:6px;--koi-space-1-75:7px;--koi-space-2:8px;--koi-space-2-25:9px;--koi-space-2-5:10px;--koi-space-2-75:11px;--koi-space-3:12px;--koi-space-3-5:14px;--koi-space-4:16px;--koi-space-4-5:18px;--koi-text-2xs:.7rem;--koi-text-xs:.72rem;--koi-text-xs-plus:.74rem;--koi-text-sm:.78rem;--koi-text-sm-plus:.8rem;--koi-text-base:.82rem;--koi-text-base-plus:.84rem;--koi-text-md:.86rem;--koi-text-lg:.9rem;--koi-dur-fast:.12s;--koi-dur-base:.14s;--koi-dur-mid:.15s;--koi-dur-slow:.18s;--koi-hl-keyword:#c98cff;--koi-hl-type:#5ad1ff;--koi-hl-string:#7ee787;--koi-hl-regex:#ffab70;--koi-hl-number:#f0b86e;--koi-hl-comment:#6a7484;--koi-hl-meta:#ff9bce;--koi-hl-punct:#9aa6b6;--koi-hl-sem-enum:#ffd866;--koi-hl-sem-enum-member:#fc9867;--koi-hl-sem-property:#83e8c4;--koi-hl-sem-parameter:#ff9d8a}html[data-theme=light]{--koi-paper:#fff;--koi-paper-2:#f4f6fa;--koi-surface:#e9edf3;--koi-line:#d2d9e3;--koi-diagram-edge:#7a8698;--koi-fg:#1c2230;--koi-muted:#5b6573;--koi-ink-soft:#3a4452;--koi-accent:#2f7fe0;--koi-on-accent:#fff;--koi-cyan:#0b9d8f;--koi-error:#cf222e;--koi-on-error:#fff;--koi-hl-keyword:#8a3ffc;--koi-hl-type:#0b7fb8;--koi-hl-string:#1a7f37;--koi-hl-regex:#bc4c00;--koi-hl-number:#9a6700;--koi-hl-comment:#6a7484;--koi-hl-meta:#bf3989;--koi-hl-punct:#57606a;--koi-hl-sem-enum:#8a5a00;--koi-hl-sem-enum-member:#a64d00;--koi-hl-sem-property:#0f7a5f;--koi-hl-sem-parameter:#a83232}:root{--koi-ddd-aggregate:#8b87f5;--koi-ddd-entity:#34d399;--koi-ddd-value:#5aa9f0;--koi-ddd-enum:#fbbf24;--koi-ddd-event:#f472b6;--koi-ddd-integration-event:#2dd4bf;--koi-ddd-command:#ef4444;--koi-ddd-query:#38bdf8;--koi-ddd-read-model:#a3e635;--koi-ddd-service:#fb923c;--koi-ddd-repository:#94a3b8;--koi-ddd-policy:#d946ef;--koi-ddd-factory:#f59e0b;--koi-ddd-state-machine:#06b6d4;--koi-ddd-spec:#c084fc}.fx-spine,.deck-card{--ease:cubic-bezier(.33, 1, .68, 1)}.deck-card{background:var(--koi-paper);border:1px solid var(--koi-line);border-radius:var(--koi-radius-lg);transform-origin:0 0;will-change:transform;z-index:2;flex-direction:column;display:flex;position:absolute;overflow:hidden;box-shadow:0 10px 30px #03070e42}.deck-card.is-primary{box-shadow:0 12px 32px #03070e52, 0 0 0 2px var(--koi-accent)}.deck-card.is-secondary{box-shadow:0 12px 32px #03070e52, 0 0 0 2px color-mix(in srgb, var(--koi-accent) 55%, transparent)}.deck-stage.overview .deck-card{cursor:zoom-in}.deck-head{border-bottom:1px solid var(--koi-line);background:var(--koi-paper-2);height:31px;transition:background .2s var(--ease), box-shadow .2s var(--ease);flex:none;align-items:center;gap:7px;padding:0 6px 0 11px;font-size:12px;font-weight:600;display:flex}.deck-head .hbtn{all:unset;cursor:pointer;width:0;height:22px;color:var(--koi-muted);opacity:0;pointer-events:none;transition:opacity .2s var(--ease), width .2s var(--ease), margin .2s var(--ease), background .18s var(--ease), color .18s var(--ease);border-radius:5px;place-items:center;margin-left:0;display:inline-grid;overflow:hidden}.deck-head .hbtn svg{width:13px;height:13px}.deck-head .hbtn:hover{color:var(--koi-fg);background:var(--koi-line)}.deck-card.in-pair.is-selected .deck-head{background:color-mix(in srgb, var(--koi-accent) 11%, var(--koi-paper-2));box-shadow:inset 0 2px 0 var(--koi-accent)}.deck-card.in-pair:not(.is-selected){cursor:pointer}.deck-card.in-pair:not(.is-selected) .deck-head:hover{background:color-mix(in srgb, var(--koi-fg) 6%, var(--koi-paper-2))}.deck-card.in-pair .deck-head .tag{display:none}.deck-card.in-pair .deck-head .hbtn.close{opacity:1;pointer-events:auto;width:22px;margin-left:4px}.deck-subs{align-items:center;gap:2px;margin-left:6px;display:inline-flex;overflow:hidden}.deck-sub{all:unset;cursor:pointer;color:color-mix(in srgb, var(--koi-fg) 22%, var(--koi-muted));border-radius:var(--koi-radius-pill);white-space:nowrap;transition:color .22s var(--ease), background .22s var(--ease);padding:3px 8px;font-size:10.5px}.deck-sub:hover{color:var(--koi-fg)}.deck-sub.on{color:var(--koi-accent);background:color-mix(in srgb, var(--koi-accent) 13%, transparent)}.deck-sub:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}@media (prefers-reduced-motion:reduce){.deck-card,.fx-spine *,.fx-spine :before,.fx-spine :after,.koi-tip{transition:none!important}}.koi-tip{z-index:var(--koi-z-tooltip);pointer-events:none;font-family:var(--koi-font-body);color:var(--koi-fg);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);white-space:nowrap;opacity:0;align-items:center;gap:7px;padding:5px 8px;font-size:11px;font-weight:500;line-height:1;transition:opacity 90ms,transform 90ms;display:inline-flex;position:fixed;top:0;left:0;transform:translateY(-3px);box-shadow:0 6px 20px #03070e73}.koi-tip.on{opacity:1;transform:none}.koi-tip kbd{font-family:var(--koi-font-mono);color:var(--koi-muted);background:var(--koi-paper);border:1px solid var(--koi-line);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-size:10px}@media (prefers-reduced-motion:no-preference){.koi-domain-enter{animation:koi-domain-drill var(--koi-dur-fast) ease both}}@keyframes koi-domain-drill{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}*{box-sizing:border-box}::selection{background:color-mix(in srgb, var(--koi-accent) 35%, transparent);color:var(--koi-fg)}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--koi-scrollbar-thumb) var(--koi-scrollbar-track)}}::-webkit-scrollbar{width:var(--koi-scrollbar-size);height:var(--koi-scrollbar-size)}::-webkit-scrollbar-track{background:var(--koi-scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--koi-scrollbar-thumb);border-radius:var(--koi-radius-pill);background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--koi-scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:0 0}html,body{height:100%;margin:0}body{background:var(--koi-paper);color:var(--koi-fg);font-family:var(--koi-font-body);font-size:14px}#app{flex-direction:column;height:100vh;display:flex;overflow:hidden}#toolbar{align-items:center;gap:var(--koi-space-4-5);padding:var(--koi-space-2-75) var(--koi-space-4);background:linear-gradient(180deg, var(--koi-paper-2), color-mix(in srgb, var(--koi-paper-2) 80%, var(--koi-paper)));border-bottom:1px solid var(--koi-line);display:flex;position:relative}#toolbar:after{content:"";background:var(--koi-accent-grad);opacity:.5;height:1px;position:absolute;bottom:-1px;left:0;right:0}#toolbar{z-index:var(--koi-z-sticky);flex:none}.iconset{align-items:center;gap:var(--koi-space-0-5);flex:none;display:flex}.iconset .tb-group{gap:var(--koi-space-0-5);background:0 0;border:0;padding:0}body[data-route=home] #toolbar{display:none}.toolbar-right{align-items:center;gap:var(--koi-space-2);display:flex}.tb-group{align-items:center;gap:var(--koi-space-0-5);padding:var(--koi-space-0-5);background:color-mix(in srgb, var(--koi-paper) 55%, transparent);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);display:flex}.tb-divider{background:var(--koi-line);width:1px;height:20px}.iconset .t-ico,.iconset button{width:30px;height:30px;color:var(--koi-muted);border-radius:var(--koi-radius-sm);cursor:pointer;transition:background var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.iconset .t-ico:hover:not(:disabled),.iconset button:hover:not(:disabled){background:var(--koi-surface);color:var(--koi-fg)}.iconset .t-ico:disabled,.iconset button:disabled{opacity:.45;cursor:default}.iconset .t-ico:focus-visible,.iconset button:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.tb-ico{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:15px;height:15px}.generate{align-items:center;gap:var(--koi-space-1-75);height:30px;padding:0 var(--koi-space-3-5);border-radius:var(--koi-radius-sm);background:var(--koi-accent);color:var(--koi-on-accent);font-family:var(--koi-font-body);font-size:var(--koi-text-sm);cursor:pointer;transition:background var(--koi-dur-fast) ease, box-shadow var(--koi-dur-fast) ease;border:0;font-weight:600;display:inline-flex}.generate .tb-ico{color:currentColor}.generate:hover:not(:disabled){background:color-mix(in srgb, var(--koi-accent) 88%, white);box-shadow:0 2px 12px color-mix(in srgb, var(--koi-accent) 35%, transparent)}.generate:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}.brand{align-items:center;gap:var(--koi-space-2-75);color:var(--koi-fg);padding:var(--koi-space-1) var(--koi-space-1-5);border-radius:var(--koi-radius-sm);cursor:pointer;font:inherit;text-align:left;transition:background var(--koi-dur-mid) ease;background:0 0;border:0;flex:none;margin:0 0 0 -6px;display:flex}.brand:hover{background:var(--koi-surface)}.brand:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.brand-logo{align-items:center;display:inline-flex}.brand-logo svg{width:30px;height:30px;transition:filter var(--koi-dur-mid) ease;display:block}.brand:hover .brand-logo svg{filter:drop-shadow(0 2px 8px color-mix(in srgb, var(--koi-accent) 45%, transparent))}.brand-text{gap:var(--koi-space-0-5);flex-direction:column;line-height:1;display:flex}.brand-name{font-family:var(--koi-font-display);letter-spacing:-.01em;color:var(--koi-fg);font-size:1.12rem;font-weight:700}.brand-eyebrow{font-family:var(--koi-font-mono);text-transform:uppercase;letter-spacing:.28em;color:var(--koi-muted);font-size:.6rem;font-weight:500}.cmd{align-items:center;gap:var(--koi-space-2-5);min-width:0;max-width:560px;height:34px;padding:0 var(--koi-space-3);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);background:color-mix(in srgb, var(--koi-paper) 60%, transparent);color:var(--koi-muted);font-family:var(--koi-font-body);font-size:var(--koi-text-sm);cursor:text;transition:border-color var(--koi-dur-fast) ease;flex:auto;margin:0 auto;display:flex}.cmd:hover{border-color:color-mix(in srgb, var(--koi-accent) 45%, var(--koi-line))}.cmd:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.cmd-ico{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:14px;height:14px}.cmd-placeholder{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cmd-kbd{font-family:var(--koi-font-mono);font-size:var(--koi-text-xs);color:var(--koi-muted);border:1px solid var(--koi-line);padding:1px var(--koi-space-1-5);border-bottom-width:2px;border-radius:5px;flex:none;margin-left:auto}.emit-wrap{flex:none;display:inline-flex;position:relative}.emit{align-items:center;gap:var(--koi-space-2);height:30px;padding:0 var(--koi-space-2-75);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);background:color-mix(in srgb, var(--koi-paper) 60%, transparent);color:var(--koi-ink-soft);font-family:var(--koi-font-body);font-size:var(--koi-text-sm);cursor:pointer;transition:border-color var(--koi-dur-fast) ease, background var(--koi-dur-fast) ease;display:inline-flex}.emit:hover{border-color:color-mix(in srgb, var(--koi-accent) 45%, var(--koi-line))}.emit:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.emit-lbl{color:var(--koi-muted)}.emit-caret{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.7;flex:none;width:11px;height:11px}.emit-menu{padding:var(--koi-space-1);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);box-shadow:var(--koi-shadow);top:calc(100% + var(--koi-space-2));z-index:var(--koi-z-popover);min-width:100%;padding:var(--koi-space-0-5);margin:0;list-style:none;position:absolute;right:0}.emit-menu-item{text-align:left;border-radius:var(--koi-radius-sm);width:100%;color:var(--koi-fg);cursor:pointer;padding:var(--koi-space-1-5) var(--koi-space-2-5);font-family:var(--koi-font-body);font-size:var(--koi-text-base);background:0 0;border:1px solid #0000;display:block}.emit-menu-item:hover,.emit-menu-item:focus-visible{background:color-mix(in srgb, var(--koi-accent) 16%, transparent);border-color:color-mix(in srgb, var(--koi-accent) 40%, var(--koi-line));outline:none}.emit-menu-item{align-items:center;gap:var(--koi-space-2);display:flex}.emit-menu-item[aria-checked=true]{color:var(--koi-fg);background:color-mix(in srgb, var(--koi-accent) 12%, transparent)}.emit-menu-item[aria-checked=true]:after{content:"✓"/"";color:var(--koi-accent);font-size:var(--koi-text-xs);font-weight:700;line-height:1}.emit-menu-name{flex:auto}.emit-menu-ext{color:var(--koi-muted);font-family:var(--koi-font-mono);font-size:var(--koi-text-xs)}.icon-btn{width:30px;height:30px;color:var(--koi-muted);border-radius:var(--koi-radius-sm);font-family:var(--koi-font-body);cursor:pointer;transition:background var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:.95rem;font-style:normal;line-height:1;display:inline-flex}.icon-btn:hover{background:var(--koi-surface);color:var(--koi-fg);border-color:var(--koi-line)}.icon-btn[hidden]{display:none}.icon-btn:disabled{opacity:.4;cursor:default;pointer-events:none}.topbar-breadcrumb{min-width:0;display:flex}.topbar-breadcrumb[hidden]{display:none}.koi-breadcrumb{align-items:center;gap:var(--koi-space-1);min-width:0;color:var(--koi-muted);font-size:var(--koi-text-sm);white-space:nowrap;line-height:1;display:flex}.koi-crumb-scope-wrap{align-items:center;min-width:0;display:inline-flex;position:relative}.koi-crumb-scope{appearance:none;max-width:13rem;padding:var(--koi-space-0-75) calc(var(--koi-space-4) - 1px) var(--koi-space-0-75) var(--koi-space-1-5);border-radius:var(--koi-radius-sm);color:var(--koi-muted);font-family:var(--koi-font-body);font-size:var(--koi-text-sm);text-overflow:ellipsis;cursor:pointer;transition:color var(--koi-dur-fast) ease, background var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease;background:0 0;border:1px solid #0000;margin:0;font-weight:500;line-height:1}.koi-crumb-scope:hover{background:color-mix(in srgb, var(--koi-paper) 55%, transparent);border-color:var(--koi-line);color:var(--koi-fg)}.koi-crumb-scope:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.koi-crumb-scope-wrap[data-scoped=true] .koi-crumb-scope{color:var(--koi-fg)}.koi-crumb-chevron{right:var(--koi-space-1-25);pointer-events:none;fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:11px;height:11px;color:var(--koi-muted);opacity:.85;transition:color var(--koi-dur-fast) ease;position:absolute}.koi-crumb-scope-wrap:hover .koi-crumb-chevron{color:var(--koi-fg)}.koi-crumb-sep{color:var(--koi-line);flex:none}.koi-crumb{text-overflow:ellipsis;overflow:hidden}.koi-crumb-leaf{align-items:center;gap:var(--koi-space-1-25);color:var(--koi-fg);font-weight:500;display:inline-flex}.koi-crumb-leaf .koi-model-icon{flex:none}@media (width<=1040px){.koi-crumb-sep,.koi-crumb-leaf{display:none}}.koi-overflow-menu{padding:var(--koi-space-1);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);box-shadow:var(--koi-shadow);z-index:var(--koi-z-popover);min-width:168px;margin:0;list-style:none;position:fixed}.koi-overflow-menu-item{text-align:left;border-radius:var(--koi-radius-sm);width:100%;color:var(--koi-fg);cursor:pointer;padding:var(--koi-space-1-5) var(--koi-space-2-5);font-family:var(--koi-font-body);font-size:var(--koi-text-base);background:0 0;border:1px solid #0000;display:block}.koi-overflow-menu-item:hover,.koi-overflow-menu-item:focus-visible{background:color-mix(in srgb, var(--koi-accent) 16%, transparent);border-color:color-mix(in srgb, var(--koi-accent) 40%, var(--koi-line));outline:none}@media (width<=640px){#toolbar{overflow-x:auto}#toolbar:after{bottom:0}#install-affordance,#emit-target-host,#btn-prefs{display:none}#btn-toolbar-overflow{display:inline-flex}}#split{--koi-rstrip-w:2.625rem;grid-template-columns:var(--koi-leftrail-w,280px) 6px 1fr 6px var(--koi-inspector-w,320px) var(--koi-rstrip-w,2.25rem);flex:auto;min-height:0;display:grid}#leftrail{grid-column:1}#leftrail-resizer{grid-column:2}#center{grid-column:3}#split-resizer{grid-column:4}#right{grid-column:5}#right-strip{grid-column:6}#leftrail,#leftrail-resizer,#center,#split-resizer,#right,#right-strip{grid-row:1}.pane{min-width:0;min-height:0;overflow:hidden}#right-strip{align-items:center;gap:var(--koi-space-1);padding:var(--koi-space-2) var(--koi-space-1);background:var(--koi-paper-2);border-left:1px solid var(--koi-line);flex-direction:column;display:flex;overflow:visible}#split.right-collapsed{grid-template-columns:var(--koi-leftrail-w,280px) 6px 1fr 0 0 var(--koi-rstrip-w,2.25rem)}#split[data-siderail-side=left].right-collapsed{grid-template-columns:0 0 1fr 6px var(--koi-leftrail-w,280px) var(--koi-rstrip-w,2.25rem)}#split.right-collapsed #right,#split.right-collapsed #split-resizer{display:none}#split.left-collapsed{grid-template-columns:var(--koi-rstrip-w,2.25rem) 0 1fr 6px var(--koi-inspector-w,320px) var(--koi-rstrip-w,2.25rem)}#split.left-collapsed.right-collapsed{grid-template-columns:var(--koi-rstrip-w,2.25rem) 0 1fr 0 0 var(--koi-rstrip-w,2.25rem)}#split.left-collapsed #leftrail-resizer{display:none}#split[data-siderail-side=left]{grid-template-columns:var(--koi-inspector-w,320px) 6px 1fr 6px var(--koi-leftrail-w,280px) var(--koi-rstrip-w,2.25rem)}#split[data-siderail-side=left] #right{border-right:1px solid var(--koi-line);grid-column:1}#split[data-siderail-side=left] #split-resizer{grid-column:2}#split[data-siderail-side=left] #leftrail-resizer{grid-column:4}#split[data-siderail-side=left] #leftrail{border-right:none;grid-column:5}#split[data-siderail-side=left].left-collapsed{grid-template-columns:var(--koi-inspector-w,320px) 6px 1fr 0 var(--koi-rstrip-w,2.25rem) var(--koi-rstrip-w,2.25rem)}#split[data-siderail-side=left].left-collapsed.right-collapsed{grid-template-columns:0 0 1fr 0 var(--koi-rstrip-w,2.25rem) var(--koi-rstrip-w,2.25rem)}#leftrail,#center{border-right:1px solid var(--koi-line)}.koi-resizer{cursor:col-resize;background:var(--koi-line);width:6px;transition:background var(--koi-dur-fast) ease;border:none;align-self:stretch;padding:0;position:relative}.koi-resizer-y{cursor:row-resize;align-self:auto;width:100%;height:6px}.koi-resizer:hover,.koi-resizer:active,body.resizing .koi-resizer{background:var(--koi-accent)}body.resizing{-webkit-user-select:none;user-select:none}body.resizing-x{cursor:col-resize}body.resizing-y{cursor:row-resize}@media (width<=640px){#split,#split.right-collapsed,#split.left-collapsed,#split.left-collapsed.right-collapsed,#split[data-siderail-side=left],#split[data-siderail-side=left].right-collapsed,#split[data-siderail-side=left].left-collapsed,#split[data-siderail-side=left].left-collapsed.right-collapsed{grid-template-columns:1fr}#leftrail-resizer,#split-resizer,#right-strip{display:none}#leftrail,#center,#right{grid-column:1}#split[data-mobile-zone] #leftrail,#split[data-mobile-zone] #center,#split[data-mobile-zone] #right{display:none}#split[data-mobile-zone=files] #leftrail,#split[data-mobile-zone=code] #center,#split[data-mobile-zone=diagram] #center{display:flex}#app{padding-bottom:var(--koi-mzb-h,3rem)}}#leftrail{background:var(--koi-paper-2);flex-direction:column;display:flex;overflow:hidden auto}.rail-head{align-items:stretch;gap:var(--koi-space-1);margin:var(--koi-space-2) var(--koi-space-2) 0;flex:none;display:flex}.rail-collapse{border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);background:var(--koi-paper);width:1.75rem;color:var(--koi-muted);cursor:pointer;transition:background var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease;flex:none;justify-content:center;align-items:center;display:inline-flex}.rail-collapse:hover{color:var(--koi-accent);background:var(--koi-surface)}.rail-collapse:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}#rail-axis-switch{gap:var(--koi-space-0-5);padding:var(--koi-space-0-5);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);background:var(--koi-paper);flex:auto;display:flex}.rail-axis{padding:var(--koi-space-1-25) var(--koi-space-2);border-radius:var(--koi-radius-xs);color:var(--koi-muted);font-family:var(--koi-font-body);font-size:var(--koi-text-xs);letter-spacing:.03em;text-align:center;cursor:pointer;transition:background var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease;background:0 0;border:1px solid #0000;flex:1 1 0;font-weight:600}.rail-axis:hover{color:var(--koi-fg)}.rail-axis[aria-selected=true]{background:color-mix(in srgb, var(--koi-accent) 16%, transparent);border-color:var(--koi-accent);color:var(--koi-accent)}.rail-axis:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.rail-navigator-body{flex-direction:column;flex:auto;min-height:0;display:flex}.rail-pane{padding:var(--koi-space-1) var(--koi-space-2) var(--koi-space-3)}.rail-sect{border-bottom:1px solid var(--koi-line);flex-direction:column;flex:none;display:flex}#rail-files[hidden]{display:none}.rail-sect-head-row{justify-content:space-between;align-items:center;gap:var(--koi-space-2);padding-right:var(--koi-space-3);display:flex}.rail-sect-head-row .rail-sect-head{flex:auto}.rail-sect-head{align-items:center;gap:var(--koi-space-1-5);width:100%;padding:var(--koi-space-2) var(--koi-space-3);color:var(--koi-muted);font-family:var(--koi-font-body);font-size:var(--koi-text-xs);letter-spacing:.04em;text-transform:uppercase;text-align:left;cursor:pointer;transition:color var(--koi-dur-fast) ease;background:0 0;border:none;font-weight:600;display:flex}.rail-sect-head:before{content:"▾";transition:transform var(--koi-dur-fast) ease;font-size:.8em;line-height:1}.rail-sect-head:hover{color:var(--koi-fg)}.rail-sect-meta{max-width:45%;font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);letter-spacing:.4px;text-transform:uppercase;color:var(--koi-muted);white-space:nowrap;text-overflow:ellipsis;flex:none;overflow:hidden}.rail-sect[data-open=false] .rail-sect-head:before{transform:rotate(-90deg)}.rail-sect[data-open=false] .rail-sect-body{display:none}.rail-sect-body{padding:var(--koi-space-1) var(--koi-space-2) var(--koi-space-3)}#rail-files .rail-sect-body{padding:0}#leftrail .explorer,#leftrail .explorer-tree{flex:none;overflow:visible}@media (prefers-reduced-motion:no-preference){.koi-domain-enter{animation:koi-domain-drill var(--koi-dur-fast) ease both}}#left-strip{align-items:center;gap:var(--koi-space-1);padding:var(--koi-space-2) var(--koi-space-1);flex-direction:column;display:none}#split.left-collapsed .rail-head,#split.left-collapsed .rail-navigator-body{display:none}#split.left-collapsed #left-strip{display:flex}.lstrip-btn{border-radius:var(--koi-radius-sm);width:1.75rem;height:1.75rem;color:var(--koi-muted);cursor:pointer;transition:background var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.lstrip-btn:hover{color:var(--koi-accent);background:var(--koi-surface)}.lstrip-btn:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.lstrip-btn[aria-pressed=true]{background:color-mix(in srgb, var(--koi-accent) 16%, transparent);border-color:var(--koi-accent);color:var(--koi-accent)}.lstrip-expand{margin-bottom:var(--koi-space-1);color:var(--koi-fg)}@media (width<=640px){#split.left-collapsed .rail-head,#split.left-collapsed .rail-navigator-body{display:flex}#split.left-collapsed #left-strip{display:none}}#center{background:var(--koi-paper);flex-direction:column;min-height:0;display:flex}#center-body{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}#center-body[hidden]{display:none}.center-host{min-height:0;position:absolute;inset:0}.center-host[hidden]{display:none}#center-technical,#center-output,#center-docs{flex-direction:column;display:flex}#center-technical[hidden],#center-output[hidden],#center-docs[hidden]{display:none}#center-visual{flex-direction:column;display:flex;overflow:hidden}#center-visual[hidden]{display:none}#diagram-host{flex:auto;min-height:0;position:relative;overflow:hidden}#tech-body,#output-body,#docs-body{flex:auto;min-height:0;position:relative}.tech-view{min-height:0;position:absolute;inset:0}.tech-view.doc-view{padding:var(--koi-space-4) 20px;overflow-y:auto}.cm-editor{height:100%}.fx-spine,.deck-stage{--ease:cubic-bezier(.33, 1, .68, 1)}.fx-spine{background:var(--koi-paper-2);border-bottom:1px solid var(--koi-line);flex:none;align-items:stretch;height:34px;font-size:12px;display:flex}.fx-spine.split{padding:0}.fx-strip{align-items:stretch;padding-left:4px;display:flex}.fx-tabwrap{border-radius:var(--koi-radius-sm);align-items:stretch;margin:4px 1px;transition:background .16s;display:inline-flex;overflow:hidden}.fx-tabwrap:not(.on):hover{background:color-mix(in srgb, var(--koi-fg) 7%, transparent)}.fx-tab{all:unset;cursor:pointer;color:var(--koi-muted);align-items:center;gap:7px;padding:0 9px;transition:color .16s,background .16s,box-shadow .16s;display:inline-flex}.fx-tab svg{width:15px;height:15px}.fx-tab .ic{align-items:center;display:inline-flex}.fx-tab .lbl{white-space:nowrap;opacity:0;max-width:0;font-weight:600;line-height:1;transition:max-width .22s,opacity .18s;overflow:hidden}.fx-tab:hover{color:var(--koi-fg)}.fx-tab.on{color:var(--sc);background:color-mix(in srgb, var(--sc) 13%, transparent);box-shadow:inset 0 -2px 0 var(--sc)}.fx-tab.on .ic{color:var(--sc)}.fx-tab.on .lbl{opacity:1;max-width:120px}.fx-tab:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}.fx-beside{all:unset;cursor:pointer;opacity:0;width:0;color:var(--koi-muted);border-left:1px solid #0000;align-self:stretch;place-items:center;transition:width .18s,opacity .16s,background .16s,color .16s,border-color .16s;display:inline-grid;overflow:hidden}.fx-beside svg{width:13px;height:13px}.fx-beside:hover{color:var(--sc,var(--koi-accent));background:color-mix(in srgb, var(--sc,var(--koi-accent)) 16%, transparent)}.fx-beside:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}.fx-tabwrap:hover .fx-beside,.fx-beside:focus-visible{opacity:1;border-left-color:color-mix(in srgb, var(--koi-fg) 14%, transparent);width:24px}.fx-div{background:var(--koi-line);width:1px;margin:7px 8px}.fx-facets{align-items:center;gap:2px;display:flex}.fx-facet{all:unset;cursor:pointer;color:color-mix(in srgb, var(--koi-fg) 22%, var(--koi-muted));border-radius:var(--koi-radius-pill);padding:3px 9px;font-size:11px;transition:color .16s,background .16s}.fx-facet:hover{color:var(--koi-fg)}.fx-facet.on{color:var(--sc);background:color-mix(in srgb, var(--sc) 14%, transparent)}.fx-facet:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-1px}.fx-grow{flex:auto}.fx-act{all:unset;cursor:pointer;color:var(--koi-muted);border-radius:var(--koi-radius-sm);border:1px solid #0000;align-self:center;align-items:center;gap:6px;height:24px;margin-right:5px;padding:0 11px;font-size:11px;font-weight:600;transition:color .16s,border-color .16s,background .16s;display:inline-flex}.fx-act svg{width:15px;height:15px}.fx-act:hover{color:var(--koi-fg);border-color:var(--koi-accent)}.fx-act:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}.fx-act.on{color:var(--koi-on-accent);background:var(--koi-accent);border-color:var(--koi-accent)}.fx-act.mini{padding:0 9px}.fx-tag{color:var(--koi-muted);align-self:center;margin-right:12px;font-size:10.5px}.fx-half{align-items:stretch;min-width:0;display:flex}.fx-half .fx-hlabel{color:var(--sc);white-space:nowrap;align-self:center;align-items:center;gap:7px;padding:0 10px;font-weight:600;display:inline-flex}.fx-half .fx-hlabel svg{width:15px;height:15px}.fx-half.sel{background:color-mix(in srgb, var(--sc) 10%, transparent);box-shadow:inset 0 -2px 0 var(--sc)}.fx-half:not(.sel){cursor:pointer}.fx-half .fx-facets{padding-left:2px}.fx-hclose{all:unset;cursor:pointer;width:22px;color:var(--koi-muted);opacity:0;border-radius:5px;align-self:center;place-items:center;transition:opacity .16s,color .16s,background .16s;display:inline-grid}.fx-hclose svg{width:13px;height:13px}.fx-hclose:hover{color:var(--koi-fg);background:var(--koi-line)}.fx-hclose:focus-visible{opacity:1;outline:2px solid var(--koi-accent);outline-offset:-2px}.fx-half:hover .fx-hclose{opacity:1}.fx-swap{all:unset;cursor:pointer;width:30px;color:var(--koi-muted);border-left:1px solid var(--koi-line);border-right:1px solid var(--koi-line);background:var(--koi-paper-2);flex:none;align-self:stretch;place-items:center;transition:color .18s,background .18s;display:grid}.fx-swap svg{width:15px;height:15px;transition:transform .3s var(--ease)}.fx-swap:hover{color:var(--koi-accent);background:color-mix(in srgb, var(--koi-accent) 10%, transparent)}.fx-swap:active svg{transform:rotate(180deg)}.fx-swap:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}.deck-stage{isolation:isolate;flex:auto;min-height:0;position:relative;overflow:hidden}.deck-stage.overview{background:radial-gradient(circle at 1px 1px, color-mix(in srgb, var(--koi-muted) 15%, transparent) 1px, transparent 0);background-size:26px 26px}.deck-card{background:var(--koi-paper);transform-origin:0 0;will-change:transform;z-index:2;flex-direction:column;display:flex;position:absolute;overflow:hidden}.deck-card.ghost{opacity:0;pointer-events:none;z-index:1}.deck-stage:not(.overview) .deck-card{box-shadow:none;border:0;border-radius:0}.deck-stage:not(.overview) .deck-head{display:none}.deck-stage.overview .deck-card{border:1px solid var(--koi-line);border-radius:var(--koi-radius-lg);cursor:zoom-in;box-shadow:0 10px 30px #03070e42}.deck-stage.overview .deck-card.is-primary{box-shadow:0 12px 32px #03070e52, 0 0 0 2px var(--koi-accent)}.deck-stage.overview .deck-card.is-secondary{box-shadow:0 12px 32px #03070e52, 0 0 0 2px color-mix(in srgb, var(--koi-accent) 55%, transparent)}.deck-stage.overview .deck-card:hover{border-color:color-mix(in srgb, var(--card-c,var(--koi-accent)) 60%, var(--koi-line));box-shadow:0 20px 44px #03070e6b}.deck-head{border-bottom:1px solid var(--koi-line);background:var(--koi-paper-2);flex:none;align-items:center;gap:7px;height:31px;padding:0 6px 0 11px;font-size:12px;font-weight:600;display:flex}.deck-head .ci{color:var(--card-c,var(--koi-accent));display:inline-flex}.deck-head .ci svg{width:15px;height:15px}.deck-head .hlabel{white-space:nowrap}.deck-head .grow{flex:auto;min-width:4px}.deck-head .tag{color:var(--koi-muted);white-space:nowrap;font-size:10.5px;font-weight:400}.deck-head .hbtn{all:unset;opacity:0;pointer-events:none;width:0;overflow:hidden}.deck-stage.overview .deck-subs{display:none}.deck-body{flex:auto;min-height:0;position:relative}.deck-seam{z-index:6;cursor:col-resize;touch-action:none;width:12px;display:none;position:absolute;top:0;bottom:0;transform:translate(-50%)}.deck-seam.show{display:block}.deck-seam:before{content:"";background:var(--koi-line);width:1px;transition:width .14s,background .14s;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.deck-seam:hover:before,.deck-seam.drag:before{background:var(--koi-accent);width:3px}.out2{grid-template-rows:minmax(0,1fr);grid-template-columns:240px minmax(0,1fr);display:grid;position:absolute;inset:0}.out-rail{border-right:1px solid var(--koi-line);background:var(--koi-paper-2);padding:8px 0;overflow:auto}.out-railhead{letter-spacing:.04em;text-transform:uppercase;color:var(--koi-muted);align-items:center;gap:7px;padding:4px 12px 9px;font-size:10.5px;display:flex}.out-railhead b{color:var(--koi-fg);letter-spacing:0;text-transform:none;font-size:11.5px;font-weight:700}.out-ctx{letter-spacing:.1em;text-transform:uppercase;color:var(--koi-muted);align-items:center;gap:6px;padding:9px 12px 4px;font-size:10px;display:flex}.out-ctx:before{content:"";background:var(--koi-line);border-radius:2px;width:6px;height:6px}.out-file{all:unset;box-sizing:border-box;cursor:pointer;width:100%;color:var(--koi-ink-soft);border-left:2px solid #0000;align-items:center;gap:8px;padding:5px 12px 5px 24px;font-size:12px;display:flex}.out-file .fdot{background:var(--fc,var(--koi-muted));border-radius:2px;flex:none;width:7px;height:7px}.out-file .fname{font-family:var(--koi-font-mono);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.out-file .floc{color:var(--koi-muted);opacity:.7;margin-left:auto;font-size:10px}.out-file:hover{background:color-mix(in srgb, var(--koi-fg) 6%, transparent);color:var(--koi-fg)}.out-file.on{background:color-mix(in srgb, var(--koi-ddd-event) 14%, transparent);color:var(--koi-fg);border-left-color:var(--koi-ddd-event)}.out-file:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}.out-ctx.on{color:var(--koi-fg)}.out-ctx.on:before{background:var(--koi-accent)}.out-ctx-active{letter-spacing:.06em;color:var(--koi-accent);border:1px solid color-mix(in srgb, var(--koi-accent) 45%, var(--koi-line));border-radius:var(--koi-radius-pill);margin-left:auto;padding:1px 6px;font-size:9px}.out-ctx.dim,.out-file.dim{opacity:.5}.out-file.dim:hover{opacity:1}.out-view{flex-direction:column;min-width:0;display:flex;position:relative}.out-crumb{font-family:var(--koi-font-mono);color:var(--koi-muted);border-bottom:1px solid var(--koi-line);flex:none;align-items:center;gap:6px;padding:8px 14px;font-size:11px;display:flex}.out-crumb-path{align-items:center;gap:6px;min-width:0;display:inline-flex;overflow:hidden}.out-crumb-path .seg{white-space:nowrap}.out-crumb-path .seg.leaf{color:var(--koi-fg);text-overflow:ellipsis;overflow:hidden}.out-crumb-path .sl{opacity:.4}.out-lang{color:var(--koi-hl-keyword);border:1px solid color-mix(in srgb, var(--koi-hl-keyword) 45%, var(--koi-line));border-radius:var(--koi-radius-pill);white-space:nowrap;margin-left:auto;padding:1px 9px;font-size:10px}.out-copy{all:unset;cursor:pointer;color:var(--koi-muted);border-radius:5px;padding:2px 8px;font-size:10.5px;font-weight:600}.out-copy:hover{color:var(--koi-fg);background:var(--koi-line)}.out-copy:disabled{opacity:.5;cursor:default}.out-copy:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-1px}.out-code{flex:auto;min-height:0;position:relative;overflow:hidden}@media (prefers-reduced-motion:reduce){.deck-card{transition:none!important}.fx-spine *,.fx-spine :before,.fx-spine :after{transition-duration:.01ms!important}}#statusbar{height:26px;padding:0 var(--koi-space-1);background:var(--koi-paper-2);border-top:1px solid var(--koi-line);color:var(--koi-muted);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);white-space:nowrap;flex:none;align-items:center;gap:0;display:flex;overflow:hidden}.sb-seg{align-items:center;gap:var(--koi-space-1-5);height:100%;padding:0 var(--koi-space-2-5);color:inherit;font:inherit;cursor:pointer;transition:background var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease;background:0 0;border:0;margin:0;display:inline-flex}.sb-seg:hover{background:var(--koi-surface);color:var(--koi-fg)}.sb-seg:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}.sb-seg[hidden]{display:none}.sb-seg.static{cursor:default}.sb-seg.static:hover{color:var(--koi-muted);background:0 0}.sb-ctx:after{content:"";opacity:.6;border-bottom:4px solid;border-left:3px solid #0000;border-right:3px solid #0000;width:0;height:0}.sb-ico{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:12px;height:12px}.sb-err{color:var(--koi-muted)}.sb-err.has{color:var(--koi-error)}.sb-warn{color:var(--koi-hl-number)}#sb-docs-ring{display:contents}.sb-ring svg{flex:none;width:15px;height:15px}.sb-ready:before{content:"";border-radius:var(--koi-radius-pill);background:var(--koi-muted);flex:none;width:7px;height:7px}.sb-ready[data-state=online]:before{background:var(--koi-hl-string)}.sb-ready[data-state=offline]:before{background:var(--koi-error)}.sb-item{align-items:center;gap:var(--koi-space-1);padding:0 var(--koi-space-2);display:inline-flex}.sb-spacer{margin-left:auto}#sb-problems-host{display:contents}.koi-problems-badge[data-kind=error]{color:var(--koi-error)}.koi-problems-badge[data-kind=warn]{color:var(--koi-hl-number)}#sb-compiling-host{display:contents}.koi-compiling-indicator{color:var(--koi-muted);font-style:italic}.koi-compiling-indicator[hidden]{display:none}.koi-compiling-indicator:before{content:"";border-radius:var(--koi-radius-pill);background:currentColor;width:6px;height:6px;animation:1.3s ease-in-out infinite koi-pulse}@media (prefers-reduced-motion:reduce){.koi-compiling-indicator:before{animation:none}}#status{align-items:center;gap:var(--koi-space-1-75);font-family:var(--koi-font-mono);font-size:var(--koi-text-xs-plus);letter-spacing:.2px;padding:var(--koi-space-1) 11px var(--koi-space-1) var(--koi-space-2-25);border-radius:var(--koi-radius-pill);border:1px solid var(--koi-line);background:color-mix(in srgb, var(--koi-paper) 50%, transparent);color:var(--koi-muted);display:inline-flex}#status:empty{background:0 0;border-color:#0000;padding:0}#status:empty:before{display:none}#status:before{content:"";border-radius:var(--koi-radius-pill);background:currentColor;width:7px;height:7px;box-shadow:0 0}#status[data-kind=error]{color:var(--koi-error);border-color:color-mix(in srgb, var(--koi-error) 40%, var(--koi-line));background:color-mix(in srgb, var(--koi-error) 9%, transparent)}.unsaved-indicator{align-items:center;gap:var(--koi-space-1);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);letter-spacing:.2px;padding:1px var(--koi-space-1-5);border-radius:var(--koi-radius-pill);cursor:pointer;color:var(--koi-hl-number);border:1px solid color-mix(in srgb, var(--koi-hl-number) 45%, var(--koi-line));background:color-mix(in srgb, var(--koi-hl-number) 12%, transparent);display:inline-flex}.unsaved-indicator[hidden]{display:none}.unsaved-indicator:before{content:"";border-radius:var(--koi-radius-pill);background:var(--koi-hl-number);width:6px;height:6px}.unsaved-indicator:hover{background:color-mix(in srgb, var(--koi-hl-number) 20%, transparent)}.unsaved-indicator:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}.koi-scope-menu{padding:var(--koi-space-1);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);box-shadow:var(--koi-shadow);z-index:var(--koi-z-popover);min-width:168px;transform:translateY(calc(-100% - var(--koi-space-1)));margin:0;list-style:none;position:fixed}.koi-scope-menu-item{text-align:left;border-radius:var(--koi-radius-sm);width:100%;color:var(--koi-fg);cursor:pointer;padding:var(--koi-space-1-5) var(--koi-space-2-5);font-family:var(--koi-font-body);font-size:var(--koi-text-base);background:0 0;border:1px solid #0000;display:block}.koi-scope-menu-item:hover,.koi-scope-menu-item:focus-visible{background:color-mix(in srgb, var(--koi-accent) 16%, transparent);border-color:color-mix(in srgb, var(--koi-accent) 40%, var(--koi-line));outline:none}#filetree-body{display:block}.tree-dirty{color:var(--koi-accent);margin-left:var(--koi-space-0-75)}.tree-badge{border-radius:var(--koi-radius-pill);padding:0 var(--koi-space-1-5);flex:none;margin-left:auto;font-size:.66rem;line-height:1.5}.tree-badge-err{color:var(--koi-error);background:color-mix(in srgb, var(--koi-error) 16%, transparent)}.tree-badge-warn{color:var(--koi-hl-number);background:color-mix(in srgb, var(--koi-hl-number) 16%, transparent)}.explorer{flex-direction:column;flex:auto;min-height:0;display:flex}.explorer-head{border-bottom:1px solid var(--koi-line);flex:none}.explorer-filter-row{align-items:center;gap:var(--koi-space-1-5);padding:var(--koi-space-1-5) var(--koi-space-2) var(--koi-space-1);display:flex}.explorer-filter{background:var(--koi-paper);min-width:0;color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-0-75) var(--koi-space-2);font-family:var(--koi-font-mono);font-size:var(--koi-text-xs-plus);flex:auto}.explorer-filter::placeholder{color:var(--koi-muted)}.explorer-filter:focus-visible{border-color:var(--koi-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--koi-accent) 28%, transparent);outline:none}.explorer-filter-count{font-family:var(--koi-font-mono);color:var(--koi-muted);white-space:nowrap;flex:none;font-size:.66rem}.explorer-toolbar{align-items:center;gap:var(--koi-space-1);padding:0 var(--koi-space-2) var(--koi-space-1-25);flex:none;display:flex}.explorer-toolbar-spacer{flex:auto}.explorer-tool{border-radius:var(--koi-radius-sm);width:24px;height:22px;color:var(--koi-muted);cursor:pointer;font-size:var(--koi-text-md);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;line-height:1;display:inline-flex}.explorer-tool-icon{display:inline-flex}.explorer-tool-icon svg{width:15px;height:15px}.explorer-tool:hover{background:var(--koi-surface);color:var(--koi-fg)}.explorer-tool:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.explorer-tree,.explorer-children,.explorer-group,.explorer-group-items{margin:0;padding:0;list-style:none}.explorer-group+.explorer-group{border-top:1px solid var(--koi-line)}.explorer-group-header{align-items:center;gap:var(--koi-space-1);padding:var(--koi-space-1) var(--koi-space-2) var(--koi-space-1) var(--koi-space-3);display:flex}.explorer-group-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-family:var(--koi-font-mono);font-size:var(--koi-text-xs-plus);letter-spacing:.02em;text-transform:uppercase;color:var(--koi-muted);flex:auto;font-weight:600;overflow:hidden}.explorer-group-remove{color:var(--koi-muted);cursor:pointer;font-size:var(--koi-text-sm);padding:0 var(--koi-space-0-5);opacity:0;background:0 0;border:none;flex:none;line-height:1}.explorer-group-header:hover .explorer-group-remove,.explorer-group-remove:focus-visible{opacity:1}.explorer-group-remove:hover{color:var(--koi-error)}.explorer-group-remove:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px;border-radius:var(--koi-radius-2xs)}.explorer-tree{padding:var(--koi-space-1) 0;flex:auto;overflow-y:auto}.explorer-tree li[aria-expanded=false]>.explorer-children{display:none}.explorer-row{align-items:center;gap:var(--koi-space-1-25);padding:var(--koi-space-0-75) var(--koi-space-3) var(--koi-space-0-75) calc(12px + var(--depth,0) * 14px);cursor:pointer;color:var(--koi-fg);font-family:var(--koi-font-mono);font-size:var(--koi-text-sm);display:flex}.explorer-row:hover{background:var(--koi-surface)}.explorer-tree li.is-dragging>.explorer-row{opacity:.45}.explorer-row.is-drop-target{background:color-mix(in srgb, var(--koi-accent) 20%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--koi-accent) 55%, transparent)}.explorer-tree.is-drop-root{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--koi-accent) 45%, transparent)}.explorer-row[aria-current=true]{background:color-mix(in srgb, var(--koi-accent) 14%, transparent)}.explorer-row.is-revealed{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--koi-accent) 55%, transparent)}.explorer-row.is-scoped{background:color-mix(in srgb, var(--koi-accent) 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--koi-accent) 40%, transparent)}.explorer-row.is-scoped .explorer-name{color:var(--koi-accent);font-weight:600}.explorer-row.dim{opacity:.5}.explorer-row.dim:hover{opacity:1}.explorer-tree li[role=treeitem]:focus{outline:none}.explorer-tree li[role=treeitem]:focus-visible>.explorer-row{outline:2px solid var(--koi-accent);outline-offset:-2px}.explorer-twisty{width:12px;color:var(--koi-muted);text-align:center;-webkit-user-select:none;user-select:none;flex:none;font-size:.62rem}.explorer-icon{flex:none;width:14px;height:14px;display:inline-flex}.explorer-icon svg{fill:currentColor;width:14px;height:14px}.explorer-icon--koi{color:var(--koi-accent)}.explorer-icon--dir,.explorer-icon--file{color:var(--koi-muted)}.explorer-name{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;overflow:hidden}.explorer-hl{background:color-mix(in srgb, var(--koi-accent) 30%, transparent);color:inherit;border-radius:var(--koi-radius-2xs)}.explorer-more{color:var(--koi-muted);cursor:pointer;font-size:var(--koi-text-base);padding:0 var(--koi-space-0-5);opacity:0;background:0 0;border:none;flex:none;margin-left:auto;line-height:1}.explorer-row:hover .explorer-more,.explorer-row:focus-within .explorer-more,.explorer-more:focus-visible{opacity:1}.explorer-more:hover{color:var(--koi-fg)}.explorer-row .tree-badge{margin-left:var(--koi-space-1)}.explorer-rename{background:var(--koi-paper);min-width:0;color:var(--koi-fg);border:1px solid var(--koi-accent);border-radius:var(--koi-radius-sm);padding:var(--koi-space-px) var(--koi-space-1-25);font-family:var(--koi-font-mono);font-size:var(--koi-text-sm);outline:none;flex:auto}.explorer-rename.is-invalid{border-color:var(--koi-error);box-shadow:0 0 0 2px color-mix(in srgb, var(--koi-error) 26%, transparent)}.explorer-empty{align-items:center;gap:var(--koi-space-2);padding:22px var(--koi-space-4);text-align:center;color:var(--koi-muted);font-family:var(--koi-font-body);font-size:var(--koi-text-sm-plus);flex-direction:column;display:flex}.explorer-empty-line{margin:0}.explorer-empty-action{border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);color:var(--koi-fg);cursor:pointer;padding:var(--koi-space-1) var(--koi-space-3);font-family:var(--koi-font-mono);font-size:var(--koi-text-xs-plus);background:0 0}.explorer-empty-action:hover{background:var(--koi-surface);border-color:color-mix(in srgb, var(--koi-accent) 50%, var(--koi-line))}.explorer-empty-action:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.explorer-confirm-msg,.koi-confirm-msg{font-family:var(--koi-font-body);font-size:var(--koi-text-base);color:var(--koi-muted);margin:0;line-height:1.45}.explorer-confirm-btn,.koi-confirm-btn{border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);color:var(--koi-fg);cursor:pointer;padding:var(--koi-space-1-25) var(--koi-space-3-5);font-family:var(--koi-font-body);font-size:var(--koi-text-base);background:0 0}.explorer-confirm-btn:hover,.koi-confirm-btn:hover{background:var(--koi-surface)}.explorer-confirm-btn:focus-visible,.koi-confirm-btn:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.explorer-confirm-btn-danger,.koi-confirm-btn-danger{border-color:color-mix(in srgb, var(--koi-error) 55%, var(--koi-line));background:color-mix(in srgb, var(--koi-error) 16%, transparent);color:var(--koi-error)}.explorer-confirm-btn-danger:hover,.koi-confirm-btn-danger:hover{background:color-mix(in srgb, var(--koi-error) 26%, transparent)}.koi-confirm-btn-primary{border-color:color-mix(in srgb, var(--koi-accent) 60%, var(--koi-line));background:var(--koi-accent);color:var(--koi-paper);font-weight:600}.koi-confirm-btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--koi-accent) 88%, #fff)}.koi-confirm-btn-primary:disabled{opacity:.45;cursor:not-allowed}.koi-prompt{gap:var(--koi-space-2);flex-direction:column;display:flex}.koi-prompt-msg{font-family:var(--koi-font-body);font-size:var(--koi-text-base);color:var(--koi-muted);margin:0;line-height:1.45}.koi-prompt-msg[hidden]{display:none}.koi-prompt-label{font-family:var(--koi-font-body);font-size:var(--koi-text-sm);color:var(--koi-ink-soft);font-weight:500}.koi-prompt-input{box-sizing:border-box;background:var(--koi-surface);width:100%;color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-2) var(--koi-space-2-75);font-family:var(--koi-font-body);font-size:var(--koi-text-base-plus)}.koi-prompt-input.is-mono{font-family:var(--koi-font-mono)}.koi-prompt-input:hover{border-color:color-mix(in srgb, var(--koi-accent) 50%, var(--koi-line))}.koi-prompt-input:focus-visible{border-color:var(--koi-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--koi-accent) 22%, transparent);outline:none}.koi-prompt-input.is-invalid{border-color:var(--koi-error)}.koi-prompt-input.is-invalid:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--koi-error) 22%, transparent)}.koi-prompt-error{min-height:1.15em;font-family:var(--koi-font-body);font-size:var(--koi-text-sm);color:var(--koi-error);margin:0;line-height:1.15}.explorer-menu{padding:var(--koi-space-1);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);box-shadow:var(--koi-shadow);z-index:var(--koi-z-popover);min-width:168px;margin:0;list-style:none;position:fixed}.explorer-menu-item{text-align:left;border-radius:var(--koi-radius-sm);width:100%;color:var(--koi-fg);cursor:pointer;padding:var(--koi-space-1-5) var(--koi-space-2-5);font-family:var(--koi-font-body);font-size:var(--koi-text-base);background:0 0;border:1px solid #0000;display:block}.explorer-menu-item:hover,.explorer-menu-item:focus-visible{background:color-mix(in srgb, var(--koi-accent) 16%, transparent);border-color:color-mix(in srgb, var(--koi-accent) 40%, var(--koi-line));outline:none}#right{background:var(--koi-paper-2);flex-direction:column;display:flex}#right-header{min-height:2.25rem;padding:0 var(--koi-space-3);background:var(--koi-paper-2);border-bottom:1px solid var(--koi-line);flex:none;align-items:center;display:flex}#right-title{font-family:var(--koi-font-body);font-size:var(--koi-text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--koi-muted);white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:600;overflow:hidden}#right-body{flex:auto;min-height:0;position:relative}.rview{min-height:0;position:absolute;inset:0;overflow-y:auto}.doc-view{padding:var(--koi-space-4) 20px;overflow-y:auto}.rview.doc-view{padding-block:0}.rstrip-btn{width:1.75rem;height:1.75rem;color:var(--koi-muted);border-radius:var(--koi-radius-sm);cursor:pointer;transition:background var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex;position:relative}.rstrip-btn:hover{background:var(--koi-surface);color:var(--koi-fg);border-color:var(--koi-line)}.rstrip-btn:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.rstrip-btn[data-tooltip]:after{content:attr(data-tooltip);right:calc(100% + var(--koi-space-2));transform:translateY(-50%) translateX(var(--koi-space-1));z-index:var(--koi-z-tooltip);padding:var(--koi-space-1) var(--koi-space-2);background:var(--koi-surface);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-xs);font-family:var(--koi-font-body);font-size:var(--koi-text-2xs);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--koi-dur-fast) ease, transform var(--koi-dur-fast) ease, visibility var(--koi-dur-fast);line-height:1.2;position:absolute;top:50%;box-shadow:0 6px 18px -6px #00000059}.rstrip-btn:hover[data-tooltip]:after,.rstrip-btn:focus-visible[data-tooltip]:after{opacity:1;visibility:visible;transform:translateY(-50%)translate(0)}.rstrip-btn[aria-pressed=true]{color:var(--koi-fg);background:color-mix(in srgb, var(--koi-accent) 16%, transparent)}.rstrip-btn[aria-pressed=true]:before{content:"";border-radius:var(--koi-radius-2xs);background:var(--koi-accent-grad);width:2px;height:1.1rem;position:absolute;top:50%;left:0;transform:translateY(-50%)}.rstrip-sep{width:1rem;height:1px;margin-block:var(--koi-space-1);background:var(--koi-line);align-self:center}@keyframes rstrip-flash{0%{background:color-mix(in srgb, var(--koi-accent) 28%, transparent);color:var(--koi-fg)}60%{background:color-mix(in srgb, var(--koi-accent) 14%, transparent);color:var(--koi-fg)}to{color:var(--koi-muted);background:0 0}}@media (prefers-reduced-motion:no-preference){.rstrip-btn.rstrip-notify{animation:.8s ease-out forwards rstrip-flash}}@media (prefers-reduced-motion:reduce){.rstrip-btn.rstrip-notify{border-color:var(--koi-accent);background:color-mix(in srgb, var(--koi-accent) 14%, transparent);color:var(--koi-fg)}}.muted{color:var(--koi-muted)}.doc-error{color:var(--koi-error);font-family:var(--koi-font-mono);font-size:var(--koi-text-sm-plus);white-space:pre-wrap}.koi-md{color:var(--koi-fg);font-family:var(--koi-font-body);font-size:var(--koi-text-md);line-height:1.6}.koi-md h1,.koi-md h2,.koi-md h3,.koi-md h4{font-family:var(--koi-font-display);letter-spacing:-.01em;color:var(--koi-fg);margin:1.3em 0 .5em;font-weight:700;line-height:1.25}.koi-md h1{font-size:1.25rem}.koi-md h2{border-bottom:1px solid var(--koi-line);padding-bottom:.3em;font-size:1rem}.koi-md h3{font-size:.92rem}.koi-md>:first-child{margin-top:0}.koi-md p{margin:.6em 0}.koi-md ul{margin:.5em 0;padding-left:1.4em}.koi-md li{margin:.2em 0}.koi-md code{font-family:var(--koi-font-mono);background:var(--koi-surface);border:1px solid var(--koi-line);border-radius:var(--koi-radius-xs);padding:var(--koi-space-px) var(--koi-space-1-25);font-size:.82em}.koi-md pre{background:var(--koi-paper);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-2-5) var(--koi-space-3);overflow-x:auto}.koi-md pre code{font-size:var(--koi-text-sm-plus);background:0 0;border:none;padding:0}.koi-md table{border-collapse:collapse;width:100%;font-size:var(--koi-text-sm-plus);margin:.6em 0}.koi-md th,.koi-md td{border:1px solid var(--koi-line);padding:var(--koi-space-1-5) var(--koi-space-2-25);text-align:left;vertical-align:top}.koi-md th{background:var(--koi-surface);color:var(--koi-ink-soft);font-weight:600}.koi-md table.ctxmap td.dir{font-family:var(--koi-font-mono);color:var(--koi-cyan);text-align:center}#panel-contextmap{padding:0;overflow:hidden}.ctxmap{flex-direction:column;height:100%;min-height:0;display:flex}.ctxmap-toolbar{gap:var(--koi-space-1);padding:var(--koi-space-1-5) var(--koi-space-3);border-bottom:1px solid var(--koi-line);flex:none;display:flex}.ctxmap-tab{font:inherit;font-size:var(--koi-text-xs-plus);padding:var(--koi-space-1) var(--koi-space-2-75);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);color:var(--koi-muted);cursor:pointer;background:0 0}.ctxmap-tab:hover{color:var(--koi-fg);border-color:var(--koi-muted)}.ctxmap-tab[aria-pressed=true]{background:var(--koi-accent);border-color:var(--koi-accent);color:var(--koi-on-accent)}.ctxmap-tab:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.ctxmap-stage{flex:auto;min-height:0;position:relative;overflow:auto}.ctxmap-stage .koi-ctxmap-graph{height:100%}.ctxmap-stage>.ctxmap-table{padding:var(--koi-space-2) var(--koi-space-3) var(--koi-space-3)}.ctxmap-stage>.muted{padding:var(--koi-space-3)}.ctxmap-details{border-top:1px solid var(--koi-line);padding:var(--koi-space-1-5) var(--koi-space-3);max-height:38%;font-size:var(--koi-text-xs-plus);flex:none;overflow:auto}.ctxmap-details-head{align-items:baseline;gap:var(--koi-space-2);margin-bottom:var(--koi-space-1);display:flex}.ctxmap-details-kind{color:var(--koi-fg);font-weight:700}.ctxmap-details-dir{color:var(--koi-muted);font-family:var(--koi-font-mono)}.ctxmap-details-grid{gap:var(--koi-space-0-5) var(--koi-space-3);grid-template-columns:auto 1fr;margin:0;display:grid}.ctxmap-details-grid dt{color:var(--koi-muted)}.ctxmap-details-grid dd{color:var(--koi-fg);margin:0}.mxTooltip{z-index:var(--koi-z-popover,120);background:var(--koi-paper-2);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1) var(--koi-space-2);font-family:var(--koi-font-body);font-size:var(--koi-text-xs-plus);box-shadow:var(--koi-shadow);pointer-events:none;max-width:320px;position:absolute}.koi-copy{z-index:var(--koi-z-raised);background:color-mix(in srgb, var(--koi-paper-2) 86%, transparent);color:var(--koi-ink-soft);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1) var(--koi-space-2-75);font-family:var(--koi-font-body);font-size:var(--koi-text-xs-plus);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease, opacity var(--koi-dur-mid) ease;font-weight:500;position:absolute;top:10px;right:16px}.koi-copy:hover:not(:disabled){background:var(--koi-surface);color:var(--koi-fg);border-color:var(--koi-accent)}.koi-copy:disabled{opacity:0;pointer-events:none}.outline-list{margin:0;padding:0;list-style:none}.outline-list .outline-list{margin-left:var(--koi-space-3-5);border-left:1px solid var(--koi-line);padding-left:var(--koi-space-1-5)}.outline-row{align-items:center;gap:var(--koi-space-2);text-align:left;width:100%;color:var(--koi-fg);padding:var(--koi-space-0-75) var(--koi-space-1-5);border-radius:var(--koi-radius-xs);cursor:pointer;font-family:var(--koi-font-body);font-size:var(--koi-text-base-plus);background:0 0;border:none;display:flex}.outline-row:hover{background:var(--koi-surface)}.outline-kind{font-family:var(--koi-font-mono);text-transform:uppercase;letter-spacing:.3px;color:var(--koi-accent);background:color-mix(in srgb, var(--koi-accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--koi-accent) 30%, var(--koi-line));border-radius:var(--koi-radius-xs);padding:0 var(--koi-space-1-25);text-align:center;flex:none;min-width:38px;font-size:.66rem}.outline-name{font-family:var(--koi-font-mono)}.koi-model{padding:.5rem .75rem 1rem}.koi-outline{flex-direction:column;display:flex}.koi-outline-filter{margin:var(--koi-space-2) var(--koi-space-3) 0;padding:var(--koi-space-1-25) var(--koi-space-2);background:var(--koi-paper);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);font-family:var(--koi-font-body);font-size:var(--koi-text-xs)}.koi-outline-filter::placeholder{color:var(--koi-muted)}.koi-outline-filter:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px;border-color:var(--koi-accent)}.koi-model-ctx{margin-bottom:1.1rem}.koi-model-ctx-name{text-align:left;width:100%;font:inherit;font-size:var(--koi-text-base);text-transform:uppercase;letter-spacing:.06em;color:var(--koi-muted);cursor:pointer;background:0 0;border:none;margin:0 0 .4rem;padding:0;font-weight:600;display:block}.koi-model-ctx-name:hover:not(:disabled){color:var(--koi-accent)}.koi-model-ctx-name:disabled{cursor:default}.koi-model-counts{flex-wrap:wrap;gap:.3rem;margin-bottom:.6rem;display:flex}.koi-model-count{font-size:var(--koi-text-2xs);color:var(--koi-muted);border-radius:var(--koi-radius-pill);background:color-mix(in srgb, var(--koi-fg) 9%, transparent);align-items:center;gap:.3rem;padding:.05rem .45rem;display:inline-flex}.koi-model-count-num{font-family:var(--koi-font-mono);color:var(--koi-fg);font-weight:600}.koi-model-construct{margin-bottom:.6rem}.koi-model-construct-name{font-size:var(--koi-text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--koi-accent);align-items:center;gap:.4rem;margin:0 0 .25rem;font-weight:600;display:flex}.koi-model-construct-num{font-family:var(--koi-font-mono);color:var(--koi-muted);font-weight:600}.koi-model-list{padding:0 0 0 var(--koi-space-2);border-left:1px solid var(--koi-line);margin:0;list-style:none}.koi-model-leaf{align-items:center;gap:var(--koi-space-1-5);box-sizing:border-box;text-align:left;width:100%;min-height:26px;color:var(--koi-fg);padding:var(--koi-space-0-75) var(--koi-space-1-5);border-radius:var(--koi-radius-xs);cursor:pointer;font-family:var(--koi-font-mono);font-size:var(--koi-text-base-plus);background:0 0;border:none;display:flex}.koi-model-leaf:hover{background:var(--koi-surface)}.koi-model-leaf.is-selected{background:color-mix(in srgb, var(--koi-accent) 16%, transparent);color:var(--koi-accent)}.koi-model-icon{box-sizing:border-box;background:var(--koi-muted);border-radius:2px;flex:none;width:10px;height:10px}.koi-model-construct-name .koi-model-icon{width:11px;height:11px}.koi-model-icon[data-construct=aggregate]{background:var(--koi-ddd-aggregate);border-radius:3px}.koi-model-icon[data-construct=entity]{background:var(--koi-ddd-entity);border-radius:2px}.koi-model-icon[data-construct=value]{background:var(--koi-ddd-value);border-radius:2px;width:9px;height:9px;transform:rotate(45deg)}.koi-model-icon[data-construct=enum]{background:var(--koi-ddd-enum);border-radius:50%}.koi-model-icon[data-construct=event]{background:var(--koi-ddd-event);border-radius:50%}.koi-model-icon[data-construct=service]{background:var(--koi-ddd-service);border-radius:3px}.koi-model-icon[data-construct=integration-event]{border:2px solid var(--koi-ddd-integration-event);background:0 0;border-radius:50%}.koi-model-icon[data-construct=type]{background:var(--koi-ddd-repository);border-radius:2px}.koi-model-icon[data-construct=repository]{background:var(--koi-ddd-repository);border-radius:5px}.koi-model-icon[data-construct=rule],.koi-model-icon[data-construct=spec]{background:var(--koi-ddd-spec);border-radius:3px}.koi-model-icon[data-construct=state-machine]{border:2px solid var(--koi-ddd-state-machine);background:0 0;border-radius:1px;transform:rotate(45deg)}.koi-model-icon[data-construct=command]{background:var(--koi-ddd-command);border-radius:2px}.koi-model-icon[data-construct=query]{border:2px solid var(--koi-ddd-query);background:0 0;border-radius:2px}.koi-model-icon[data-construct=read-model]{background:var(--koi-ddd-read-model);border-radius:2px}.koi-model-icon[data-construct=policy]{background:var(--koi-ddd-policy);border-radius:50%}.koi-model-icon[data-construct=factory]{background:var(--koi-ddd-factory);border-radius:3px}.koi-domain-filter{box-sizing:border-box;width:100%;margin-bottom:var(--koi-space-1-5);padding:var(--koi-space-1-25) var(--koi-space-2);background:var(--koi-paper);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);font-family:var(--koi-font-body);font-size:var(--koi-text-xs);display:block}.koi-domain-filter::placeholder{color:var(--koi-muted)}.koi-domain-filter:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px;border-color:var(--koi-accent)}.koi-domain-strategic,.koi-domain-doors{flex-direction:column;gap:1px;display:flex}.koi-domain-doors{margin-top:var(--koi-space-1-5);padding-top:var(--koi-space-1-5);border-top:1px solid var(--koi-line)}.koi-ctx-row,.koi-domain-door{align-items:center;gap:var(--koi-space-1-5);box-sizing:border-box;text-align:left;width:100%;min-height:28px;color:var(--koi-fg);padding:var(--koi-space-1) var(--koi-space-1-5);border-radius:var(--koi-radius-xs);cursor:pointer;font-family:var(--koi-font-body);font-size:var(--koi-text-base-plus);background:0 0;border:none;display:flex}.koi-ctx-row:hover,.koi-domain-door:hover{background:var(--koi-surface)}.koi-ctx-row:focus-visible,.koi-domain-door:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}.koi-ctx-row--scoped{background:color-mix(in srgb, var(--koi-accent) 10%, transparent);position:relative}.koi-ctx-row--scoped .koi-ctx-name{color:var(--koi-accent);font-weight:600}.koi-ctx-row--scoped:before{content:"";border-radius:var(--koi-radius-pill);background:var(--koi-accent);width:2px;position:absolute;inset-block:4px;inset-inline-start:0}.koi-ctx-row--scoped:hover{background:color-mix(in srgb, var(--koi-accent) 16%, transparent)}.koi-domain-glyph{width:1rem;color:var(--koi-accent);font-size:var(--koi-text-base);text-align:center;flex:none;line-height:1}.koi-ctx-name,.koi-domain-door-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.koi-ctx-name{font-weight:500}.koi-domain-door-label{color:var(--koi-ink-soft)}.koi-ctx-count,.koi-domain-door-count{min-width:1.5rem;padding:.05rem var(--koi-space-1);border-radius:var(--koi-radius-pill);background:color-mix(in srgb, var(--koi-fg) 9%, transparent);color:var(--koi-fg);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);text-align:center;flex:none;font-weight:600}.koi-breadcrumb-back{align-items:center;gap:var(--koi-space-1);box-sizing:border-box;width:100%;margin-bottom:var(--koi-space-1-5);padding:var(--koi-space-1) var(--koi-space-1-5);border-radius:var(--koi-radius-xs);color:var(--koi-muted);cursor:pointer;font-family:var(--koi-font-body);font-size:var(--koi-text-xs);letter-spacing:.03em;text-align:left;background:0 0;border:none;font-weight:600;display:flex}.koi-breadcrumb-back:hover{background:var(--koi-surface);color:var(--koi-accent)}.koi-breadcrumb-back:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}.koi-breadcrumb-back-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.koi-breadcrumb-back .koi-domain-glyph{color:var(--koi-muted)}.koi-breadcrumb-back:hover .koi-domain-glyph,.koi-breadcrumb-back:focus-visible .koi-domain-glyph{color:var(--koi-accent)}.koi-domain-tactical-body{padding:var(--koi-space-1) var(--koi-space-2) var(--koi-space-3)}.koi-agg{margin-bottom:var(--koi-space-2)}.koi-agg:focus-visible{outline:none}.koi-agg:focus-visible>.koi-agg-head{outline:2px solid var(--koi-accent);outline-offset:-2px}.koi-agg-head,.koi-tactical-leaf{align-items:center;gap:var(--koi-space-1-5);box-sizing:border-box;text-align:left;width:100%;min-height:26px;color:var(--koi-fg);padding:var(--koi-space-0-75) var(--koi-space-1-5);border-radius:var(--koi-radius-xs);cursor:pointer;font-family:var(--koi-font-mono);font-size:var(--koi-text-base-plus);background:0 0;border:none;display:flex}.koi-agg-head:hover,.koi-tactical-leaf:hover{background:var(--koi-surface)}.koi-agg-head.is-selected,.koi-tactical-leaf.is-selected{background:color-mix(in srgb, var(--koi-accent) 16%, transparent);color:var(--koi-accent)}.koi-tactical-leaf-row{align-items:center;display:flex}.koi-tactical-leaf-row:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px;border-radius:var(--koi-radius-xs)}.koi-tactical-leaf-row .koi-tactical-leaf{flex:auto;min-width:0}.koi-tactical-more{color:var(--koi-muted);cursor:pointer;font-size:var(--koi-text-base);padding:0 var(--koi-space-1);border-radius:var(--koi-radius-xs);opacity:0;background:0 0;border:none;flex:none;line-height:1}.koi-tactical-leaf-row:hover .koi-tactical-more,.koi-tactical-leaf-row:focus-within .koi-tactical-more,.koi-tactical-more:focus-visible{opacity:1}.koi-tactical-more:hover{color:var(--koi-fg)}.koi-tactical-menu{padding:var(--koi-space-1);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);box-shadow:var(--koi-shadow);z-index:var(--koi-z-popover);min-width:168px;margin:0;list-style:none;position:fixed}.koi-tactical-menu-item{text-align:left;border-radius:var(--koi-radius-sm);width:100%;color:var(--koi-fg);cursor:pointer;padding:var(--koi-space-1-5) var(--koi-space-2-5);font-family:var(--koi-font-body);font-size:var(--koi-text-base);background:0 0;border:1px solid #0000;display:block}.koi-tactical-menu-item:hover,.koi-tactical-menu-item:focus-visible{background:color-mix(in srgb, var(--koi-accent) 16%, transparent);border-color:color-mix(in srgb, var(--koi-accent) 40%, var(--koi-line));outline:none}.koi-agg-head{font-weight:600}.koi-agg-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.koi-agg-spine{margin-left:var(--koi-space-2-5);padding-left:var(--koi-space-2);border-left:1px solid var(--koi-line)}.koi-ctx-peers{margin-top:var(--koi-space-2);padding-top:var(--koi-space-2);border-top:1px solid var(--koi-line)}.koi-tactical-empty{padding:var(--koi-space-1) var(--koi-space-1-5)}.koi-model-navs{border-top:1px solid var(--koi-line);flex-direction:column;gap:.2rem;margin-top:.4rem;padding-top:.6rem;display:flex}.koi-model-nav{text-align:left;width:100%;color:var(--koi-fg);padding:var(--koi-space-0-75) var(--koi-space-1-5);border-radius:var(--koi-radius-xs);cursor:pointer;font:inherit;font-size:var(--koi-text-base-plus);background:0 0;border:none;font-weight:600;display:block}.koi-model-nav:hover:not(:disabled){background:var(--koi-surface);color:var(--koi-accent)}.koi-model-nav:disabled{color:var(--koi-muted);cursor:default}.koi-model-inspector{border-top:2px solid var(--koi-line);margin-top:.6rem}.koi-inspector{--koi-construct:var(--koi-accent);padding:var(--koi-space-4) 20px;font-family:var(--koi-font-body)}.koi-inspector[data-kind=aggregate]{--koi-construct:var(--koi-ddd-aggregate)}.koi-inspector[data-kind=entity]{--koi-construct:var(--koi-ddd-entity)}.koi-inspector[data-kind=value]{--koi-construct:var(--koi-ddd-value)}.koi-inspector[data-kind=enum]{--koi-construct:var(--koi-ddd-enum)}.koi-inspector[data-kind=event]{--koi-construct:var(--koi-ddd-event)}.koi-inspector[data-kind=integration-event]{--koi-construct:var(--koi-ddd-integration-event)}.koi-inspector[data-kind=type]{--koi-construct:var(--koi-ddd-repository)}.koi-inspector-head{margin-bottom:var(--koi-space-3-5);padding-left:var(--koi-space-2-5);position:relative}.koi-inspector-head:before{content:"";border-radius:var(--koi-radius-pill);background:var(--koi-construct);width:3px;position:absolute;top:.15rem;bottom:.15rem;left:0}.koi-inspector-name{font-family:var(--koi-font-display);letter-spacing:-.01em;color:var(--koi-fg);cursor:pointer;background:0 0;border:none;padding:0;font-size:1.05rem;font-weight:700}.koi-inspector-name:hover{color:var(--koi-construct);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--koi-construct) 50%, transparent);text-decoration-color:color-mix(in srgb, var(--koi-construct) 50%, transparent);text-underline-offset:2px}.koi-inspector-stereotype{margin-left:var(--koi-space-2);font-family:var(--koi-font-body);font-size:var(--koi-text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--koi-construct);border-radius:var(--koi-radius-pill);border:1px solid color-mix(in srgb, var(--koi-construct) 35%, var(--koi-line));background:color-mix(in srgb, var(--koi-construct) 14%, transparent);white-space:nowrap;padding:.05rem .45rem;font-weight:600}.koi-inspector-qname{margin-top:var(--koi-space-1-5);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);color:var(--koi-muted)}.koi-inspector-general{gap:var(--koi-space-2-5);flex-direction:column;display:flex}.koi-inspector-field{gap:var(--koi-space-1);flex-direction:column;display:flex}.koi-inspector-field-label{font-size:var(--koi-text-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--koi-muted)}.koi-inspector-field-value{font-family:var(--koi-font-mono);font-size:var(--koi-text-base-plus);color:var(--koi-ink-soft)}.koi-inspector-input,.koi-inspector-textarea{box-sizing:border-box;background:var(--koi-paper);width:100%;color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1-25) var(--koi-space-2);font-family:var(--koi-font-mono);font-size:var(--koi-text-base-plus);transition:border-color var(--koi-dur-fast) ease, box-shadow var(--koi-dur-fast) ease}.koi-inspector-input:focus-visible,.koi-inspector-textarea:focus-visible{border-color:var(--koi-construct);box-shadow:0 0 0 2px color-mix(in srgb, var(--koi-construct) 26%, transparent);outline:none}.koi-inspector-textarea{resize:vertical;min-height:2rem;line-height:1.4}.koi-inspector-textarea::placeholder{color:var(--koi-muted)}.koi-inspector-section{margin-bottom:0}.koi-inspector-section+.koi-inspector-section{margin-top:var(--koi-space-3-5);padding-top:var(--koi-space-3-5);border-top:1px solid var(--koi-line)}.koi-inspector-section-title{margin:0 0 var(--koi-space-2);font-family:var(--koi-font-body);font-size:var(--koi-text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--koi-muted);font-weight:600}.koi-inspector-list{margin:0;padding:0;list-style:none}.koi-inspector-item{font-family:var(--koi-font-mono);font-size:var(--koi-text-base-plus);color:var(--koi-fg);padding:var(--koi-space-0-75) 0}.koi-inspector-history-item{font-family:var(--koi-font-body);gap:var(--koi-space-0-5);border-top:1px solid var(--koi-line);flex-direction:column;display:flex}.koi-inspector-history-item:first-child{border-top:0}.koi-inspector-history-meta{font-size:var(--koi-text-xs)}.koi-inspector-history-message{color:var(--koi-fg)}.koi-inspector-table{border-collapse:collapse;width:100%}.koi-inspector-prop-name,.koi-inspector-prop-type{font-family:var(--koi-font-mono);font-size:var(--koi-text-base-plus);text-align:left;vertical-align:baseline;padding:var(--koi-space-1) 0;font-weight:400}.koi-inspector-prop-name{white-space:nowrap;width:1%;padding-right:var(--koi-space-3);color:var(--koi-fg)}.koi-inspector-prop-type{color:var(--koi-hl-type)}.koi-inspector-table-editable .koi-inspector-prop-name{white-space:normal;width:38%}.koi-inspector-row:hover{background:color-mix(in srgb, var(--koi-fg) 5%, transparent)}.koi-inspector-row-computed{font-style:italic}.koi-inspector-prop-static{cursor:default;background:0 0;border-color:#0000;display:block}.koi-inspector-prop-static:hover{background:0 0;border-color:#0000}.koi-inspector-prop-input{box-sizing:border-box;width:100%;font-family:var(--koi-font-mono);font-size:var(--koi-text-base-plus);color:inherit;border:1px solid #0000;border-bottom-color:color-mix(in srgb, var(--koi-line) 70%, transparent);border-radius:var(--koi-radius-sm);padding:var(--koi-space-0-5) var(--koi-space-1);background:0 0}.koi-inspector-prop-input:hover{border-color:var(--koi-line)}.koi-inspector-prop-input:focus{border-color:var(--koi-construct);background:var(--koi-paper);outline:none}.koi-inspector-prop-actions{text-align:right;width:1%}.koi-inspector-prop-delete{font-size:var(--koi-text-base-plus);color:var(--koi-muted);border-radius:var(--koi-radius-sm);padding:0 var(--koi-space-0-75);cursor:pointer;opacity:0;transition:opacity var(--koi-dur-fast) ease;background:0 0;border:none;line-height:1}.koi-inspector-row-editable:hover .koi-inspector-prop-delete,.koi-inspector-prop-delete:focus-visible{opacity:1}.koi-inspector-prop-delete:hover{color:var(--koi-error)}.koi-inspector-add-prop{gap:var(--koi-space-1-5);margin-top:var(--koi-space-2-5);flex-direction:column;display:flex}.koi-inspector-add-fields{gap:var(--koi-space-1-5);align-items:center;display:flex}.koi-inspector-add-name{flex:0 7rem}.koi-inspector-add-type{flex:auto}.koi-inspector-add-btn{font-size:var(--koi-text-xs);color:var(--koi-construct);border:1px solid color-mix(in srgb, var(--koi-construct) 35%, var(--koi-line));border-radius:var(--koi-radius-sm);padding:var(--koi-space-1) var(--koi-space-2);cursor:pointer;white-space:nowrap;transition:background var(--koi-dur-fast) ease;background:0 0;align-self:flex-start;font-weight:600}.koi-inspector-add-btn:hover{background:color-mix(in srgb, var(--koi-construct) 12%, transparent)}.koi-store-inspector-overlay{right:var(--koi-space-3);z-index:60;max-width:22rem;padding:var(--koi-space-2-5);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);box-shadow:var(--koi-shadow);color:var(--koi-fg);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);position:fixed;bottom:34px}.koi-store-inspector-overlay[hidden]{display:none}.koi-store-inspector-title{margin-bottom:var(--koi-space-2);color:var(--koi-muted);font-family:var(--koi-font-body);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.koi-store-inspector-grid{gap:var(--koi-space-1) var(--koi-space-2-5);grid-template-columns:auto 1fr;margin:0;display:grid}.koi-store-inspector-grid dt{color:var(--koi-muted)}.koi-store-inspector-grid dd{overflow-wrap:anywhere;margin:0}.koi-events-panel{flex-direction:column;height:100%;min-height:0;display:flex}.koi-events-toolbar{padding-bottom:var(--koi-space-2);flex:none;gap:4px;display:inline-flex}.koi-events-view-btn{font:inherit;border:1px solid var(--koi-line);background:var(--koi-paper);color:var(--koi-muted);cursor:pointer;border-radius:999px;padding:2px 10px;font-size:.75rem}.koi-events-view-btn:hover{color:var(--koi-fg);border-color:var(--koi-accent)}.koi-events-view-btn[aria-pressed=true]{background:color-mix(in srgb, var(--koi-accent) 16%, transparent);border-color:var(--koi-accent);color:var(--koi-accent)}.koi-events-view-btn:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.koi-event-flow{flex:auto;min-height:0;position:relative}.koi-event-flow-mount{height:100%;min-height:220px}.koi-eventflow-card{color:#1f2937;padding:6px 10px;font-weight:600}.cm-tooltip .koi-hover{max-width:420px;padding:var(--koi-space-2) 11px}.koi-hover.koi-md{font-size:var(--koi-text-sm-plus);line-height:1.5}.koi-hover.koi-md>:first-child{margin-top:0}.koi-hover.koi-md>:last-child{margin-bottom:0}#diagnostics{background:var(--koi-paper-2);border-top:1px solid var(--koi-line);font-family:var(--koi-font-mono);flex-direction:column;flex:none;font-size:.76rem;display:flex;position:relative}#diagnostics[hidden]{display:none}#diag-resizer{z-index:var(--koi-z-base);background:0 0;position:absolute;top:-3px;left:0;right:0}#diag-resizer:hover,body.resizing #diag-resizer{background:var(--koi-accent)}#diag-header{align-items:center;gap:var(--koi-space-2);width:100%;color:var(--koi-muted);padding:var(--koi-space-1-5) var(--koi-space-3);text-transform:uppercase;letter-spacing:.16em;text-align:left;flex:none;font-family:inherit;font-size:.66rem;display:flex}.diag-collapse{color:inherit;cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin:-16.5px;padding:0;display:inline-flex}.diag-collapse:hover{color:var(--koi-fg)}.diag-collapse:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}.diag-chevron{stroke:currentColor;stroke-width:1.6px;fill:none;width:11px;height:11px;transition:transform var(--koi-dur-mid) ease;flex:none}#diagnostics.collapsed .diag-chevron{transform:rotate(-90deg)}.diag-count{letter-spacing:.04em;text-transform:none;color:var(--koi-muted);margin-left:auto}.diag-count[data-kind=error]{color:var(--koi-error)}.diag-count[data-kind=warn]{color:var(--koi-hl-number)}.diag-count[data-kind=clean]{color:var(--koi-hl-string)}#diag-body{gap:var(--koi-space-px);flex-direction:column;display:flex}#diagnostics.collapsed #diag-resizer{display:none}.diag{align-items:center;gap:var(--koi-space-2);text-align:left;color:var(--koi-ink-soft);padding:var(--koi-space-1) 7px;border-radius:var(--koi-radius-sm);cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none;display:flex}.diag:before{content:"";border-radius:var(--koi-radius-pill);background:currentColor;flex:none;width:7px;height:7px}.diag:hover{background:var(--koi-surface);color:var(--koi-fg)}.diag-err{color:var(--koi-error)}.diag-warn{color:var(--koi-hl-number)}.diag-empty{color:var(--koi-muted);padding:var(--koi-space-1) 7px;align-items:center;gap:7px;font-style:italic;display:flex}.diag-empty:before{content:"✓";color:var(--koi-hl-string);font-style:normal}.diag-tabs{align-items:stretch;gap:var(--koi-space-1);display:flex}.diag-tab{color:var(--koi-muted);padding:var(--koi-space-0-5) var(--koi-space-1);cursor:pointer;font:inherit;text-transform:inherit;letter-spacing:inherit;background:0 0;border:none;border-bottom:2px solid #0000}.diag-tab:hover{color:var(--koi-fg)}.diag-tab[aria-selected=true]{color:var(--koi-fg);border-bottom-color:var(--koi-accent)}.diag-tab:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}@media (width<=640px){.diag-tabs{flex-wrap:nowrap;overflow-x:auto}.diag-tab{white-space:nowrap;flex:none}}.diag-panel{height:var(--koi-diag-h,150px);max-height:50vh;padding:0 var(--koi-space-3) 7px;flex:auto;overflow:auto}#diagnostics .diag-panel[hidden],#diagnostics.collapsed .diag-panel{display:none}#split[data-panel-side=right] #center{grid-template-columns:1fr var(--koi-panel-w,340px);grid-template-rows:auto 1fr;display:grid}#split[data-panel-side=right] #deck-bar{grid-area:1/1/auto/-1}#split[data-panel-side=right] #center-body{grid-area:2/1}#split[data-panel-side=right] #diagnostics{border-top:none;border-left:1px solid var(--koi-line);grid-area:2/2;min-height:0}#split[data-panel-side=right] #diagnostics .diag-panel{height:auto;max-height:none}#split[data-panel-side=right] #diag-resizer{display:none}.koi-table{border-collapse:collapse;width:100%;font-size:inherit}.koi-table th{z-index:var(--koi-z-base);background:var(--koi-paper-2);text-align:left;border-bottom:1px solid var(--koi-line);white-space:nowrap;padding:0;position:sticky;top:0}.koi-th-sort{align-items:center;gap:var(--koi-space-1);width:100%;color:var(--koi-muted);font:inherit;text-transform:uppercase;letter-spacing:.08em;text-align:left;padding:var(--koi-space-1) 7px;cursor:pointer;background:0 0;border:none;font-size:.66rem;font-weight:600;display:inline-flex}.koi-th-sort:hover{color:var(--koi-fg)}.koi-th-sort:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}.koi-th-sort:after{content:"";color:var(--koi-accent);font-size:.6em}th[aria-sort=ascending] .koi-th-sort:after{content:"▲"}th[aria-sort=descending] .koi-th-sort:after{content:"▼"}.koi-table td{padding:var(--koi-space-1) 7px;border-bottom:1px solid var(--koi-line);color:var(--koi-ink-soft);vertical-align:top}.koi-table tbody tr:last-child td{border-bottom:none}.koi-row-link{cursor:pointer}.koi-row-link:hover td{background:var(--koi-surface);color:var(--koi-fg)}.koi-row-link:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}.koi-evt-type:before{content:"";width:7px;height:7px;margin-right:var(--koi-space-1);border-radius:var(--koi-radius-pill);vertical-align:baseline;background:currentColor;display:inline-block}.koi-evt-domain{color:var(--koi-hl-type)}.koi-evt-integration{color:var(--koi-hl-number)}.koi-rel-kind{color:var(--koi-muted)}.koi-table-empty{color:var(--koi-muted);padding:var(--koi-space-2) 7px;align-items:center;gap:7px;font-style:italic;display:flex}.diag-panel-terminal{padding:0;overflow:hidden}.terminal-host{box-sizing:border-box;width:100%;height:100%;padding-left:10px}#split[data-panel-side=right] .diag-panel-terminal{height:100%;min-height:0}.terminal-placeholder{height:100%;padding:var(--koi-space-3);color:var(--koi-muted);text-align:center;justify-content:center;align-items:center;font-style:italic;display:flex}.koi-welcome{z-index:auto;background:var(--koi-paper);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.koi-home-topbar{align-items:center;gap:var(--koi-space-4-5);padding:var(--koi-space-2-75) var(--koi-space-4);background:linear-gradient(180deg, var(--koi-paper-2), color-mix(in srgb, var(--koi-paper-2) 80%, var(--koi-paper)));border-bottom:1px solid var(--koi-line);display:flex;position:relative}.koi-home-topbar:after{content:"";background:var(--koi-accent-grad);opacity:.5;height:1px;position:absolute;bottom:-1px;left:0;right:0}.koi-home-topbar{flex:none;justify-content:space-between}.koi-home-topbar-slot{align-items:center;gap:var(--koi-space-2);min-width:0;display:flex}.koi-home-topbar-end{justify-content:flex-end}.koi-home-brand{cursor:default}.koi-home-brand:hover{background:0 0}.koi-home-iconbtn{width:30px;height:30px;color:var(--koi-muted);border-radius:var(--koi-radius-sm);cursor:pointer;transition:background var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:inline-flex}.koi-home-iconbtn svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.koi-home-iconbtn:hover{background:var(--koi-surface);color:var(--koi-fg);border-color:var(--koi-line)}.koi-home-iconbtn:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}#home-root{position:fixed;inset:0}#home-root[hidden]{display:none}.koi-welcome-card{background:var(--koi-paper-2);flex-direction:column;flex:1;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}.koi-welcome-view{flex-direction:column;flex:auto;min-height:0;padding:0 0 0 clamp(20px,3.4vw,40px);animation:.28s both koi-fade;display:flex}.koi-welcome-view[hidden]{display:none}.koi-gallery-view{padding:clamp(20px,3vw,34px) clamp(20px,3.4vw,40px) clamp(22px,3vw,34px)}.koi-welcome-bar{justify-content:space-between;align-items:center;gap:var(--koi-space-3);margin-bottom:clamp(20px,3vw,32px);display:flex}.koi-home-resume{align-items:center;gap:var(--koi-space-3);text-align:left;background:var(--koi-surface);width:100%;color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius);padding:var(--koi-space-2-75) var(--koi-space-3-5);font-family:var(--koi-font-body);cursor:pointer;transition:background var(--koi-dur-mid) ease, border-color var(--koi-dur-mid) ease;display:flex}.koi-home-resume:hover{border-color:color-mix(in srgb, var(--koi-accent) 60%, var(--koi-line));background:color-mix(in srgb, var(--koi-accent) 6%, var(--koi-surface))}.koi-home-resume:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.koi-home-resume-tile{border-radius:var(--koi-radius-sm);background:color-mix(in srgb, var(--koi-accent) 14%, var(--koi-surface));width:40px;height:40px;color:var(--koi-accent);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.koi-home-resume-tile svg{width:16px;height:16px}.koi-home-resume-ping{border-radius:var(--koi-radius-pill);background:var(--koi-ddd-entity);border:2px solid var(--koi-surface);width:8px;height:8px;position:absolute;top:-3px;right:-3px}.koi-home-resume-ping.is-live:after{content:"";z-index:-1;border-radius:inherit;background:var(--koi-ddd-entity);animation:1.8s ease-out infinite koi-resume-ping;position:absolute;inset:-2px}@keyframes koi-resume-ping{0%{opacity:.55;transform:scale(1)}70%,to{opacity:0;transform:scale(2.4)}}.koi-home-resume-body{gap:var(--koi-space-0-5);flex-direction:column;flex:auto;min-width:0;display:flex}.koi-home-resume-eyebrow{font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);text-transform:uppercase;letter-spacing:.18em;color:var(--koi-accent);font-weight:600}.koi-home-resume-chevron{color:var(--koi-muted);transition:transform var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease;flex:none;align-items:center;display:inline-flex}.koi-home-resume-chevron svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.koi-home-resume:hover .koi-home-resume-chevron{color:var(--koi-accent);transform:translate(2px)}.koi-home-resume-meta{align-items:baseline;gap:var(--koi-space-1);min-width:0;font-size:var(--koi-text-sm);color:var(--koi-fg);font-weight:600;display:flex}.koi-home-resume-project{white-space:nowrap}.koi-home-resume-sep{color:var(--koi-muted)}.koi-home-resume-file{text-overflow:ellipsis;white-space:nowrap;color:var(--koi-fg-muted);font-weight:500;overflow:hidden}.koi-home-resume-detail{align-items:baseline;gap:var(--koi-space-2);font-size:var(--koi-text-xs);color:var(--koi-muted);display:flex}.koi-home-resume-unsaved{color:var(--koi-accent)}.koi-home-body{flex:1;grid-template-columns:minmax(0,1fr) 468px;min-height:0;display:grid}.koi-welcome-lede{flex-direction:column;min-width:0;padding:clamp(20px,3vw,34px) clamp(24px,4vw,56px) clamp(22px,3vw,34px) 0;display:flex;overflow:hidden auto}.koi-welcome-eyebrow{margin:0 0 var(--koi-space-3);font-family:var(--koi-font-mono);text-transform:uppercase;letter-spacing:.22em;color:var(--koi-muted);font-size:.7rem;font-weight:500}.koi-welcome-statement{font-family:var(--koi-font-display);letter-spacing:-.025em;color:var(--koi-fg);margin:0 0 clamp(18px,2.4vw,26px);font-size:clamp(1.7rem,1rem + 2.2vw,2.5rem);font-weight:800;line-height:1.04}.koi-welcome-grad{background:var(--koi-accent-grad);color:#0000;-webkit-background-clip:text;background-clip:text}.koi-welcome-snippet{border:1px solid var(--koi-line);border-radius:var(--koi-radius);background:var(--koi-paper);margin:0;overflow:hidden}.koi-welcome-snippet-bar{justify-content:space-between;align-items:center;gap:var(--koi-space-2);padding:var(--koi-space-2) var(--koi-space-3);border-bottom:1px solid var(--koi-line);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);display:flex}.koi-welcome-snippet-file{color:var(--koi-ink-soft)}.koi-welcome-snippet-kind{text-transform:uppercase;letter-spacing:.16em;color:var(--koi-muted)}.koi-welcome-snippet-code{padding:var(--koi-space-3-5) var(--koi-space-4);font-family:var(--koi-font-mono);color:var(--koi-fg);tab-size:2;margin:0;font-size:.82rem;line-height:1.75;overflow-x:auto}.koi-welcome-snippet-code code{font:inherit;white-space:pre}.koi-syn-kw{color:var(--koi-hl-keyword)}.koi-syn-type{color:var(--koi-hl-type)}.koi-syn-str{color:var(--koi-hl-string)}.koi-syn-num{color:var(--koi-hl-number)}.koi-syn-punct{color:var(--koi-hl-punct)}.koi-syn-id{color:var(--koi-ink-soft)}.koi-welcome-snippet-emit{align-items:center;gap:var(--koi-space-2);padding:var(--koi-space-2-5) var(--koi-space-4);border-top:1px solid var(--koi-line);font-family:var(--koi-font-body);font-size:var(--koi-text-xs);color:var(--koi-muted);margin:0;display:flex}.koi-welcome-emit-dots{align-items:center;gap:var(--koi-space-1);flex:none;display:inline-flex}.koi-welcome-emit-dot{background:var(--emit-dot,var(--lang-csharp));width:8px;height:8px;box-shadow:0 0 0 2px color-mix(in srgb, var(--emit-dot,var(--lang-csharp)) 22%, transparent);border-radius:2px;flex:none}.koi-welcome-launch{border-left:1px solid var(--koi-line);flex-direction:column;gap:clamp(18px,2.4vw,26px);min-width:0;padding:clamp(20px,3vw,34px) clamp(20px,3.4vw,40px) clamp(22px,3vw,34px) clamp(24px,4vw,56px);display:flex;overflow:hidden auto}.koi-welcome-rail-title{margin:0 0 var(--koi-space-2-5);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);text-transform:uppercase;letter-spacing:.18em;color:var(--koi-muted);font-weight:600}.koi-welcome-rail-head{justify-content:space-between;align-items:baseline;gap:var(--koi-space-3);display:flex}.koi-welcome-rail-head .koi-welcome-rail-title{margin-bottom:0}.koi-welcome-actions{gap:var(--koi-space-2-5);flex-direction:column;display:flex}.koi-welcome-action{align-items:center;gap:var(--koi-space-3);text-align:left;background:var(--koi-surface);width:100%;color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius);padding:var(--koi-space-2-75) var(--koi-space-3-5);font-family:var(--koi-font-body);cursor:pointer;transition:transform var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease, background var(--koi-dur-fast) ease;display:flex}.koi-welcome-action:hover{border-color:var(--koi-accent);transform:translateY(-1px)}.koi-welcome-action:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}.koi-welcome-action.primary{background:var(--koi-accent);color:var(--koi-on-accent);border-color:var(--koi-accent)}.koi-welcome-action.primary:hover{background:color-mix(in srgb, var(--koi-accent) 88%, #fff)}.koi-welcome-action:disabled{cursor:not-allowed;opacity:.5}.koi-welcome-action:disabled:hover{border-color:var(--koi-line);transform:none}.koi-welcome-keys{align-self:center;align-items:center;gap:var(--koi-space-0-5);flex:none;margin-left:auto;display:inline-flex}.koi-welcome-key{min-width:18px;height:18px;padding:0 var(--koi-space-1);box-sizing:border-box;font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);letter-spacing:.02em;white-space:nowrap;color:currentColor;background:color-mix(in srgb, currentColor 8%, transparent);border:1px solid color-mix(in srgb, currentColor 28%, transparent);border-radius:var(--koi-radius-sm);opacity:.85;border-bottom-width:2px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.koi-welcome-clone{gap:var(--koi-space-2);flex-direction:column;display:flex}.koi-welcome-clone-form{gap:var(--koi-space-1-5);padding:var(--koi-space-2-5) var(--koi-space-3);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);background:color-mix(in srgb, var(--koi-fg) 3%, var(--koi-surface));flex-direction:column;display:flex}.koi-welcome-clone-form[hidden]{display:none}.koi-welcome-clone-controls{align-items:center;gap:var(--koi-space-2);display:flex}.koi-welcome-clone-url{box-sizing:border-box;background:var(--koi-paper);min-width:0;color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1-5) var(--koi-space-2);font-family:var(--koi-font-mono);font-size:var(--koi-text-sm);flex:auto}.koi-welcome-clone-url::placeholder{color:var(--koi-muted)}.koi-welcome-clone-url:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px;border-color:var(--koi-accent)}.koi-welcome-clone-submit{background:var(--koi-accent);color:var(--koi-on-accent);border:1px solid var(--koi-accent);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1-5) var(--koi-space-3);font-family:var(--koi-font-body);font-size:var(--koi-text-sm);cursor:pointer;transition:background var(--koi-dur-fast) ease, opacity var(--koi-dur-fast) ease;flex:none;font-weight:600}.koi-welcome-clone-submit:hover:not(:disabled){background:color-mix(in srgb, var(--koi-accent) 88%, #fff)}.koi-welcome-clone-submit:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}.koi-welcome-clone-submit:disabled{cursor:not-allowed;opacity:.5}.koi-welcome-clone-hint{font-family:var(--koi-font-body);font-size:var(--koi-text-xs);color:var(--koi-muted);margin:0}.koi-welcome-clone-error{font-family:var(--koi-font-body);font-size:var(--koi-text-xs);color:var(--koi-error);margin:0}.koi-welcome-clone-error[hidden]{display:none}.koi-welcome-action-icon{border-radius:var(--koi-radius-sm);background:color-mix(in srgb, var(--koi-fg) 7%, transparent);flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.koi-welcome-action-icon svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.koi-welcome-action.primary .koi-welcome-action-icon{background:color-mix(in srgb, var(--koi-on-accent) 16%, transparent)}.koi-welcome-action-text{gap:var(--koi-space-0-5);flex-direction:column;min-width:0;display:flex}.koi-welcome-action-label{font-size:var(--koi-text-lg);font-weight:600}.koi-welcome-action-desc{font-size:var(--koi-text-xs);color:var(--koi-muted)}.koi-welcome-action.primary .koi-welcome-action-desc{color:color-mix(in srgb, var(--koi-on-accent) 72%, transparent)}.koi-welcome-recent-head{align-items:center;gap:var(--koi-space-2);margin-bottom:var(--koi-space-2);display:flex}.koi-welcome-recent-head .koi-welcome-rail-title{margin-bottom:0}.koi-welcome-recent-head-title{align-items:center;gap:var(--koi-space-2);min-width:0;display:flex}.koi-welcome-recent-count{min-width:1.4em;padding:1px var(--koi-space-1-5);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);text-align:center;color:var(--koi-muted);background:color-mix(in srgb, var(--koi-fg) 7%, transparent);border-radius:var(--koi-radius-pill);flex:none;font-weight:600}.koi-welcome-recent-filter-wrap{align-items:center;gap:var(--koi-space-1);min-width:0;max-width:200px;padding:0 var(--koi-space-2);background:var(--koi-surface);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);flex:0 auto;margin-left:auto;display:flex}.koi-welcome-recent-filter-wrap:focus-within{border-color:var(--koi-accent);outline:2px solid var(--koi-accent);outline-offset:1px}.koi-welcome-recent-filter-wrap[hidden]{display:none}.koi-welcome-recent-filter-icon{color:var(--koi-muted);flex:none;display:inline-flex}.koi-welcome-recent-filter-icon svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.koi-welcome-recent-filter{box-sizing:border-box;min-width:0;color:var(--koi-fg);padding:var(--koi-space-1) 0;font-family:var(--koi-font-body);font-size:var(--koi-text-sm);background:0 0;border:0;flex:auto}.koi-welcome-recent-filter::placeholder{color:var(--koi-muted)}.koi-welcome-recent-filter:focus-visible{outline:none}.koi-welcome-recent-body{flex-direction:column;align-items:flex-start;display:flex}.koi-welcome-recent-list{align-self:stretch;gap:var(--koi-space-0-5);flex-direction:column;max-height:320px;margin:0 -6px;padding:0 6px;display:flex;overflow-y:auto}.koi-welcome-recent-item{align-items:center;gap:var(--koi-space-1);display:flex}.koi-welcome-recent-item[hidden]{display:none}.koi-welcome-recent-open{align-items:center;gap:var(--koi-space-2);text-align:left;border-radius:var(--koi-radius-sm);min-width:0;min-height:38px;padding:var(--koi-space-1) var(--koi-space-2);color:var(--koi-fg);cursor:pointer;background:0 0;border:1px solid #0000;flex:auto;display:flex}.koi-welcome-recent-open:hover{background:var(--koi-surface);border-color:var(--koi-line)}.koi-welcome-recent-open:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.koi-welcome-recent-mono{border-radius:var(--koi-radius-sm);background:color-mix(in srgb, var(--koi-cyan) 16%, transparent);width:26px;height:26px;color:var(--koi-cyan);font-family:var(--koi-font-display);font-size:var(--koi-text-sm);text-transform:lowercase;flex:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.koi-welcome-recent-item-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--koi-font-body);font-size:var(--koi-text-sm-plus);color:var(--koi-fg);flex:0 auto;overflow:hidden}.koi-welcome-recent-lang{padding:0 var(--koi-space-1);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);color:var(--koi-muted);background:color-mix(in srgb, var(--koi-fg) 6%, transparent);border-radius:var(--koi-radius-2xs);flex:none}.koi-welcome-recent-side{align-items:center;gap:var(--koi-space-2);min-width:0;padding-left:var(--koi-space-2);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);color:var(--koi-muted);flex:none;margin-left:auto;display:flex}.koi-welcome-recent-branch{align-items:center;gap:var(--koi-space-0-5);min-width:0;color:var(--koi-cyan);display:inline-flex}.koi-welcome-recent-branch svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.koi-welcome-recent-branch-icon{flex:none;display:inline-flex}.koi-welcome-recent-branch-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:12ch;overflow:hidden}.koi-welcome-recent-time{white-space:nowrap;flex:none}.koi-welcome-recent-pin,.koi-welcome-recent-copy,.koi-welcome-recent-remove{color:var(--koi-muted);border-radius:var(--koi-radius-sm);cursor:pointer;opacity:0;transition:opacity var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease;background:0 0;border:0;flex:none}.koi-welcome-recent-pin:hover,.koi-welcome-recent-copy:hover,.koi-welcome-recent-remove:hover{color:var(--koi-fg);background:var(--koi-surface)}.koi-welcome-recent-pin:focus-visible,.koi-welcome-recent-copy:focus-visible,.koi-welcome-recent-remove:focus-visible{opacity:1;outline:2px solid var(--koi-accent);outline-offset:1px}.koi-welcome-recent-item:hover :is(.koi-welcome-recent-pin,.koi-welcome-recent-copy,.koi-welcome-recent-remove),.koi-welcome-recent-item:focus-within :is(.koi-welcome-recent-pin,.koi-welcome-recent-copy,.koi-welcome-recent-remove),.koi-welcome-recent-pin:focus-visible,.koi-welcome-recent-copy:focus-visible,.koi-welcome-recent-remove:focus-visible{opacity:1}.koi-welcome-recent-item.is-pinned .koi-welcome-recent-pin{opacity:1;color:var(--koi-accent)}.koi-welcome-recent-toggle{margin-top:var(--koi-space-1-5);color:var(--koi-accent);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);cursor:pointer;background:0 0;border:0}.koi-welcome-recent-toggle:hover{text-decoration:underline}.koi-welcome-recent-toggle:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.koi-welcome-recent-clear{margin-top:var(--koi-space-2);color:var(--koi-muted);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);text-transform:uppercase;letter-spacing:.4px;cursor:pointer;background:0 0;border:0}.koi-welcome-recent-clear:hover{color:var(--koi-fg);text-decoration:underline}.koi-welcome-recent-clear:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.koi-welcome-empty{color:var(--koi-muted);font-size:var(--koi-text-sm-plus);margin:0;font-style:italic}.koi-welcome-gallery{border-top:1px solid var(--koi-line);margin-top:clamp(24px,3.4vw,38px);padding-top:clamp(20px,2.6vw,28px)}.koi-welcome-gallery-head{justify-content:space-between;align-items:center;gap:var(--koi-space-3);flex-wrap:wrap;display:flex}.koi-welcome-section-title{font-family:var(--koi-font-display);letter-spacing:-.01em;color:var(--koi-fg);margin:0;font-size:1.05rem;font-weight:700}.koi-welcome-search{flex:0 260px}.koi-welcome-search-input{box-sizing:border-box;background:var(--koi-surface);width:100%;color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-2) var(--koi-space-2-75);font-family:var(--koi-font-body);font-size:var(--koi-text-base)}.koi-welcome-search-input::placeholder{color:var(--koi-muted)}.koi-welcome-search-input:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px;border-color:var(--koi-accent)}.koi-welcome-gallery-main{flex:1;align-items:flex-start;gap:clamp(20px,3vw,36px);min-height:0;margin-top:clamp(20px,2.6vw,28px);display:flex}.koi-welcome-tablist{gap:var(--koi-space-0-5);flex-direction:column;flex:none;width:clamp(140px,18vw,184px);display:flex}.koi-welcome-tab{justify-content:space-between;align-items:baseline;gap:var(--koi-space-2);text-align:left;width:100%;color:var(--koi-muted);border-radius:var(--koi-radius);padding:var(--koi-space-2) var(--koi-space-2-75);font-family:var(--koi-font-body);cursor:pointer;transition:background var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease;background:0 0;border:1px solid #0000;border-left-width:2px;display:flex}.koi-welcome-tab:hover{background:var(--koi-surface);color:var(--koi-fg)}.koi-welcome-tab:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.koi-welcome-tab[aria-selected=true]{background:color-mix(in srgb, var(--koi-accent) 12%, transparent);border-left-color:var(--koi-accent);color:var(--koi-fg)}.koi-welcome-tab.is-empty{opacity:.4;pointer-events:none}.koi-welcome-tab-label{font-size:var(--koi-text-sm-plus);text-transform:capitalize;font-weight:600}.koi-welcome-tab-count{font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);color:color-mix(in srgb, var(--koi-muted) 80%, transparent)}.koi-welcome-tab[aria-selected=true] .koi-welcome-tab-count{color:var(--koi-accent)}.koi-welcome-tabpanel{flex:1;min-width:0;min-height:0;margin:-2px;padding:2px;overflow-y:auto}.koi-welcome-tabpanel:focus-visible{outline:none}.koi-welcome-gallery-grid{gap:var(--koi-space-2-5);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.koi-welcome-example{align-items:center;gap:var(--koi-space-3);text-align:left;background:var(--koi-surface);border:1px solid var(--koi-line);border-radius:var(--koi-radius-lg);padding:var(--koi-space-3) var(--koi-space-3-5);cursor:pointer;transition:border-color var(--koi-dur-fast) ease, transform var(--koi-dur-fast) ease, box-shadow var(--koi-dur-fast) ease;display:flex}.koi-welcome-example:hover{border-color:var(--koi-accent);box-shadow:0 12px 28px color-mix(in srgb, var(--koi-accent) 14%, transparent);transform:translateY(-2px)}.koi-welcome-example:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px;border-color:var(--koi-accent)}.koi-welcome-example-icon{border-radius:var(--koi-radius);background:color-mix(in srgb, var(--koi-fg) 6%, transparent);border:1px solid var(--koi-line);flex:none;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.3rem;line-height:1;display:inline-flex}.koi-welcome-example-body{gap:var(--koi-space-0-75);flex-direction:column;flex:1;min-width:0;display:flex}.koi-welcome-example-name{font-family:var(--koi-font-display);font-weight:700;font-size:var(--koi-text-md);letter-spacing:-.01em;color:var(--koi-fg)}.koi-welcome-example-blurb{-webkit-line-clamp:2;font-family:var(--koi-font-body);font-size:var(--koi-text-sm-plus);color:var(--koi-muted);-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box;overflow:hidden}.koi-welcome-example-arrow{color:var(--koi-muted);opacity:0;transition:opacity var(--koi-dur-fast) ease, transform var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease;flex:none;display:inline-flex;transform:translate(-4px)}.koi-welcome-example-arrow svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.koi-welcome-example:hover .koi-welcome-example-arrow,.koi-welcome-example:focus-visible .koi-welcome-example-arrow{opacity:1;color:var(--koi-accent);transform:translate(0)}.koi-welcome-gallery-empty{margin:var(--koi-space-1) 0 0;color:var(--koi-muted);font-size:var(--koi-text-sm-plus);font-style:italic}.koi-gallery-view .koi-welcome-gallery{border-top:none;flex-direction:column;flex:1;min-height:0;margin-top:0;padding-top:0;display:flex}.koi-gallery-bar{margin-bottom:clamp(16px,2.2vw,24px)}.koi-welcome-back{align-items:center;gap:var(--koi-space-1-5);color:var(--koi-muted);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1-25) var(--koi-space-2);font-family:var(--koi-font-body);font-size:var(--koi-text-sm-plus);cursor:pointer;transition:background var(--koi-dur-fast) ease, color var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease;background:0 0;border:1px solid #0000;display:inline-flex}.koi-welcome-back:hover{background:var(--koi-surface);border-color:var(--koi-line);color:var(--koi-fg)}.koi-welcome-back:hover .koi-welcome-back-icon{transform:translate(-2px)}.koi-welcome-back:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.koi-welcome-back-icon{transition:transform var(--koi-dur-fast) ease;display:inline-flex}.koi-welcome-back-icon svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.koi-gallery-view .koi-welcome-gallery-head{align-items:flex-end}.koi-welcome-gallery-lede{min-width:0}.koi-welcome-gallery-lede .koi-welcome-eyebrow{margin-bottom:var(--koi-space-1-5)}.koi-gallery-view .koi-welcome-section-title{letter-spacing:-.02em;font-size:clamp(1.4rem,1rem + 1vw,1.7rem);font-weight:800;line-height:1.05}.koi-welcome-gallery-sub{margin:var(--koi-space-1-5) 0 0;font-family:var(--koi-font-body);font-size:var(--koi-text-sm-plus);color:var(--koi-muted)}.koi-home-colophon{align-items:center;gap:var(--koi-space-2) var(--koi-space-3);padding-top:var(--koi-space-3);border-top:1px solid var(--koi-line);color:var(--koi-muted);flex-wrap:wrap;flex:none;margin-top:auto;display:flex}.koi-home-colophon-chip{padding:var(--koi-space-0-5) var(--koi-space-2-25);font-family:var(--koi-font-mono);font-size:var(--koi-text-xs-plus);letter-spacing:.02em;color:var(--koi-accent);background:color-mix(in srgb, var(--koi-accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--koi-accent) 35%, transparent);border-radius:var(--koi-radius-pill);flex:none}.koi-home-colophon-chip[hidden]{display:none}.koi-home-colophon-links{align-items:center;gap:var(--koi-space-1) var(--koi-space-3);flex-wrap:wrap;display:flex}.koi-home-colophon-link{align-items:center;gap:var(--koi-space-1-5);font-size:var(--koi-text-sm-plus);color:var(--koi-ink-soft);transition:color var(--koi-dur-fast) ease;text-decoration:none;display:inline-flex}.koi-home-colophon-link:hover{color:var(--koi-accent)}.koi-home-colophon-link:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px;border-radius:var(--koi-radius-2xs)}.koi-home-colophon-link-icon{color:currentColor;display:inline-flex}.koi-home-colophon-credit{font-size:var(--koi-text-sm);color:var(--koi-muted);flex-basis:100%;margin:0;line-height:1.5}.koi-home-colophon-author{color:var(--koi-fg);border-bottom:1px solid color-mix(in srgb, var(--koi-accent) 50%, transparent);font-weight:600;text-decoration:none}.koi-home-colophon-author:hover{color:var(--koi-accent);border-bottom-color:var(--koi-accent)}.koi-home-colophon-author:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px;border-radius:var(--koi-radius-2xs)}@media (width<=760px){.koi-home-body{grid-template-columns:1fr;gap:clamp(20px,5vw,28px);overflow-y:auto}.koi-welcome-lede{padding:clamp(20px,3vw,34px) clamp(20px,3.4vw,40px) 0;overflow-y:visible}.koi-welcome-launch{border-left:none;border-top:1px solid var(--koi-line);padding:clamp(20px,5vw,28px) clamp(20px,3.4vw,40px) clamp(22px,3vw,34px);overflow-y:visible}.koi-home-colophon{align-items:flex-start;gap:var(--koi-space-2);flex-direction:column}.koi-welcome-search{flex-basis:100%}.koi-gallery-view .koi-welcome-gallery-head{align-items:stretch}.koi-welcome-gallery-main{gap:var(--koi-space-3);flex-direction:column}.koi-welcome-tablist{gap:var(--koi-space-1-5);flex-flow:wrap;width:100%}.koi-welcome-tab{border:1px solid var(--koi-line);border-radius:var(--koi-radius-pill);width:auto;padding:var(--koi-space-1-5) var(--koi-space-2-75);border-left-width:1px;flex:none}.koi-welcome-tab[aria-selected=true]{border-color:var(--koi-accent)}}.koi-search{z-index:var(--koi-z-overlay);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-lg);flex-direction:column;width:360px;max-width:calc(100vw - 32px);max-height:calc(100vh - 96px);display:flex;position:fixed;top:56px;right:16px;overflow:hidden;box-shadow:0 18px 50px #00000080}.koi-search[hidden]{display:none}.koi-search-head{align-items:center;gap:var(--koi-space-2);padding:var(--koi-space-2);border-bottom:1px solid var(--koi-line);display:flex}.koi-search-query{background:var(--koi-paper);min-width:0;color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-2) var(--koi-space-2-75);font-family:var(--koi-font-body);font-size:var(--koi-text-md);outline:none;flex:auto}.koi-search-query:focus{border-color:var(--koi-accent)}.koi-search-query::placeholder,.koi-search-include::placeholder{color:var(--koi-muted)}.koi-search-toggles{flex:none;gap:2px;display:flex}.koi-search-toggle{font-family:var(--koi-font-mono);font-size:var(--koi-text-xs);color:var(--koi-muted);border-radius:var(--koi-radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:3px 6px}.koi-search-toggle[aria-pressed=true]{color:var(--koi-fg);background:color-mix(in srgb, var(--koi-accent) 16%, transparent);border-color:color-mix(in srgb, var(--koi-accent) 40%, var(--koi-line))}.koi-search-close{color:var(--koi-muted);cursor:pointer;font-size:var(--koi-text-md);background:0 0;border:none;flex:none;padding:2px 6px}.koi-search-close:hover{color:var(--koi-fg)}.koi-search-replace-row{align-items:center;gap:var(--koi-space-2);padding:var(--koi-space-2) var(--koi-space-2) 0;display:flex}.koi-search-replace{background:var(--koi-paper);min-width:0;color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1-5) var(--koi-space-2-75);font-family:var(--koi-font-body);font-size:var(--koi-text-base);outline:none;flex:auto}.koi-search-replace:focus{border-color:var(--koi-accent)}.koi-search-replace-all{color:var(--koi-muted);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);cursor:pointer;font-size:var(--koi-text-md);background:0 0;flex:none;padding:4px 8px}.koi-search-replace-all:hover:not(:disabled){color:var(--koi-fg);border-color:var(--koi-accent)}.koi-search-replace-all:disabled{opacity:.4;cursor:default}.koi-search-include{margin:var(--koi-space-2);background:var(--koi-paper);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1-5) var(--koi-space-2-75);font-family:var(--koi-font-body);font-size:var(--koi-text-base);outline:none}.koi-search-include:focus{border-color:var(--koi-accent)}.koi-search-error{margin:0 var(--koi-space-2) var(--koi-space-2);color:var(--koi-error);font-family:var(--koi-font-mono);font-size:var(--koi-text-xs)}.koi-search-summary{padding:0 var(--koi-space-3) var(--koi-space-2);color:var(--koi-muted);font-size:var(--koi-text-xs)}.koi-search-results{padding:0 var(--koi-space-1-5) var(--koi-space-2);overflow-y:auto}.koi-search-file{margin-top:var(--koi-space-1)}.koi-search-file-head{align-items:center;gap:var(--koi-space-2);padding:var(--koi-space-1) var(--koi-space-2);color:var(--koi-fg);font-size:var(--koi-text-xs);font-weight:600;display:flex}.koi-search-file-name{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.koi-search-file-count{color:var(--koi-muted);font-family:var(--koi-font-mono);font-size:var(--koi-text-xs);flex:none}.koi-search-file-replace{color:var(--koi-muted);cursor:pointer;font-size:var(--koi-text-base);opacity:0;background:0 0;border:none;flex:none;padding:0 4px}.koi-search-file:hover .koi-search-file-replace{opacity:1}.koi-search-file-replace:hover:not(:disabled){color:var(--koi-fg)}.koi-search-file-replace:disabled{opacity:0;cursor:default}.koi-search-match{align-items:baseline;gap:var(--koi-space-2);text-align:left;width:100%;color:var(--koi-fg);border-radius:var(--koi-radius-sm);padding:2px var(--koi-space-2) 2px var(--koi-space-4);cursor:pointer;font-family:var(--koi-font-mono);font-size:var(--koi-text-xs);background:0 0;border:1px solid #0000;display:flex}.koi-search-match:hover{background:color-mix(in srgb, var(--koi-accent) 12%, transparent)}.koi-search-match-line{text-align:right;min-width:2ch;color:var(--koi-muted);flex:none}.koi-search-match-preview{white-space:pre;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.koi-search-match-preview mark{background:color-mix(in srgb, var(--koi-accent) 40%, transparent);color:inherit;border-radius:2px}.lx-scrim{z-index:var(--koi-z-modal);background:color-mix(in srgb, var(--koi-paper) 55%, transparent);-webkit-backdrop-filter:blur(3px)saturate(.9);backdrop-filter:blur(3px)saturate(.9);justify-content:center;align-items:flex-start;padding-top:min(15vh,150px);display:flex;position:fixed;inset:0}.lx-scrim[hidden]{display:none}.lx{background:color-mix(in srgb, var(--koi-paper-2) 94%, transparent);border:1px solid color-mix(in srgb, var(--koi-fg) 12%, var(--koi-line));border-radius:var(--koi-radius-lg);width:720px;max-width:94vw;box-shadow:var(--koi-shadow);-webkit-backdrop-filter:blur(20px)saturate(1.2);backdrop-filter:blur(20px)saturate(1.2);transition:width var(--koi-dur-mid) ease;flex-direction:column;display:flex;position:relative;overflow:hidden}.lx.has-preview{width:980px}@media (width<=900px){.lx.has-preview{width:720px}}.lx-inrow{border-bottom:1px solid color-mix(in srgb, var(--koi-line) 80%, transparent);align-items:center;gap:11px;height:58px;padding:0 16px;display:flex;position:relative}.lx-search{width:19px;height:19px;color:var(--koi-muted);flex:none}.lx-modepill{border-radius:var(--koi-radius-sm);background:color-mix(in srgb, var(--koi-accent) 16%, transparent);height:26px;color:var(--koi-accent);flex:none;align-items:center;gap:6px;padding:0 6px 0 10px;font-size:12.5px;font-weight:600;display:inline-flex}.lx-modepill .mp-x{border-radius:var(--koi-radius-xs);width:18px;height:18px;color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.lx-modepill .mp-x:hover{background:color-mix(in srgb, var(--koi-accent) 22%, transparent);opacity:1}.lx-modepill .mp-x .ico{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:11px;height:11px}.lx-input{min-width:0;color:var(--koi-fg);font-family:var(--koi-font-body);letter-spacing:-.01em;background:0 0;border:0;outline:0;flex:1;font-size:18px}.lx-input::placeholder{color:color-mix(in srgb, var(--koi-muted) 90%, transparent)}.lx-count{font-family:var(--koi-font-mono);color:var(--koi-muted);flex:none;font-size:11px}.lx-esc{font-family:var(--koi-font-mono);color:var(--koi-muted);border:1px solid var(--koi-line);border-bottom-width:2px;border-radius:5px;flex:none;padding:2px 6px;font-size:10.5px}.lx-body{height:460px;min-height:0;display:flex}.lx-results{scrollbar-width:thin;flex:1;min-width:0;height:100%;padding:8px;position:relative;overflow-y:auto}.lx.has-preview .lx-results{border-right:1px solid color-mix(in srgb, var(--koi-line) 70%, transparent);flex:0 0 540px}.lx-group-label{font-family:var(--koi-font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--koi-muted);align-items:center;gap:8px;padding:12px 10px 5px;font-size:10px;display:flex}.lx-group:first-child .lx-group-label{padding-top:4px}.lx-group-label .gl-n{color:color-mix(in srgb, var(--koi-muted) 70%, transparent)}.lx-item{border-radius:var(--koi-radius-sm);cursor:pointer;align-items:center;gap:11px;height:46px;padding:0 10px;display:flex;position:relative}.lx-item:hover{background:color-mix(in srgb, var(--koi-fg) 5%, transparent)}.lx-item.sel{background:color-mix(in srgb, var(--koi-accent) 15%, transparent)}.lx-item.sel:before{content:"";background:var(--koi-accent-grad);border-radius:2px;width:2.5px;position:absolute;top:8px;bottom:8px;left:0}.lx-kind{border-radius:var(--koi-radius-sm);width:26px;height:26px;font-family:var(--koi-font-mono);letter-spacing:.04em;color:var(--kc);background:color-mix(in srgb, var(--kc) 18%, transparent);flex:none;justify-content:center;align-items:center;font-size:9.5px;font-weight:700;display:inline-flex}.lx-glyph{border-radius:var(--koi-radius-sm);background:color-mix(in srgb, var(--koi-fg) 7%, transparent);width:26px;height:26px;color:var(--koi-muted);flex:none;justify-content:center;align-items:center;display:inline-flex}.lx-item.sel .lx-glyph{color:var(--koi-fg)}.lx-glyph .lx-ic{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.lx-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.lx-title{color:var(--koi-fg);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.lx-title mark{color:var(--koi-accent);background:0 0;font-weight:700}.lx-sub{color:var(--koi-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.lx-sub .lx-ctx{color:color-mix(in srgb, var(--koi-ink-soft) 80%, var(--koi-muted))}.lx-tail{flex:none;align-items:center;gap:8px;display:flex}.lx-tail .lx-kbd{font-family:var(--koi-font-mono);color:var(--koi-muted);border:1px solid var(--koi-line);border-bottom-width:2px;border-radius:5px;padding:2px 6px;font-size:10.5px}.lx-tail .lx-meta{font-family:var(--koi-font-mono);color:var(--koi-muted);font-size:11px}.lx-actbtn{border-radius:var(--koi-radius-xs);border:1px solid var(--koi-line);background:color-mix(in srgb, var(--koi-paper) 50%, transparent);height:24px;color:var(--koi-ink-soft);font:inherit;font-family:var(--koi-font-mono);cursor:pointer;flex:none;align-items:center;gap:5px;padding:0 9px;font-size:10.5px;display:inline-flex}.lx-actbtn:hover{border-color:color-mix(in srgb, var(--koi-accent) 50%, var(--koi-line));color:var(--koi-fg)}.lx-actbtn-kbd{opacity:.6}.lx-empty{text-align:center;color:var(--koi-muted);padding:32px 16px;font-size:12.5px}.lx-empty .le-big{color:var(--koi-fg);margin-bottom:6px;font-size:14px}.lx-preview{scrollbar-width:thin;flex:1;min-width:0;height:100%;padding:18px;display:none;overflow-y:auto}.lx.has-preview .lx-preview{display:block}.pv-head{align-items:center;gap:11px;margin-bottom:14px;display:flex}.pv-head .lx-kind,.pv-head .lx-glyph{width:34px;height:34px}.pv-head .lx-kind{font-size:11px}.pv-head .lx-glyph .lx-ic{width:18px;height:18px}.pv-title{min-width:0}.pv-name{font-family:var(--koi-font-display);color:var(--koi-fg);letter-spacing:-.01em;font-size:17px;font-weight:660}.pv-sub{color:var(--koi-muted);margin-top:2px;font-size:11.5px}.pv-file{font-family:var(--koi-font-mono);color:var(--koi-muted);align-items:center;gap:7px;margin-bottom:12px;font-size:11px;display:flex}.pv-file .lx-ic{flex:none;width:13px;height:13px}.pv-desc{color:var(--koi-ink-soft);text-wrap:pretty;margin-bottom:14px;font-size:13px;line-height:1.55}.pv-code-block{border-radius:var(--koi-radius-sm);background:color-mix(in srgb, var(--koi-paper) 70%, transparent);border:1px solid color-mix(in srgb, var(--koi-line) 70%, transparent);font-family:var(--koi-font-mono);white-space:pre-wrap;color:var(--koi-fg);margin:0 0 14px;padding:12px 14px;font-size:12px;line-height:1.65;overflow-x:auto}.pv-code-block .k{color:var(--koi-hl-keyword)}.pv-code-block .s{color:var(--koi-hl-string)}.pv-diff .dl{margin:0 -14px;padding:0 14px;display:block}.pv-diff .dl-add{background:color-mix(in srgb, var(--koi-hl-string) 12%, transparent);box-shadow:inset 2px 0 0 var(--koi-hl-string)}.pv-diff .dl-del{background:color-mix(in srgb, var(--koi-error) 12%, transparent);box-shadow:inset 2px 0 0 var(--koi-error);opacity:.8}.pv-grid{grid-template-columns:auto 1fr;align-items:baseline;gap:7px 16px;margin-bottom:14px;display:grid}.pv-k{color:var(--koi-muted);font-size:11px;font-family:var(--koi-font-mono)}.pv-v{color:var(--koi-fg);font-size:12.5px}.pv-section{font-family:var(--koi-font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--koi-muted);margin:4px 0 8px;font-size:10px}.pv-pill,.pv-state{border-radius:var(--koi-radius-pill);background:color-mix(in srgb, var(--kc,var(--koi-fg)) 15%, transparent);height:22px;color:var(--kc,var(--koi-ink-soft));border:1px solid color-mix(in srgb, var(--kc,var(--koi-fg)) 22%, transparent);align-items:center;padding:0 9px;font-size:11.5px;display:inline-flex}.pv-pills{flex-wrap:wrap;gap:6px;display:flex}.pv-states{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;display:flex}.pv-states.big{margin:4px 0 16px}.pv-state{--kc:var(--koi-ddd-state-machine)}.pv-state.on{height:28px;padding:0 14px;font-size:13px}.pv-arrow{color:var(--koi-muted)}.pv-transition{margin:4px 0 16px}.pv-transition .pv-states.big{margin:0}.pv-transition-meta{color:var(--koi-muted);flex-wrap:wrap;gap:4px 16px;margin:8px 0 0;font-size:11.5px;display:flex}.pv-transition-meta code{font-family:var(--koi-font-mono);color:var(--koi-ink-soft)}.pv-fields{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.pv-field{border-radius:var(--koi-radius-xs);background:color-mix(in srgb, var(--koi-paper) 55%, transparent);font-family:var(--koi-font-mono);justify-content:space-between;align-items:baseline;padding:5px 10px;font-size:12px;display:flex}.pv-field .pf-t{color:var(--koi-hl-type)}.pv-note{border-radius:var(--koi-radius-sm);background:color-mix(in srgb, var(--koi-accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--koi-accent) 20%, transparent);color:var(--koi-ink-soft);align-items:flex-start;gap:8px;padding:10px 12px;font-size:11.5px;line-height:1.5;display:flex}.pv-note .lx-ic{width:14px;height:14px;color:var(--koi-accent);flex:none;margin-top:1px}.pv-files{flex-direction:column;gap:3px;display:flex}.pv-frow{border-radius:var(--koi-radius-xs);font-family:var(--koi-font-mono);align-items:center;gap:9px;padding:5px 8px;font-size:11.5px;display:flex}.pv-frow:hover{background:color-mix(in srgb, var(--koi-fg) 5%, transparent)}.pv-fpath{min-width:0;color:var(--koi-ink-soft);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pv-fn{color:var(--koi-muted)}.lx-footer{border-top:1px solid color-mix(in srgb, var(--koi-line) 80%, transparent);background:color-mix(in srgb, var(--koi-paper) 40%, transparent);flex:none;align-items:center;gap:14px;height:40px;padding:0 16px;display:flex}.lx-hint{color:var(--koi-muted);align-items:center;gap:6px;font-size:11px;display:inline-flex}.lx-hint-btn{font:inherit;cursor:pointer;background:0 0;border:0}.lx-hint-btn:disabled{cursor:default;opacity:.5}.lx-hint-btn:not(:disabled):hover{color:var(--koi-fg)}.lx-hint kbd{font-family:var(--koi-font-mono);color:var(--koi-ink-soft);border:1px solid var(--koi-line);text-align:center;border-bottom-width:2px;border-radius:4px;min-width:16px;padding:1px 5px;font-size:10px}.lx-legend{align-items:center;gap:4px;margin-left:auto;display:flex}.lx-mchip{border-radius:var(--koi-radius-sm);height:22px;color:var(--koi-muted);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:5px;padding:0 8px;font-size:11px;display:inline-flex}.lx-mchip:hover{background:color-mix(in srgb, var(--koi-fg) 6%, transparent);color:var(--koi-fg)}.lx-mchip.on{background:color-mix(in srgb, var(--koi-accent) 16%, transparent);color:var(--koi-accent)}.lx-mchip b{font-family:var(--koi-font-mono);font-weight:700}.lx-actmenu{z-index:var(--koi-z-popover);border-radius:var(--koi-radius-lg);background:color-mix(in srgb, var(--koi-paper-2) 96%, transparent);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid color-mix(in srgb, var(--koi-fg) 14%, var(--koi-line));width:300px;box-shadow:var(--koi-shadow);padding:6px;position:absolute;bottom:52px;right:14px}.lx-actmenu-head{font-family:var(--koi-font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--koi-muted);padding:7px 10px 6px;font-size:10px}.lx-actitem{border-radius:var(--koi-radius-sm);cursor:pointer;align-items:center;gap:10px;height:36px;padding:0 10px;display:flex}.lx-actitem.sel{background:color-mix(in srgb, var(--koi-accent) 15%, transparent)}.lx-actitem .lx-ic{width:15px;height:15px;color:var(--koi-muted);fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;flex:none}.lx-actitem.sel .lx-ic{color:var(--koi-accent)}.lx-actitem .ai-label{color:var(--koi-fg);flex:1;font-size:13px}.lx-actitem .ai-kbd{font-family:var(--koi-font-mono);color:var(--koi-muted);border:1px solid var(--koi-line);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:10.5px}.lx-toast{z-index:var(--koi-z-toast);opacity:0;border-radius:var(--koi-radius-lg);background:color-mix(in srgb, var(--koi-paper-2) 96%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid color-mix(in srgb, var(--koi-accent) 32%, var(--koi-line));box-shadow:var(--koi-shadow);color:var(--koi-fg);transition:opacity var(--koi-dur-mid) ease, transform var(--koi-dur-mid) ease;pointer-events:none;align-items:center;gap:10px;padding:11px 16px;font-size:13px;display:flex;position:fixed;bottom:42px;left:50%;transform:translate(-50%)translateY(12px)}.lx-toast.show{opacity:1;transform:translate(-50%)translateY(0)}.lx-toast .lx-ic{width:16px;height:16px;color:var(--koi-accent);fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none}.koi-modal-backdrop{z-index:var(--koi-z-modal);background:#080b128c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.koi-modal-backdrop[hidden]{display:none}.koi-modal{background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-lg);flex-direction:column;width:100%;max-width:520px;max-height:86vh;display:flex;box-shadow:0 18px 50px #00000080}.koi-modal-header{align-items:center;gap:var(--koi-space-3);padding:var(--koi-space-3-5) var(--koi-space-4-5);border-bottom:1px solid var(--koi-line);display:flex}.koi-modal-title{color:var(--koi-fg);margin:0;font-size:1rem;font-weight:600}.koi-modal-close{color:var(--koi-muted);border-radius:var(--koi-radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;width:28px;height:28px;margin-left:auto;font-size:1.05rem;line-height:1}.koi-modal-close:hover{color:var(--koi-fg);border-color:var(--koi-accent)}.koi-modal-body{padding:var(--koi-space-4-5);overflow-y:auto}.koi-modal-footer{padding:var(--koi-space-3) var(--koi-space-4-5);border-top:1px solid var(--koi-line);justify-content:flex-end;gap:var(--koi-space-2);display:flex}.koi-modal-footer:empty{display:none}.koi-field-label{color:var(--koi-fg);flex:auto;font-size:.88rem}.koi-select,.koi-number{background:var(--koi-surface);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1-5) var(--koi-space-2-5);font-family:var(--koi-font-body);font-size:var(--koi-text-base-plus);cursor:pointer}.koi-number{width:80px}.koi-select:hover,.koi-select:focus,.koi-number:hover,.koi-number:focus{border-color:var(--koi-accent);outline:none}.koi-checkbox{width:16px;height:16px;accent-color:var(--koi-accent);cursor:pointer}.koi-text{background:var(--koi-surface);width:100%;min-width:200px;color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1-5) var(--koi-space-2-25);font-family:var(--koi-font-mono);font-size:var(--koi-text-sm-plus)}.koi-text:hover,.koi-text:focus-visible{border-color:var(--koi-accent);outline:none}.koi-modal--settings{max-width:760px}.koi-modal--settings .koi-modal-body{padding:0}#center-panel-settings.settings-page{background:var(--koi-paper);flex-direction:column;flex:auto;min-height:0;display:flex}#center-panel-settings.settings-page[hidden]{display:none}.settings-page-header{justify-content:space-between;align-items:center;gap:var(--koi-space-3);padding:var(--koi-space-2) var(--koi-space-4);border-bottom:1px solid var(--koi-line);display:flex}.settings-page-header-controls{align-items:center;gap:var(--koi-space-3);display:flex}.settings-scope-toggle:empty{display:none}.settings-page-title{font-size:var(--koi-text-md);margin:0;font-weight:600}.settings-close-btn{border-radius:var(--koi-radius-sm,4px);width:28px;height:28px;color:var(--koi-fg-2);font-size:var(--koi-text-sm);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0;display:flex}.settings-close-btn:hover{background:var(--koi-hover);color:var(--koi-fg)}.settings-close-btn:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}.settings-page-body{flex:auto;min-height:0;overflow:auto}.settings-page .koi-settings-layout{min-height:100%}.settings-page .koi-settings-panels{height:auto}.settings-json-diagnostics{padding:var(--koi-space-1-5) var(--koi-space-4);border-top:1px solid var(--koi-line);background:color-mix(in srgb, var(--koi-danger,#d9534f) 12%, transparent);color:var(--koi-fg);font-size:var(--koi-text-sm)}.settings-json-diagnostics[hidden]{display:none}.settings-json-diagnostics-title{margin:0 0 var(--koi-space-1) 0;font-weight:600}.settings-json-diagnostics-list{padding-left:var(--koi-space-4);margin:0}.settings-json-scope-empty{padding:var(--koi-space-2) var(--koi-space-4);border-bottom:1px solid var(--koi-line);font-size:var(--koi-text-sm);color:var(--koi-muted);margin:0;font-style:italic}.koi-settings-layout{align-items:stretch;display:flex}.koi-settings-nav{gap:var(--koi-space-0-5);padding:var(--koi-space-4) var(--koi-space-3);border-right:1px solid var(--koi-line);flex-direction:column;flex:0 0 176px;display:flex}.koi-settings-tab{align-items:center;gap:var(--koi-space-2-5);width:100%;padding:var(--koi-space-2-25) var(--koi-space-2-5) var(--koi-space-2-25) var(--koi-space-3);color:var(--koi-muted);font-family:inherit;font-size:var(--koi-text-md);text-align:left;cursor:pointer;transition:background var(--koi-dur-base) ease, color var(--koi-dur-base) ease;background:0 0;border:none;border-radius:7px;display:flex;position:relative}.koi-settings-tab:hover{background:var(--koi-surface);color:var(--koi-fg)}.koi-settings-tab.is-active{background:var(--koi-surface);color:var(--koi-fg);font-weight:600}.koi-settings-tab.is-active:before{content:"";background:var(--koi-accent-grad);border-radius:0 3px 3px 0;width:3px;height:18px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.koi-settings-tab.is-active .koi-settings-tab-icon{color:var(--koi-accent)}.koi-settings-tab-icon{width:16px;height:16px;color:inherit;justify-content:center;align-items:center;display:inline-flex;position:relative;top:1px}.koi-settings-tab-icon svg{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.koi-settings-panels{min-width:0;height:460px;padding:var(--koi-space-1-5) 20px var(--koi-space-4-5);flex:auto;overflow-y:auto}.koi-settings-panel[hidden]{display:none}.koi-set-row{align-items:center;gap:var(--koi-space-4-5);padding:var(--koi-space-3-5) 0;border-bottom:1px solid var(--koi-line);display:flex}.koi-set-row:last-child{border-bottom:none}.koi-set-row[hidden]{display:none}.koi-set-text{gap:var(--koi-space-0-75);flex-direction:column;flex:auto;min-width:0;display:flex}.koi-set-label{font-size:var(--koi-text-lg);color:var(--koi-fg)}.koi-set-desc{color:var(--koi-muted);font-size:.76rem;line-height:1.4}.koi-set-control{flex:none;align-items:center;display:flex}.koi-set-row:has(.koi-text) .koi-set-control{flex:0 0 248px}.koi-set-control .koi-text{width:100%;min-width:0}.koi-switch{border:1px solid var(--koi-line);border-radius:var(--koi-radius-pill);background:var(--koi-surface);cursor:pointer;width:40px;height:22px;transition:background var(--koi-dur-slow) ease, border-color var(--koi-dur-slow) ease;flex:none;padding:0;position:relative}.koi-switch-thumb{background:var(--koi-muted);width:18px;height:18px;transition:transform var(--koi-dur-slow) ease, background var(--koi-dur-slow) ease;border-radius:50%;position:absolute;top:1px;left:1px}.koi-switch[aria-checked=true]{background:var(--koi-accent);border-color:var(--koi-accent)}.koi-switch[aria-checked=true] .koi-switch-thumb{background:var(--koi-on-accent);transform:translate(18px)}.koi-switch:disabled{cursor:not-allowed;opacity:.4}.koi-segmented{gap:var(--koi-space-0-5);padding:var(--koi-space-0-5);border:1px solid var(--koi-line);border-radius:var(--koi-radius);background:var(--koi-surface);display:inline-flex}.koi-seg{border-radius:var(--koi-radius-sm);color:var(--koi-ink-soft);padding:var(--koi-space-1-25) var(--koi-space-3-5);font-family:inherit;font-size:var(--koi-text-base);cursor:pointer;transition:background var(--koi-dur-mid) ease, color var(--koi-dur-mid) ease;background:0 0;border:none}.koi-seg:hover{color:var(--koi-fg)}.koi-seg[aria-checked=true]{background:var(--koi-paper-2);color:var(--koi-fg);font-weight:600;box-shadow:0 1px 2px #00000038}.koi-segmented.is-disabled{opacity:.45;cursor:not-allowed}.koi-segmented.is-disabled .koi-seg{cursor:not-allowed}.koi-set-scoped{align-items:center;gap:var(--koi-space-2-5);display:inline-flex}.koi-set-scoped .koi-segmented{font-size:var(--koi-text-sm)}.koi-output-block{gap:var(--koi-space-3-5);padding-top:var(--koi-space-2-5);flex-direction:column;display:flex}.koi-output-head{justify-content:space-between;align-items:flex-start;gap:var(--koi-space-3-5);display:flex}.koi-lang-picker{gap:var(--koi-space-2-5);grid-template-columns:repeat(2,1fr);display:grid}.koi-lang-opt{align-items:center;gap:var(--koi-space-2-5);border:1px solid var(--koi-line);border-radius:var(--koi-radius);background:var(--koi-surface);color:var(--koi-muted);padding:var(--koi-space-3) var(--koi-space-3-5);font-family:inherit;font-size:var(--koi-text-md);text-align:left;cursor:pointer;transition:border-color var(--koi-dur-mid) ease, background var(--koi-dur-mid) ease, color var(--koi-dur-mid) ease;display:flex}.koi-lang-opt:hover{border-color:color-mix(in srgb, var(--koi-accent) 45%, var(--koi-line));color:var(--koi-fg)}.koi-lang-opt[aria-checked=true]{border-color:var(--koi-accent);background:color-mix(in srgb, var(--koi-accent) 12%, var(--koi-surface));color:var(--koi-fg);font-weight:600}.koi-lang-name{flex:auto;min-width:0}.koi-lang-ext{font-family:var(--koi-font-mono);font-size:var(--koi-text-xs);color:var(--koi-muted);flex:none}.koi-lang-opt[aria-checked=true] .koi-lang-ext{color:var(--koi-accent)}.koi-lang-opt:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}.koi-editor-specimen{margin:0 0 var(--koi-space-2-5);gap:var(--koi-space-1-5);flex-direction:column;display:flex}.koi-editor-specimen-label{font-size:var(--koi-text-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--koi-muted)}.koi-editor-specimen-code{padding:var(--koi-space-2-5) var(--koi-space-3);background:var(--koi-paper);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);font-family:var(--koi-font-mono);color:var(--koi-fg);white-space:pre;margin:0;font-size:13.5px;line-height:1.6;overflow-x:auto}.koi-editor-specimen-code.is-wrapped{white-space:pre-wrap;word-break:break-word}.koi-editor-specimen-code .tk-c{color:var(--koi-hl-comment);font-style:italic}.koi-editor-specimen-code .tk-k{color:var(--koi-hl-keyword)}.koi-editor-specimen-code .tk-t{color:var(--koi-hl-type)}.lang-dot{background:var(--dot,var(--koi-accent));width:8px;height:8px;box-shadow:0 0 0 2px color-mix(in srgb, var(--dot,var(--koi-accent)) 22%, transparent);border-radius:50%;flex:none}.lang-dot[data-lang=csharp]{--dot:var(--lang-csharp)}.lang-dot[data-lang=typescript]{--dot:var(--lang-typescript)}.lang-dot[data-lang=python]{--dot:var(--lang-python)}.lang-dot[data-lang=php]{--dot:var(--lang-php)}.lang-dot[data-lang=rust]{--dot:var(--lang-rust)}.koi-accent-row{gap:var(--koi-space-2-5);display:inline-flex}.koi-accent-swatch{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.koi-accent-dot{background:var(--koi-swatch);width:20px;height:20px;transition:transform var(--koi-dur-base) ease;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff24}.koi-accent-swatch:hover .koi-accent-dot{transform:scale(1.08)}.koi-accent-swatch[aria-checked=true]{border-color:var(--koi-swatch)}.koi-set-danger{border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);background:var(--koi-surface);color:var(--koi-fg);padding:var(--koi-space-1-5) var(--koi-space-3);font-family:inherit;font-size:var(--koi-text-base);white-space:nowrap;cursor:pointer;transition:background var(--koi-dur-mid) ease, border-color var(--koi-dur-mid) ease, color var(--koi-dur-mid) ease}.koi-set-danger:hover{border-color:var(--koi-error);color:var(--koi-error)}.koi-set-danger.is-armed{border-color:var(--koi-error);background:var(--koi-error);color:var(--koi-on-error)}.koi-set-row:has(.koi-mcp-control) .koi-set-control{flex:0 0 248px}.koi-mcp-control{gap:var(--koi-space-1-5);align-items:center;width:100%;display:flex}.koi-mcp-control .koi-text{flex:auto;min-width:0}.koi-set-action{border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);background:var(--koi-surface);color:var(--koi-fg);padding:var(--koi-space-1-5) var(--koi-space-3);font-family:inherit;font-size:var(--koi-text-base);white-space:nowrap;cursor:pointer;transition:background var(--koi-dur-mid) ease, border-color var(--koi-dur-mid) ease, color var(--koi-dur-mid) ease;flex:none}.koi-set-action:hover{border-color:var(--koi-accent);color:var(--koi-accent)}.koi-set-action:disabled{opacity:.5;cursor:not-allowed}.koi-mcp-recipe{gap:var(--koi-space-1-5);padding:var(--koi-space-2-5) 0;border-top:1px solid var(--koi-line);flex-direction:column;display:flex}.koi-mcp-recipe-head{justify-content:space-between;align-items:center;gap:var(--koi-space-2);display:flex}.koi-mcp-snippet{padding:var(--koi-space-2-5) var(--koi-space-3);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);max-height:220px;margin:0;overflow-x:auto}.koi-mcp-snippet .cm-editor{background:0 0}.koi-mcp-snippet .cm-content{font-family:var(--koi-mono,ui-monospace, SFMono-Regular, Menlo, monospace);font-size:.78rem}.koi-mcp-hint,.koi-mcp-note{color:var(--koi-muted);margin:0;font-size:.78rem}.koi-mcp-note{font-style:italic}.koi-mcp-snippet:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}.koi-mcp-status{padding:var(--koi-space-0-5) var(--koi-space-2-5);border-radius:var(--koi-radius-pill);border:1px solid var(--koi-line);color:var(--koi-muted);white-space:nowrap;align-items:center;font-size:.78rem;display:inline-flex}.koi-mcp-status[data-state=checking]{border-color:color-mix(in srgb, var(--koi-accent) 50%, var(--koi-line));color:var(--koi-accent)}.koi-mcp-status[data-state=ok]{border-color:color-mix(in srgb, var(--koi-cyan) 55%, var(--koi-line));color:var(--koi-cyan)}.koi-mcp-status[data-state=fail]{border-color:color-mix(in srgb, var(--koi-error) 55%, var(--koi-line));color:var(--koi-error)}.koi-set-row:has(.koi-kbd-control) .koi-set-control{flex:none}.koi-kbd-control{justify-content:flex-end;align-items:center;gap:var(--koi-space-1-5);flex-wrap:wrap;display:flex}.koi-kbd-chord{min-width:64px;padding:var(--koi-space-0-5) var(--koi-space-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);background:var(--koi-paper-2);font-family:var(--koi-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--koi-fg);white-space:nowrap;justify-content:center;align-items:center;font-size:.78rem;display:inline-flex}.koi-kbd-record.is-recording{border-color:var(--koi-accent);color:var(--koi-accent)}.koi-kbd-reset,.koi-kbd-cancel{padding:var(--koi-space-0-5) var(--koi-space-1);color:var(--koi-muted);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.78rem;text-decoration:underline}.koi-kbd-reset:hover:not(:disabled),.koi-kbd-cancel:hover{color:var(--koi-accent)}.koi-kbd-reset:disabled{opacity:.4;cursor:not-allowed;text-decoration:none}.koi-kbd-conflict{text-align:right;color:var(--koi-error);flex:100%;font-size:.78rem}.koi-settings-tab:focus-visible,.koi-switch:focus-visible,.koi-seg:focus-visible,.koi-accent-swatch:focus-visible,.koi-set-danger:focus-visible,.koi-set-action:focus-visible,.koi-kbd-reset:focus-visible,.koi-kbd-cancel:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}@media (width<=640px){.koi-settings-layout{flex-direction:column;min-height:0}.koi-settings-nav{gap:var(--koi-space-1);padding:var(--koi-space-2-5) var(--koi-space-3);border-right:none;border-bottom:1px solid var(--koi-line);flex-direction:row;flex:none;overflow-x:auto}.koi-settings-tab{white-space:nowrap;width:auto}.koi-settings-tab.is-active:before{display:none}}.koi-help-table{border-collapse:collapse;width:100%;font-size:var(--koi-text-md)}.koi-help-table tr{border-bottom:1px solid var(--koi-line)}.koi-help-table tr:last-child{border-bottom:none}.koi-help-table td{padding:var(--koi-space-2-25) var(--koi-space-1-5);vertical-align:middle;color:var(--koi-fg)}.koi-help-table td:first-child{white-space:nowrap;width:1%}.koi-kbd{font-family:var(--koi-font-mono);font-size:var(--koi-text-xs-plus);color:var(--koi-ink-soft);background:var(--koi-surface);border:1px solid var(--koi-line);padding:var(--koi-space-0-5) var(--koi-space-1-75);margin-right:var(--koi-space-1);text-align:center;border-bottom-width:2px;border-radius:5px;min-width:18px;display:inline-block}.koi-about{max-width:30rem;padding-block:var(--koi-space-4);margin-inline:auto}.koi-about-logo{margin-bottom:var(--koi-space-3-5);justify-content:center;display:flex}.koi-about-wordmark{text-align:center;font-family:var(--koi-font-display);letter-spacing:-.02em;color:var(--koi-fg);margin:0;font-size:1.5rem;font-weight:800}.koi-about-wordmark span{color:var(--koi-ink-soft);font-weight:600}.koi-about-chip{width:fit-content;margin:var(--koi-space-2-25) auto 0;padding:var(--koi-space-0-5) var(--koi-space-2-25);font-family:var(--koi-font-mono);font-size:var(--koi-text-xs-plus);letter-spacing:.02em;color:var(--koi-accent);background:color-mix(in srgb, var(--koi-accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--koi-accent) 35%, transparent);border-radius:var(--koi-radius-pill);display:block}.koi-about-chip[hidden]{display:none}.koi-about-tagline{font-size:var(--koi-text-md);color:var(--koi-muted);text-align:center;margin:var(--koi-space-3) 0 0}.koi-about-links{gap:var(--koi-space-2-5);grid-template-columns:1fr 1fr;margin:22px 0 0;display:grid}.koi-about-link{align-items:center;gap:var(--koi-space-2-75);padding:var(--koi-space-2-75) var(--koi-space-3);background:var(--koi-surface);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);transition:transform var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease;text-decoration:none;display:flex;position:relative;overflow:hidden}.koi-about-link:before{content:"";background:var(--koi-accent-grad);opacity:0;width:2px;transition:opacity var(--koi-dur-fast) ease;position:absolute;inset:0 auto 0 0}.koi-about-link:hover{border-color:color-mix(in srgb, var(--koi-accent) 55%, var(--koi-line));transform:translateY(-1px)}.koi-about-link:hover:before,.koi-about-link:focus-visible:before{opacity:1}.koi-about-link:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}.koi-about-link-icon{color:var(--koi-ink-soft);transition:color var(--koi-dur-fast) ease;flex:none;display:flex}.koi-about-link:hover .koi-about-link-icon{color:var(--koi-accent)}.koi-about-link-icon svg{width:17px;height:17px}.koi-about-link-text{gap:var(--koi-space-px);flex-direction:column;min-width:0;display:flex}.koi-about-link-label{color:var(--koi-fg);font-size:.88rem;font-weight:600}.koi-about-link-hint{font-size:var(--koi-text-xs-plus);color:var(--koi-muted)}.koi-about-credit{margin:18px 0 var(--koi-space-0-5);padding-top:var(--koi-space-3-5);border-top:1px solid var(--koi-line);text-align:center;font-size:var(--koi-text-sm-plus);color:var(--koi-muted);line-height:1.5}.koi-about-author{color:var(--koi-fg);border-bottom:1px solid color-mix(in srgb, var(--koi-accent) 50%, transparent);font-weight:600;text-decoration:none}.koi-about-author:hover{color:var(--koi-accent);border-bottom-color:var(--koi-accent)}.koi-about-author:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px;border-radius:var(--koi-radius-2xs)}.koi-md tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--koi-surface) 38%, transparent)}.koi-md tbody td:first-child{color:var(--koi-fg);font-weight:600}.koi-md h2+p{color:var(--koi-ink-soft)}.koi-gloss{padding:.5rem .75rem 1.25rem}.koi-gloss-coverage{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.35rem;display:flex}.koi-gloss-bar{border-radius:var(--koi-radius-pill);background:color-mix(in srgb, var(--koi-fg) 12%, transparent);height:6px;margin-bottom:1rem;overflow:hidden}.koi-gloss-bar-fill{background:var(--koi-accent-grad);height:100%;transition:width .25s}.koi-gloss-ctx{margin-bottom:1.1rem}.koi-gloss-ctx>h3{font-size:var(--koi-text-base);text-transform:uppercase;letter-spacing:.06em;color:var(--koi-muted);margin:0 0 .4rem}.koi-gloss-entry{border-radius:var(--koi-radius);border:1px solid color-mix(in srgb, var(--koi-fg) 10%, transparent);background:color-mix(in srgb, var(--koi-surface) 60%, transparent);margin-bottom:.45rem;padding:.5rem .6rem}.koi-gloss-entry-head{align-items:center;gap:.5rem;display:flex}.koi-gloss-name{font:inherit;color:var(--koi-accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.koi-gloss-name:hover{text-decoration:underline}.koi-gloss-kind{font-size:var(--koi-text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--koi-ink-soft);border-radius:var(--koi-radius-pill);background:color-mix(in srgb, var(--koi-fg) 9%, transparent);padding:.05rem .4rem}.koi-gloss-body{justify-content:space-between;align-items:flex-start;gap:.6rem;margin-top:.35rem;display:flex}.koi-gloss-doc{color:var(--koi-fg);font-size:var(--koi-text-md);margin:0;line-height:1.4}.koi-gloss-needsdoc{color:var(--koi-muted);font-style:italic;font-size:var(--koi-text-base-plus);margin:0}.koi-gloss-edit{border:1px solid color-mix(in srgb, var(--koi-accent) 35%, transparent);color:var(--koi-accent);border-radius:var(--koi-radius-sm);font-size:var(--koi-text-sm);cursor:pointer;background:0 0;flex:none;padding:.15rem .55rem}.koi-gloss-edit:hover{background:color-mix(in srgb, var(--koi-accent) 14%, transparent)}.koi-gloss-input{resize:vertical;width:100%;font:inherit;font-size:var(--koi-text-md);color:var(--koi-fg);background:var(--koi-surface);border:1px solid color-mix(in srgb, var(--koi-accent) 40%, transparent);border-radius:var(--koi-radius-sm);flex:1;padding:.4rem .5rem}.koi-gloss-actions{flex-direction:column;gap:.3rem;display:flex}.koi-gloss-save,.koi-gloss-cancel{font:inherit;font-size:var(--koi-text-sm);border-radius:var(--koi-radius-sm);cursor:pointer;border:1px solid #0000;padding:.2rem .6rem}.koi-gloss-save{background:var(--koi-accent);color:#fff}.koi-gloss-cancel{border-color:color-mix(in srgb, var(--koi-fg) 20%, transparent);color:var(--koi-muted);background:0 0}.koi-docs{padding:.5rem .75rem 1.25rem}.koi-docs-readonly{border-radius:var(--koi-radius);border:1px dashed color-mix(in srgb, var(--koi-fg) 22%, transparent);color:var(--koi-muted);font-size:var(--koi-text-base-plus);margin:0 0 .9rem;padding:.5rem .6rem}.koi-docs-group{margin-bottom:1.25rem}.koi-docs-group-head{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.5rem;display:flex}.koi-docs-group-head>h3{font-size:var(--koi-text-base);text-transform:uppercase;letter-spacing:.06em;color:var(--koi-muted);margin:0}.koi-docs-empty{color:var(--koi-muted);font-style:italic;font-size:var(--koi-text-base-plus);margin:.2rem 0 0}.koi-check-idle{max-width:42rem;padding:.5rem 0}.koi-check-idle-title{font-size:var(--koi-text-lg,1.05rem);color:var(--koi-fg);margin:0 0 .35rem;font-weight:600}.koi-check-idle-action{margin-top:.85rem}.koi-rview-empty{padding:.75rem .1rem}.koi-rview-empty-title{font-size:var(--koi-text-lg,1.05rem);color:var(--koi-fg);margin:0 0 .35rem;font-weight:600}.koi-rview-empty .muted{line-height:1.5}.koi-docs-item{border-radius:var(--koi-radius);border:1px solid color-mix(in srgb, var(--koi-fg) 10%, transparent);background:color-mix(in srgb, var(--koi-surface) 60%, transparent);margin-bottom:.45rem;padding:.5rem .6rem}.koi-docs-item-head{align-items:center;gap:.5rem;display:flex}.koi-docs-name{text-align:left;font:inherit;color:var(--koi-accent);cursor:pointer;background:0 0;border:none;flex:1;padding:0;font-weight:600}.koi-docs-name:hover{text-decoration:underline}.koi-docs-badge{font-size:var(--koi-text-2xs);text-transform:uppercase;letter-spacing:.05em;border-radius:var(--koi-radius-pill);color:var(--koi-fg);background:color-mix(in srgb, var(--koi-fg) 9%, transparent);flex:none;padding:.05rem .45rem}.koi-docs-badge.is-proposed{color:var(--koi-accent);background:color-mix(in srgb, var(--koi-accent) 16%, transparent)}.koi-docs-badge.is-accepted{color:var(--koi-ok,#16a34a);background:color-mix(in srgb, var(--koi-ok,#16a34a) 18%, transparent)}.koi-docs-badge.is-superseded,.koi-docs-badge.is-deprecated{color:var(--koi-muted);background:color-mix(in srgb, var(--koi-fg) 12%, transparent);text-decoration:line-through}.koi-docs-badge.is-rejected{color:var(--koi-err,#dc2626);background:color-mix(in srgb, var(--koi-err,#dc2626) 16%, transparent)}.koi-docs-detail{border-top:1px solid color-mix(in srgb, var(--koi-fg) 10%, transparent);margin-top:.55rem;padding-top:.5rem}.koi-docs-section{margin-bottom:.6rem}.koi-docs-section>h4{font-size:var(--koi-text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--koi-muted);margin:0 0 .15rem}.koi-docs-prose{font-size:var(--koi-text-md);line-height:1.45}.koi-docs-prose>:first-child{margin-top:0}.koi-docs-prose>:last-child{margin-bottom:0}.koi-docs-input{resize:vertical;width:100%;font-family:var(--koi-font-mono,monospace);font-size:var(--koi-text-md);color:var(--koi-fg);background:var(--koi-surface);border:1px solid color-mix(in srgb, var(--koi-accent) 40%, transparent);border-radius:var(--koi-radius-sm);padding:.45rem .55rem}.koi-docs-new{align-items:flex-start;gap:.5rem;margin-bottom:.6rem;display:flex}.koi-docs-new-input{font:inherit;font-size:var(--koi-text-md);color:var(--koi-fg);background:var(--koi-surface);border:1px solid color-mix(in srgb, var(--koi-accent) 40%, transparent);border-radius:var(--koi-radius-sm);flex:1;padding:.3rem .5rem}.koi-docs-actions{gap:.35rem;margin-top:.45rem;display:flex}.koi-docs-edit,.koi-docs-new-btn{border:1px solid color-mix(in srgb, var(--koi-accent) 35%, transparent);color:var(--koi-accent);border-radius:var(--koi-radius-sm);font:inherit;font-size:var(--koi-text-sm);cursor:pointer;background:0 0;flex:none;padding:.15rem .55rem}.koi-docs-edit:hover,.koi-docs-new-btn:hover{background:color-mix(in srgb, var(--koi-accent) 14%, transparent)}.koi-docs-edit:disabled,.koi-docs-new-btn:disabled{opacity:.5;cursor:default}.koi-docs-save,.koi-docs-cancel{font:inherit;font-size:var(--koi-text-sm);border-radius:var(--koi-radius-sm);cursor:pointer;border:1px solid #0000;padding:.2rem .6rem}.koi-docs-save{background:var(--koi-accent);color:#fff}.koi-docs-cancel{border-color:color-mix(in srgb, var(--koi-fg) 20%, transparent);color:var(--koi-muted);background:0 0}.koi-sc{font-size:var(--koi-text-base-plus);padding:.6rem .7rem 1.25rem}.koi-sc-empty{padding:0}.koi-sc-actions{justify-content:flex-end;align-items:center;gap:.15rem;margin-bottom:.35rem;display:flex}.koi-sc-hdr-ico{border-radius:var(--koi-radius-sm);width:26px;height:26px;color:var(--koi-muted);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:inline-flex}.koi-sc-hdr-ico:hover{background:var(--koi-surface);color:var(--koi-fg)}.koi-sc-hdr-ico:disabled{opacity:.5;cursor:default}.koi-sc-ico{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:15px;height:15px}.koi-sc-hdr-ico .koi-sc-ico{transition:transform var(--koi-dur-mid) ease}.koi-sc-hdr-ico.is-spinning .koi-sc-ico{transform:rotate(360deg)}.koi-sc-menu{padding:var(--koi-space-1);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);box-shadow:var(--koi-shadow);z-index:var(--koi-z-popover);min-width:168px;margin:0;list-style:none;position:fixed}.koi-sc-menu-item{text-align:left;border-radius:var(--koi-radius-sm);width:100%;color:var(--koi-fg);cursor:pointer;padding:var(--koi-space-1-5) var(--koi-space-2-5);font-family:var(--koi-font-body);font-size:var(--koi-text-base);background:0 0;border:1px solid #0000;display:block}.koi-sc-menu-item:hover,.koi-sc-menu-item:focus-visible{background:color-mix(in srgb, var(--koi-accent) 16%, transparent);border-color:color-mix(in srgb, var(--koi-accent) 40%, var(--koi-line));outline:none}.koi-sc-menu-item:disabled{opacity:.5;cursor:default}.koi-sc-menu-item:disabled:hover,.koi-sc-menu-item:disabled:focus-visible{background:0 0;border-color:#0000}.koi-sc-branchbar{align-items:center;gap:.5rem;margin-bottom:.9rem;display:flex}.koi-sc-branch{border-radius:var(--koi-radius-sm);border:1px solid var(--koi-line);background:var(--koi-surface);min-width:0;max-width:100%;height:30px;color:var(--koi-fg);font:inherit;font-size:var(--koi-text-md);cursor:pointer;text-align:left;flex:1;align-items:center;gap:.5rem;padding:0 .6rem;font-weight:600;display:inline-flex}.koi-sc-branch:hover{border-color:color-mix(in srgb, var(--koi-accent) 45%, var(--koi-line))}.koi-sc-branch-name{cursor:default;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.koi-sc-sync{border-radius:var(--koi-radius-sm);border:1px solid var(--koi-line);height:30px;color:var(--koi-ink-soft);font-family:var(--koi-font-mono);font-size:var(--koi-text-xs);background:0 0;flex:none;align-items:center;gap:.25rem;padding:0 .6rem;display:inline-flex}.koi-sc-sync .ahead{color:var(--koi-accent)}.koi-sc-sync i{margin-right:.15rem;font-style:normal}.koi-sc-sync .sep{opacity:.4}.koi-sc-error{border-radius:var(--koi-radius-sm);color:var(--koi-error);background:color-mix(in srgb, var(--koi-error) 12%, transparent);font-size:var(--koi-text-sm);margin:0 0 .6rem;padding:.35rem .5rem}.koi-sc-composer{border:1px solid var(--koi-line);border-radius:var(--koi-radius-lg);background:var(--koi-surface);transition:border-color var(--koi-dur-fast) ease, box-shadow var(--koi-dur-fast) ease;flex-direction:column;margin-bottom:1.25rem;display:flex;overflow:hidden}.koi-sc-composer:focus-within{border-color:var(--koi-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--koi-accent) 15%, transparent)}.koi-sc-composer-input{font:inherit;font-size:var(--koi-text-md);color:var(--koi-fg);resize:none;background:0 0;border:0;min-height:58px;padding:.6rem .7rem .5rem;line-height:1.5}.koi-sc-composer-input:focus{outline:none}.koi-sc-composer-input::placeholder{color:var(--koi-muted)}.koi-sc-composer-foot{border-top:1px solid color-mix(in srgb, var(--koi-line) 70%, transparent);background:color-mix(in srgb, var(--koi-paper) 45%, transparent);align-items:center;gap:.5rem;padding:.5rem;display:flex}.koi-sc-commit-split{border-radius:var(--koi-radius-sm);width:100%;box-shadow:0 1px 8px color-mix(in srgb, var(--koi-accent) 22%, transparent);flex:1;align-items:stretch;display:flex;overflow:hidden}.koi-sc-commit-split.is-disabled{box-shadow:none;opacity:.5}.koi-sc-commit-btn{background:var(--koi-accent);height:30px;color:var(--koi-on-accent);font:inherit;font-size:var(--koi-text-sm);cursor:pointer;white-space:nowrap;border:0;flex:1;justify-content:center;align-items:center;padding:0 .75rem;font-weight:600;display:inline-flex;position:relative}.koi-sc-commit-btn:hover:not(:disabled){background:color-mix(in srgb, var(--koi-accent) 88%, var(--koi-on-accent))}.koi-sc-commit-btn:disabled{cursor:default}.koi-sc-kbd{align-items:center;gap:.15rem;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.koi-sc-kbd kbd{border-radius:var(--koi-radius-xs);min-width:16px;height:16px;font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);color:var(--koi-on-accent);background:color-mix(in srgb, var(--koi-on-accent) 15%, transparent);border:1px solid color-mix(in srgb, var(--koi-on-accent) 26%, transparent);justify-content:center;align-items:center;padding:0 3px;line-height:1;display:inline-flex}.koi-sc-kbd .ret .koi-sc-ico{width:11px;height:11px}.koi-sc-commit-caret{border:0;border-left:1px solid color-mix(in srgb, var(--koi-on-accent) 25%, transparent);background:var(--koi-accent);width:26px;color:var(--koi-on-accent);cursor:pointer;flex:none;justify-content:center;align-items:center;display:inline-flex}.koi-sc-commit-caret:disabled{cursor:default}.koi-sc-group{margin-bottom:1rem}.koi-sc-group-head{align-items:center;gap:.25rem;margin:0 -.5rem .4rem;padding:2px .5rem;display:flex}.koi-sc-group-toggle{cursor:pointer;min-width:0;font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);text-transform:uppercase;letter-spacing:.1em;color:var(--koi-muted);background:0 0;border:0;flex:1;align-items:center;gap:.45rem;padding:3px 0;display:inline-flex}.koi-sc-group-toggle:hover{color:var(--koi-fg)}.koi-sc-group-toggle .chev{width:11px;height:11px;transition:transform var(--koi-dur-fast) ease;flex:none}.koi-sc-group-toggle .cnt{border-radius:var(--koi-radius-pill);background:var(--koi-surface);min-width:16px;height:15px;color:var(--koi-ink-soft);font-size:var(--koi-text-2xs);justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.koi-sc-group.collapsed .chev{transform:rotate(-90deg)}.koi-sc-group.collapsed .koi-sc-files,.koi-sc-group.collapsed .koi-sc-log{display:none}.koi-sc-group.staged .koi-sc-group-toggle .cnt{background:color-mix(in srgb, var(--koi-accent) 20%, transparent);color:var(--koi-accent)}.koi-sc-group-actions{opacity:0;transition:opacity var(--koi-dur-fast) ease;align-items:center;gap:2px;display:flex}.koi-sc-group-head:hover .koi-sc-group-actions,.koi-sc-group-actions:focus-within{opacity:1}.koi-sc-gact{border-radius:var(--koi-radius-xs);width:22px;height:22px;color:var(--koi-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.koi-sc-gact:hover{background:var(--koi-surface);color:var(--koi-fg)}.koi-sc-gact.danger:hover{color:var(--koi-error)}.koi-sc-gact:disabled{opacity:.5;cursor:default}.koi-sc-files{margin:0;padding:0;list-style:none}.koi-sc-file{border-radius:var(--koi-radius-sm)}.koi-sc-file-row{border-radius:var(--koi-radius-sm);align-items:center;gap:.5rem;margin:0 -.5rem;padding:5px .5rem;display:flex;position:relative}.koi-sc-file-row:hover{background:color-mix(in srgb, var(--koi-fg) 6%, transparent)}.koi-sc-glyph{text-align:center;width:14px;font-family:var(--koi-font-mono);font-weight:700;font-size:var(--koi-text-sm);color:var(--koi-muted);flex:none}.koi-sc-glyph-modified,.koi-sc-glyph-renamed,.koi-sc-glyph-copied{color:var(--koi-accent)}.koi-sc-glyph-added,.koi-sc-glyph-untracked{color:var(--koi-hl-string)}.koi-sc-glyph-deleted,.koi-sc-glyph-conflicted{color:var(--koi-error)}.koi-sc-file-open{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:baseline;gap:.4rem;min-width:0;padding:0;display:flex;overflow:hidden}.koi-sc-file-open:hover .koi-sc-name{color:var(--koi-accent)}.koi-sc-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--koi-fg);font-size:var(--koi-text-md);flex:none;overflow:hidden}.koi-sc-dir{text-overflow:ellipsis;white-space:nowrap;color:var(--koi-muted);font-size:var(--koi-text-sm);overflow:hidden}.koi-sc-stat{font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);transition:opacity var(--koi-dur-fast) ease;flex:none;gap:.3rem;display:inline-flex}.koi-sc-stat .add{color:var(--koi-hl-string)}.koi-sc-stat .del{color:var(--koi-error)}.koi-sc-stat .none{color:var(--koi-muted)}.koi-sc-row-actions{opacity:0;pointer-events:none;transition:opacity var(--koi-dur-fast) ease;align-items:center;gap:1px;display:inline-flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.koi-sc-file-row:hover .koi-sc-row-actions,.koi-sc-file-row:focus-within .koi-sc-row-actions{opacity:1;pointer-events:auto}.koi-sc-file-row:hover .koi-sc-stat,.koi-sc-file-row:focus-within .koi-sc-stat{opacity:0}.koi-sc-ract{border-radius:var(--koi-radius-xs);width:22px;height:22px;color:var(--koi-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.koi-sc-ract:hover{background:var(--koi-surface);color:var(--koi-fg)}.koi-sc-ract.danger:hover{color:var(--koi-error)}.koi-sc-ract.stage:hover{color:var(--koi-accent)}.koi-sc-ract:disabled{opacity:.5;cursor:default}.koi-sc-act{border:1px solid color-mix(in srgb, var(--koi-accent) 35%, transparent);color:var(--koi-accent);border-radius:var(--koi-radius-sm);font:inherit;font-size:var(--koi-text-sm);cursor:pointer;background:0 0;flex:none;padding:.1rem .45rem}.koi-sc-act:hover{background:color-mix(in srgb, var(--koi-accent) 14%, transparent)}.koi-sc-act:disabled{opacity:.5;cursor:default}.koi-sc-diff{border-radius:var(--koi-radius-sm);background:color-mix(in srgb, var(--koi-fg) 5%, transparent);max-height:16rem;font-family:var(--koi-font-mono,monospace);font-size:var(--koi-text-sm);white-space:pre;margin:.2rem 0 .5rem;padding:.45rem .6rem;overflow:auto}.koi-sc-viewall{color:var(--koi-accent);font:inherit;font-size:var(--koi-text-sm);cursor:pointer;border-radius:var(--koi-radius-xs);background:0 0;border:0;flex:none;padding:3px 4px}.koi-sc-viewall:hover:not(:disabled){background:color-mix(in srgb, var(--koi-accent) 12%, transparent)}.koi-sc-viewall:disabled{opacity:.5;cursor:default}.koi-sc-log{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.koi-sc-log-item{border-radius:var(--koi-radius-sm);align-items:flex-start;gap:.6rem;margin:0 -.5rem;padding:.5rem;display:flex}.koi-sc-log-item:hover{background:color-mix(in srgb, var(--koi-fg) 5%, transparent)}.koi-sc-log-item[data-focused=true]{background:color-mix(in srgb, var(--koi-accent) 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--koi-accent) 45%, transparent)}.koi-sc-avatar{border-radius:var(--koi-radius-pill);width:24px;height:24px;font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);letter-spacing:.02em;color:var(--koi-accent);background:color-mix(in srgb, var(--koi-accent) 18%, transparent);flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.koi-sc-log-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.koi-sc-log-msg{color:var(--koi-fg);font-size:var(--koi-text-md);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.koi-sc-log-meta{color:var(--koi-muted);font-size:var(--koi-text-sm);align-items:center;gap:.4rem;display:inline-flex}.koi-sc-log-meta code{font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);color:color-mix(in srgb, var(--koi-accent) 80%, var(--koi-muted))}.koi-sc-log-meta .sep{opacity:.5}.koi-stree{font-size:var(--koi-text-base-plus);flex-direction:column;height:100%;min-height:0;padding:.5rem .55rem 1.25rem;display:flex}.koi-stree-empty{padding:.5rem .7rem}.koi-stree-scroll{flex:1 1 0;min-height:0;overflow:auto}.koi-stree-scroll:focus-visible{outline:none}.koi-stree-item{border-radius:var(--koi-radius-sm)}.koi-stree-item:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-1px}.koi-stree-row{border-radius:var(--koi-radius-sm);cursor:default;white-space:nowrap;align-items:baseline;gap:.4rem;padding:.12rem .3rem;display:flex}.koi-stree-item:hover>.koi-stree-row{background:color-mix(in srgb, var(--koi-fg) 6%, transparent)}.koi-stree-twisty{text-align:center;width:.85em;color:var(--koi-muted);font-size:var(--koi-text-sm);cursor:pointer;flex:none}.koi-stree-twisty--leaf{cursor:default}.koi-stree-kind{color:var(--koi-hl-type,var(--koi-fg));font-weight:600}.koi-stree-name{color:var(--koi-fg)}.koi-stree-badge{border-radius:var(--koi-radius-sm);font-size:var(--koi-text-sm);text-transform:uppercase;letter-spacing:.04em;flex:none;padding:0 .3rem}.koi-stree-badge--error{color:var(--koi-error,#b00020);background:color-mix(in srgb, var(--koi-error,#b00020) 14%, transparent)}.koi-stree-badge--missing{color:var(--koi-muted);background:color-mix(in srgb, var(--koi-fg) 10%, transparent)}.koi-stree-leaf{color:var(--koi-hl-string,var(--koi-muted));font-family:var(--koi-font-mono,monospace);font-size:var(--koi-text-sm);text-overflow:ellipsis;overflow:hidden}.koi-stree-item--error>.koi-stree-row{background:color-mix(in srgb, var(--koi-error,#b00020) 8%, transparent)}.koi-stree-item--error>.koi-stree-row .koi-stree-kind{color:var(--koi-error,#b00020)}.koi-stree-item--missing>.koi-stree-row .koi-stree-kind{color:var(--koi-muted);font-style:italic}.koi-stree-item.koi-stree-item--current>.koi-stree-row{background:color-mix(in srgb, var(--koi-accent) 20%, transparent)}.koi-stree-band{z-index:1;background:var(--koi-surface);box-shadow:0 1px 0 color-mix(in srgb, var(--koi-fg) 12%, transparent);position:sticky;top:0}.koi-modal,.koi-palette{animation:koi-rise var(--koi-dur-slow) ease both}@keyframes koi-rise{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes koi-fade{0%{opacity:0}to{opacity:1}}@keyframes koi-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 60%, transparent)}50%{box-shadow:0 0 0 4px #0000}}.brand{animation:.4s both koi-rise}.iconset{animation:.4s 50ms both koi-rise}.toolbar-right{animation:.4s .1s both koi-rise}.center-host,.tech-view,.rview{animation:koi-fade .5s ease var(--koi-dur-fast) both}#right{animation:koi-fade .5s ease var(--koi-dur-slow) both}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;transition-delay:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:.001ms!important}}html[data-reduce-motion=true] *,html[data-reduce-motion=true] :before,html[data-reduce-motion=true] :after{transition-duration:.001ms!important;transition-delay:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:.001ms!important}.koi-action-menu{background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius);min-width:220px;max-width:360px;max-height:320px;padding:var(--koi-space-1);outline:none;overflow-y:auto;box-shadow:0 14px 40px #0006}.koi-action-row{justify-content:space-between;align-items:baseline;gap:var(--koi-space-3);text-align:left;border-radius:var(--koi-radius-sm);width:100%;padding:var(--koi-space-1-75) var(--koi-space-2-5);color:var(--koi-fg);font-family:var(--koi-font-body);font-size:var(--koi-text-base);cursor:pointer;background:0 0;border:none;display:flex}.koi-action-row[aria-selected=true]{background:var(--koi-accent);color:var(--koi-on-accent)}.koi-action-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.koi-action-detail{font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);opacity:.7;flex:none}.koi-action-empty{padding:var(--koi-space-2) var(--koi-space-2-5);color:var(--koi-muted);font-family:var(--koi-font-body);font-size:var(--koi-text-sm-plus)}.koi-rename{align-items:center;gap:var(--koi-space-2);background:var(--koi-paper-2);border:1px solid var(--koi-accent);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1-25) var(--koi-space-1-75);display:flex;box-shadow:0 10px 30px #0006}.koi-rename-input{background:var(--koi-surface);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1) var(--koi-space-2);font-family:var(--koi-font-mono);font-size:var(--koi-text-base);min-width:160px}.koi-rename-input:focus-visible{border-color:var(--koi-accent);outline:none}.koi-rename-hint{color:var(--koi-muted);font-family:var(--koi-font-body);font-size:var(--koi-text-2xs);white-space:nowrap}.koi-diagrams,.koi-diagrams-single{height:100%;min-height:0;position:relative}.koi-canvas{background-color:var(--koi-paper);background-image:radial-gradient(circle, color-mix(in srgb, var(--koi-line) 65%, transparent) 1px, transparent 1.5px);width:100%;height:100%;font-family:var(--koi-font-body);background-size:24px 24px;position:relative;overflow:hidden}.koi-canvas svg{width:100%;height:100%}.koi-node{box-sizing:border-box;border:1.5px solid var(--koi-line);background:var(--koi-surface);width:100%;height:100%;color:var(--koi-fg);font-size:var(--koi-text-sm);pointer-events:none;border-radius:8px;overflow:hidden}.koi-node--simple{padding:0 var(--koi-space-2);text-align:center;white-space:nowrap;text-overflow:ellipsis;justify-content:center;align-items:center;font-weight:600;display:flex}.koi-node--class{background:var(--koi-paper-2);flex-direction:column;display:flex}.koi-node__head{padding:5px var(--koi-space-2)}.koi-node__stereo{color:#090e169e;letter-spacing:.02em;font-size:9.5px;font-style:italic;line-height:1.2}.koi-node__title{color:#0b0f17;letter-spacing:-.01em;font-size:13px;font-weight:800;line-height:1.3}.koi-node__compartment{border-top:1px solid var(--koi-line);padding:3px var(--koi-space-2)}.koi-node__row{font-family:var(--koi-font-mono);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:18px;overflow:hidden}.koi-node__row--computed{font-style:italic}.koi-node--class[data-kind=aggregate-root]{border-color:var(--koi-ddd-aggregate)}.koi-node--class[data-kind=aggregate-root] .koi-node__head{background:var(--koi-ddd-aggregate)}.koi-node--class[data-kind=aggregate-root] .koi-node__compartment{border-top-color:color-mix(in srgb, var(--koi-ddd-aggregate) 38%, var(--koi-line))}.koi-node--simple[data-kind=aggregate-root]{background:color-mix(in srgb, var(--koi-ddd-aggregate) 26%, var(--koi-surface));border-color:var(--koi-ddd-aggregate)}.koi-node--class[data-kind=aggregate]{border-color:var(--koi-ddd-aggregate)}.koi-node--class[data-kind=aggregate] .koi-node__head{background:var(--koi-ddd-aggregate)}.koi-node--class[data-kind=aggregate] .koi-node__compartment{border-top-color:color-mix(in srgb, var(--koi-ddd-aggregate) 38%, var(--koi-line))}.koi-node--simple[data-kind=aggregate]{background:color-mix(in srgb, var(--koi-ddd-aggregate) 26%, var(--koi-surface));border-color:var(--koi-ddd-aggregate)}.koi-node--class[data-kind=entity]{border-color:var(--koi-ddd-entity)}.koi-node--class[data-kind=entity] .koi-node__head{background:var(--koi-ddd-entity)}.koi-node--class[data-kind=entity] .koi-node__compartment{border-top-color:color-mix(in srgb, var(--koi-ddd-entity) 38%, var(--koi-line))}.koi-node--simple[data-kind=entity]{background:color-mix(in srgb, var(--koi-ddd-entity) 26%, var(--koi-surface));border-color:var(--koi-ddd-entity)}.koi-node--class[data-kind=value]{border-color:var(--koi-ddd-value)}.koi-node--class[data-kind=value] .koi-node__head{background:var(--koi-ddd-value)}.koi-node--class[data-kind=value] .koi-node__compartment{border-top-color:color-mix(in srgb, var(--koi-ddd-value) 38%, var(--koi-line))}.koi-node--simple[data-kind=value]{background:color-mix(in srgb, var(--koi-ddd-value) 26%, var(--koi-surface));border-color:var(--koi-ddd-value)}.koi-node--class[data-kind=value-object]{border-color:var(--koi-ddd-value)}.koi-node--class[data-kind=value-object] .koi-node__head{background:var(--koi-ddd-value)}.koi-node--class[data-kind=value-object] .koi-node__compartment{border-top-color:color-mix(in srgb, var(--koi-ddd-value) 38%, var(--koi-line))}.koi-node--simple[data-kind=value-object]{background:color-mix(in srgb, var(--koi-ddd-value) 26%, var(--koi-surface));border-color:var(--koi-ddd-value)}.koi-node--class[data-kind=enum]{border-color:var(--koi-ddd-enum)}.koi-node--class[data-kind=enum] .koi-node__head{background:var(--koi-ddd-enum)}.koi-node--class[data-kind=enum] .koi-node__compartment{border-top-color:color-mix(in srgb, var(--koi-ddd-enum) 38%, var(--koi-line))}.koi-node--simple[data-kind=enum]{background:color-mix(in srgb, var(--koi-ddd-enum) 26%, var(--koi-surface));border-color:var(--koi-ddd-enum)}.koi-node--class[data-kind=event]{border-color:var(--koi-ddd-event)}.koi-node--class[data-kind=event] .koi-node__head{background:var(--koi-ddd-event)}.koi-node--class[data-kind=event] .koi-node__compartment{border-top-color:color-mix(in srgb, var(--koi-ddd-event) 38%, var(--koi-line))}.koi-node--simple[data-kind=event]{background:color-mix(in srgb, var(--koi-ddd-event) 26%, var(--koi-surface));border-color:var(--koi-ddd-event)}.koi-node--class[data-kind=integration-event]{border-color:var(--koi-ddd-integration-event)}.koi-node--class[data-kind=integration-event] .koi-node__head{background:var(--koi-ddd-integration-event)}.koi-node--class[data-kind=integration-event] .koi-node__compartment{border-top-color:color-mix(in srgb, var(--koi-ddd-integration-event) 38%, var(--koi-line))}.koi-node--simple[data-kind=integration-event]{background:color-mix(in srgb, var(--koi-ddd-integration-event) 26%, var(--koi-surface));border-color:var(--koi-ddd-integration-event)}.koi-node--class[data-kind=service]{border-color:var(--koi-ddd-service)}.koi-node--class[data-kind=service] .koi-node__head{background:var(--koi-ddd-service)}.koi-node--class[data-kind=service] .koi-node__compartment{border-top-color:color-mix(in srgb, var(--koi-ddd-service) 38%, var(--koi-line))}.koi-node--simple[data-kind=service]{background:color-mix(in srgb, var(--koi-ddd-service) 26%, var(--koi-surface));border-color:var(--koi-ddd-service)}.koi-node--class[data-kind=repository]{border-color:var(--koi-ddd-repository)}.koi-node--class[data-kind=repository] .koi-node__head{background:var(--koi-ddd-repository)}.koi-node--class[data-kind=repository] .koi-node__compartment{border-top-color:color-mix(in srgb, var(--koi-ddd-repository) 38%, var(--koi-line))}.koi-node--simple[data-kind=repository]{background:color-mix(in srgb, var(--koi-ddd-repository) 26%, var(--koi-surface));border-color:var(--koi-ddd-repository)}.koi-node--simple[data-kind=state],.koi-node--simple[data-kind=initial],.koi-node--simple[data-kind=final]{background:var(--koi-paper-2);border-color:var(--koi-muted)}.koi-node--simple[data-kind=context]{background:var(--koi-accent);border-color:var(--koi-accent);color:var(--koi-on-accent);font-size:var(--koi-text-md);letter-spacing:.01em;padding:0 var(--koi-space-3);font-weight:700}.koi-node.is-selected{border-color:var(--koi-accent);box-shadow:0 0 0 2px var(--koi-accent)}.koi-ctxmap-graph .koi-node.is-scoped{border-color:var(--koi-accent);box-shadow:0 0 0 2px var(--koi-accent), 0 0 0 5px color-mix(in srgb, var(--koi-accent) 28%, transparent)}.koi-annotation{box-sizing:border-box;pointer-events:none;color:#0b0f17;width:100%;height:100%;font-size:var(--koi-text-sm)}.koi-annotation--note{padding:var(--koi-space-1) var(--koi-space-1-5);white-space:pre-wrap;line-height:1.35;overflow:hidden}.koi-annotation--group{width:auto;height:auto;font-weight:700;font-size:var(--koi-text-xs);letter-spacing:.02em;text-transform:uppercase;padding:2px 6px;display:inline-block}.koi-canvas-controls{top:var(--koi-space-1-5);right:var(--koi-space-1-5);z-index:2;align-items:center;gap:var(--koi-space-0-5);padding:var(--koi-space-0-5);background:var(--koi-surface);border:1px solid var(--koi-line);border-radius:var(--koi-radius-pill);box-shadow:var(--koi-shadow);display:flex;position:absolute}.koi-canvas-btn{width:24px;height:24px;font-size:var(--koi-text-sm);color:var(--koi-fg);border-radius:var(--koi-radius-pill);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.koi-canvas-btn:hover{background:var(--koi-paper-2);color:var(--koi-accent)}.koi-canvas-btn:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.koi-canvas-zoom-pct{text-align:center;min-width:3.2em;font-family:var(--koi-font-mono);font-size:var(--koi-text-xs);font-variant-numeric:tabular-nums;color:var(--koi-muted);-webkit-user-select:none;user-select:none}.koi-canvas-outline{bottom:var(--koi-space-1-5);right:var(--koi-space-1-5);z-index:2;background:color-mix(in srgb, var(--koi-surface) 88%, transparent);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);width:180px;height:140px;box-shadow:var(--koi-shadow);position:absolute;overflow:hidden}.koi-canvas-palette{border-bottom:1px solid var(--koi-line);background:var(--koi-surface);flex-wrap:wrap;align-items:center;gap:.25rem;padding:.375rem .5rem;display:flex}.koi-palette-btn{color:var(--koi-fg);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.375rem;align-items:center;gap:.375rem;padding:.25rem .5rem;font-size:.8125rem;display:inline-flex}.koi-palette-btn:hover:not(:disabled){background:var(--koi-paper-2);border-color:var(--koi-line)}.koi-palette-btn:disabled{opacity:.45;cursor:not-allowed}.koi-palette-btn:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.koi-palette-swatch{background:var(--koi-ddd-repository);border-radius:2px;flex:none;width:.625rem;height:.625rem}.koi-palette-swatch--note{background:#f59e0b}.koi-palette-swatch--group{background:#8b87f5}.koi-palette-sep{background:var(--koi-line);align-self:stretch;width:1px;margin:.125rem .25rem}.koi-export{position:relative}.koi-export>summary{list-style:none}.koi-export>summary::-webkit-details-marker{display:none}.koi-export[open]>summary{background:var(--koi-paper-2);border-color:var(--koi-line)}.koi-export-menu{z-index:var(--koi-z-raised);border:1px solid var(--koi-line);background:var(--koi-surface);border-radius:.375rem;flex-direction:column;min-width:9rem;padding:.25rem;display:flex;position:absolute;top:calc(100% + .25rem);right:0;box-shadow:0 6px 20px #00000059}.koi-export-item{width:100%;color:var(--koi-fg);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.25rem;padding:.3125rem .5rem;font-size:.8125rem;display:block}.koi-export-item:hover{background:var(--koi-paper-2)}.koi-export-item:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-1px}.koi-canvas-empty{background-color:var(--koi-paper);background-image:radial-gradient(circle at 50% 42%, transparent 38%, var(--koi-paper) 78%), radial-gradient(circle, color-mix(in srgb, var(--koi-muted) 26%, transparent) 1px, transparent 1.4px);background-position:50%,50%;background-size:100% 100%,23px 23px;display:flex;position:absolute;inset:0;overflow:auto}.koi-canvas-empty__stage{align-items:center;gap:var(--koi-space-3);max-width:660px;padding:var(--koi-space-4-5) var(--koi-space-4);text-align:center;flex-direction:column;margin:auto;animation:.5s both koi-rise;display:flex}.koi-canvas-empty__eyebrow{align-items:center;gap:var(--koi-space-2);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);letter-spacing:.22em;text-transform:uppercase;color:var(--koi-muted);margin:0;font-weight:600;display:inline-flex}.koi-canvas-empty__eyebrow:before,.koi-canvas-empty__eyebrow:after{content:"";background:color-mix(in srgb, var(--koi-muted) 55%, transparent);width:26px;height:1px}.koi-canvas-empty__title{font-family:var(--koi-font-display);letter-spacing:-.02em;color:var(--koi-fg);margin:0;font-size:1.9rem;font-weight:700;line-height:1.08}.koi-canvas-empty__lead{max-width:46ch;font-family:var(--koi-font-body);font-size:var(--koi-text-lg);color:var(--koi-muted);margin:0;line-height:1.55}.koi-canvas-empty__tiles{justify-content:center;gap:var(--koi-space-3);margin-top:var(--koi-space-2);flex-wrap:wrap;display:flex}.koi-concept-tile{--tile:var(--koi-accent);align-items:center;gap:var(--koi-space-1-5);width:196px;padding:var(--koi-space-3-5) var(--koi-space-3) var(--koi-space-3);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-top:2px solid color-mix(in srgb, var(--tile) 55%, var(--koi-line));border-radius:var(--koi-radius-lg);cursor:pointer;text-align:center;font-family:var(--koi-font-body);transition:transform var(--koi-dur-slow) ease, border-color var(--koi-dur-slow) ease, box-shadow var(--koi-dur-slow) ease, background var(--koi-dur-slow) ease;flex-direction:column;display:flex}.koi-concept-tile:hover,.koi-concept-tile:focus-visible{border-color:var(--tile);border-top-color:var(--tile);background:color-mix(in srgb, var(--tile) 7%, var(--koi-paper-2));box-shadow:0 12px 30px color-mix(in srgb, var(--tile) 22%, transparent);transform:translateY(-3px)}.koi-concept-tile:focus-visible{outline:2px solid var(--tile);outline-offset:2px}.koi-concept-tile:active{transform:translateY(-1px)}.koi-concept-tile__glyph{justify-content:center;align-items:center;width:96px;height:56px;display:flex}.koi-concept-tile__glyph svg{width:100%;height:100%;overflow:visible}.koi-concept-tile__name{font-family:var(--koi-font-display);font-weight:700;font-size:var(--koi-text-lg);letter-spacing:-.01em;color:var(--koi-fg)}.koi-concept-tile__desc{font-size:var(--koi-text-xs-plus);color:var(--koi-muted);line-height:1.45}.koi-concept-tile__kw{margin-top:var(--koi-space-0-5);padding:var(--koi-space-0-5) var(--koi-space-1-5);font-family:var(--koi-font-mono);font-size:var(--koi-text-2xs);color:color-mix(in srgb, var(--tile) 85%, var(--koi-fg));background:color-mix(in srgb, var(--tile) 13%, transparent);border-radius:var(--koi-radius-pill)}.koi-canvas-empty__alt{margin:var(--koi-space-1) 0 0;font-family:var(--koi-font-body);font-size:var(--koi-text-sm);color:var(--koi-muted)}.koi-canvas-empty__alt b{color:var(--koi-ink-soft);font-weight:600}.koi-glyph{display:block}.koi-glyph__box{fill:color-mix(in srgb, var(--tile) 12%, var(--koi-surface));stroke:var(--tile);stroke-width:1.5px}.koi-glyph__head{fill:var(--tile)}.koi-glyph__rule{stroke:var(--tile);stroke-width:1.5px}.koi-glyph__row{stroke:color-mix(in srgb, var(--tile) 60%, transparent);stroke-width:2px;stroke-linecap:round}.koi-glyph__nested{fill:var(--koi-paper-2);stroke:var(--tile);stroke-width:1.5px}.koi-glyph__state{fill:color-mix(in srgb, var(--tile) 16%, var(--koi-surface));stroke:var(--tile);stroke-width:1.5px}.koi-glyph__ctx{fill:color-mix(in srgb, var(--tile) 9%, transparent);stroke:var(--tile);stroke-width:1.5px}.koi-glyph__edge{fill:none;stroke:var(--tile);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.koi-glyph__arrow{fill:var(--tile)}.koi-assistant{flex-direction:column;height:100%;display:flex}.koi-assistant[hidden]{display:none}.koi-assistant-transcript{min-height:0;padding:var(--koi-space-4) max(var(--koi-space-4-5), (100% - 860px) / 2);gap:var(--koi-space-3);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.koi-assistant-intro{color:var(--koi-muted);font-family:var(--koi-font-body);font-size:var(--koi-text-base-plus);line-height:1.55}.koi-msg{max-width:92%;padding:var(--koi-space-2-25) var(--koi-space-3);border-radius:var(--koi-radius);font-family:var(--koi-font-body);font-size:var(--koi-text-base-plus);white-space:pre-wrap;word-break:break-word;line-height:1.55}.koi-msg-user{background:var(--koi-accent);color:var(--koi-on-accent);white-space:pre-wrap;align-self:flex-end}.koi-msg-assistant{background:var(--koi-paper-2);border:1px solid var(--koi-line);color:var(--koi-fg);align-self:flex-start}.koi-msg-assistant .koi-md{white-space:normal}.koi-msg-note{background:color-mix(in srgb, var(--koi-accent) 12%, transparent);border-color:color-mix(in srgb, var(--koi-accent) 40%, var(--koi-line))}.koi-msg-error{border-color:var(--koi-error);color:var(--koi-error)}.koi-assistant-stopped{margin-top:var(--koi-space-1-5);color:var(--koi-muted);font-family:var(--koi-font-body);font-size:var(--koi-text-xs)}.koi-assistant-tool{margin:var(--koi-space-1) 0;border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);background:var(--koi-paper-2);font-family:var(--koi-font-body);font-size:var(--koi-text-xs)}.koi-assistant-tool>summary{align-items:baseline;gap:var(--koi-space-1-5);padding:var(--koi-space-1-25) var(--koi-space-2);cursor:pointer;color:var(--koi-muted);list-style:none;display:flex}.koi-assistant-tool>summary::-webkit-details-marker{display:none}.koi-assistant-tool>summary:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px;border-radius:var(--koi-radius-sm)}.koi-tool-glyph{font-family:var(--koi-font-mono,monospace);flex:none}.koi-tool-name{font-family:var(--koi-font-mono,monospace);color:var(--koi-fg);flex:none;font-weight:600}.koi-tool-summary{min-width:0;color:var(--koi-muted);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.koi-tool-duration{color:var(--koi-muted);font-variant-numeric:tabular-nums;flex:none}.koi-assistant-tool[data-state=pending] .koi-tool-glyph{color:var(--koi-muted)}.koi-assistant-tool[data-state=ok] .koi-tool-glyph{color:var(--koi-success,#2e9e58)}.koi-assistant-tool[data-state=error]{border-color:color-mix(in srgb, var(--koi-error) 45%, var(--koi-line))}.koi-assistant-tool[data-state=error] .koi-tool-glyph{color:var(--koi-error)}.koi-tool-detail{padding:var(--koi-space-1-5) var(--koi-space-2) var(--koi-space-2);border-top:1px solid var(--koi-line);margin:0}.koi-tool-detail dt{color:var(--koi-muted);font-size:var(--koi-text-2xs);text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--koi-space-0-5)}.koi-tool-detail dd{margin:0 0 var(--koi-space-1-5)}.koi-tool-detail dd:last-child{margin-bottom:0}.koi-tool-detail pre{border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);background:var(--koi-surface);max-height:12rem;padding:var(--koi-space-1-5);color:var(--koi-fg);font-family:var(--koi-font-mono,monospace);font-size:var(--koi-text-xs);white-space:pre-wrap;word-break:break-word;margin:0;overflow:auto}.koi-tool-truncated{margin-top:var(--koi-space-0-5);color:var(--koi-muted);font-size:var(--koi-text-2xs);display:block}.koi-assistant-apply,.koi-link-btn{margin-top:var(--koi-space-2);background:var(--koi-surface);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1-25) var(--koi-space-2-5);font-family:var(--koi-font-body);cursor:pointer;font-size:.76rem}.koi-assistant-apply:hover,.koi-link-btn:hover{border-color:var(--koi-accent)}.koi-assistant-apply:disabled{opacity:.6;cursor:default}.koi-assistant-chip{margin-top:var(--koi-space-2);margin-right:var(--koi-space-1-5);padding:var(--koi-space-0-5) var(--koi-space-1-5);border:1px solid color-mix(in srgb, var(--koi-accent) 40%, var(--koi-line));border-radius:var(--koi-radius-pill,999px);background:color-mix(in srgb, var(--koi-accent) 12%, transparent);color:var(--koi-muted);font-family:var(--koi-font-body);font-size:var(--koi-text-xs);vertical-align:middle;display:inline-block}.koi-assistant-repair-counter{margin-top:var(--koi-space-1);color:var(--koi-muted);font-family:var(--koi-font-mono,monospace);font-size:var(--koi-text-xs)}.koi-assistant-invalid{margin-top:var(--koi-space-1-5);color:var(--koi-error);font-family:var(--koi-font-body);font-size:var(--koi-text-xs)}.koi-changeset{margin-top:var(--koi-space-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);background:var(--koi-paper-2);padding:var(--koi-space-2)}.koi-changeset-superseded>:not(.koi-changeset-status){opacity:.6}.koi-changeset-file{align-items:center;gap:var(--koi-space-1-5);margin-bottom:var(--koi-space-1-5);grid-template-columns:auto auto 1fr;display:grid}.koi-changeset-accept{cursor:pointer}.koi-changeset-path{font-family:var(--koi-font-mono,monospace);font-size:var(--koi-text-xs);color:var(--koi-fg);word-break:break-word}.koi-changeset-badge{padding:var(--koi-space-0-5) var(--koi-space-1-5);border-radius:var(--koi-radius-pill,999px);font-family:var(--koi-font-body);font-size:var(--koi-text-xs);text-transform:uppercase;letter-spacing:.03em;display:inline-block}.koi-changeset-badge-new{border:1px solid color-mix(in srgb, var(--koi-success,#2e9e58) 45%, var(--koi-line));background:color-mix(in srgb, var(--koi-success,#2e9e58) 16%, transparent);color:var(--koi-fg)}.koi-changeset-badge-modified{border:1px solid color-mix(in srgb, var(--koi-accent) 45%, var(--koi-line));background:color-mix(in srgb, var(--koi-accent) 16%, transparent);color:var(--koi-fg)}.koi-changeset-diff{margin:var(--koi-space-0-5) 0 0;border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);background:var(--koi-surface);max-height:12rem;padding:var(--koi-space-1-5);font-family:var(--koi-font-mono,monospace);font-size:var(--koi-text-xs);white-space:pre-wrap;word-break:break-word;grid-column:1/-1;overflow:auto}.koi-changeset-diagnostics{margin:var(--koi-space-1-5) 0 0;border:1px solid var(--koi-error);border-radius:var(--koi-radius-sm);background:var(--koi-surface);max-height:12rem;padding:var(--koi-space-1-5);color:var(--koi-error);font-family:var(--koi-font-mono,monospace);font-size:var(--koi-text-xs);white-space:pre-wrap;word-break:break-word;overflow:auto}.koi-changeset-apply,.koi-changeset-discard{margin-top:var(--koi-space-1-5);margin-right:var(--koi-space-1-5);background:var(--koi-surface);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-1-25) var(--koi-space-2-5);font-family:var(--koi-font-body);cursor:pointer;font-size:.76rem}.koi-changeset-apply:hover,.koi-changeset-discard:hover{border-color:var(--koi-accent)}.koi-changeset-apply:disabled{opacity:.6;cursor:default}.koi-changeset-drift{margin-top:var(--koi-space-0-5);font-family:var(--koi-font-body);font-size:var(--koi-text-xs);color:var(--koi-error);grid-column:1/-1}.koi-changeset-status{margin-top:var(--koi-space-1);font-size:var(--koi-text-xs);color:var(--koi-muted)}.koi-changeset-status:empty{display:none}.koi-assistant-controls{border-top:1px solid var(--koi-line);padding:var(--koi-space-2-5) max(var(--koi-space-3), (100% - 860px) / 2) var(--koi-space-3);background:var(--koi-paper-2);flex:none}.koi-assistant-quick{gap:var(--koi-space-1-5);margin-bottom:var(--koi-space-2);flex-wrap:wrap;display:flex}.koi-assistant-action{background:var(--koi-surface);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-pill);padding:var(--koi-space-1) var(--koi-space-2-75);font-family:var(--koi-font-body);font-size:var(--koi-text-xs-plus);cursor:pointer}.koi-assistant-action:hover:not(:disabled){border-color:var(--koi-accent);color:var(--koi-fg)}.koi-assistant-action:disabled{opacity:.5;cursor:default}.koi-assistant-clear{color:var(--koi-muted);border-radius:var(--koi-radius-pill);padding:var(--koi-space-1) var(--koi-space-2-75);font-family:var(--koi-font-body);font-size:var(--koi-text-xs-plus);cursor:pointer;background:0 0;border:1px solid #0000;margin-left:auto}.koi-assistant-clear:hover:not(:disabled){color:var(--koi-fg);border-color:var(--koi-line)}.koi-assistant-clear:disabled{opacity:.5;cursor:default}.koi-assistant-inputrow{align-items:flex-end;gap:var(--koi-space-2);display:flex}.koi-assistant-input{resize:vertical;background:var(--koi-surface);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-2) var(--koi-space-2-5);font-family:var(--koi-font-body);font-size:var(--koi-text-base);flex:auto;line-height:1.5}.koi-assistant-input:focus-visible{border-color:var(--koi-accent);outline:none}.koi-assistant-send,.koi-assistant-stop{border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-2) var(--koi-space-3-5);font-family:var(--koi-font-body);font-size:var(--koi-text-sm-plus);cursor:pointer;flex:none}.koi-assistant-send{background:var(--koi-accent-grad);color:var(--koi-on-accent);border-color:#0000}.koi-assistant-send:disabled{opacity:.55;cursor:default}.koi-assistant-stop{background:var(--koi-surface);color:var(--koi-fg)}.koi-scenario{gap:var(--koi-space-3);height:100%;padding:var(--koi-space-4) var(--koi-space-4-5);flex-direction:column;display:flex;overflow-y:auto}.koi-scenario[hidden]{display:none}.koi-scenario-intro{color:var(--koi-muted);font-family:var(--koi-font-body);font-size:var(--koi-text-base);margin:0;line-height:1.55}.koi-scenario-controls{align-items:flex-end;gap:var(--koi-space-2-5);flex-wrap:wrap;display:flex}.koi-scenario-field{gap:var(--koi-space-0-75);flex-direction:column;flex:12rem;display:flex}.koi-scenario-field-label{font-size:var(--koi-text-sm);color:var(--koi-muted)}.koi-scenario-target,.koi-scenario-op{font-family:var(--koi-font-body);font-size:var(--koi-text-base);padding:var(--koi-space-1) var(--koi-space-1-5);background:var(--koi-paper);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm)}.koi-scenario-json{font-family:var(--koi-font-mono);font-size:var(--koi-text-sm);resize:vertical;width:100%;padding:var(--koi-space-1-5);background:var(--koi-paper);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm)}.koi-scenario-refresh,.koi-scenario-run{font-family:var(--koi-font-body);font-size:var(--koi-text-base);padding:var(--koi-space-1) var(--koi-space-2-5);background:var(--koi-paper-2);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);cursor:pointer}.koi-scenario-run-primary{background:var(--koi-accent);color:var(--koi-on-accent);border-color:#0000;align-self:flex-start}.koi-scenario-run:disabled,.koi-scenario-refresh:disabled{opacity:.5;cursor:not-allowed}.koi-scenario-results{gap:var(--koi-space-2);flex-direction:column;display:flex}.koi-scenario-section{margin:var(--koi-space-2) 0 0;font-size:var(--koi-text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--koi-muted)}.koi-scenario-badge{padding:var(--koi-space-0-75) var(--koi-space-2);border-radius:var(--koi-radius);font-size:var(--koi-text-sm);align-self:flex-start;font-weight:600}.koi-scenario-badge.is-ok{background:color-mix(in srgb, var(--koi-ok) 18%, transparent);color:var(--koi-ok)}.koi-scenario-badge.is-rejected{background:color-mix(in srgb, var(--koi-error) 18%, transparent);color:var(--koi-error)}.koi-scenario-timeline,.koi-scenario-invariants,.koi-scenario-notes{gap:var(--koi-space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.koi-scenario-step,.koi-scenario-invariant{align-items:center;gap:var(--koi-space-1-25);font-family:var(--koi-font-body);font-size:var(--koi-text-base);flex-wrap:wrap;display:flex}.koi-scenario-icon{text-align:center;width:1.1em;font-weight:700}.is-passed>.koi-scenario-icon{color:var(--koi-ok)}.is-failed>.koi-scenario-icon{color:var(--koi-error)}.is-indeterminate>.koi-scenario-icon{color:var(--koi-warn)}.koi-scenario-tag{font-size:var(--koi-text-sm);text-transform:uppercase;letter-spacing:.03em;padding:0 var(--koi-space-0-75);border-radius:var(--koi-radius-sm);background:var(--koi-paper-2);color:var(--koi-muted);border:1px solid var(--koi-line)}.koi-scenario-tag-event{color:var(--koi-accent);border-color:color-mix(in srgb, var(--koi-accent) 40%, transparent)}.koi-scenario-args{gap:var(--koi-space-0-75);flex-wrap:wrap;display:inline-flex}.koi-scenario-chip{font-family:var(--koi-font-mono);font-size:var(--koi-text-sm);padding:0 var(--koi-space-0-75);border-radius:var(--koi-radius-sm);background:var(--koi-paper-2);color:var(--koi-muted)}.koi-scenario-state{gap:var(--koi-space-0-5) var(--koi-space-2);font-family:var(--koi-font-mono);font-size:var(--koi-text-sm);grid-template-columns:auto 1fr;margin:0;display:grid}.koi-scenario-state dt{color:var(--koi-muted)}.koi-scenario-state dd{color:var(--koi-fg);margin:0}.koi-scenario-return{font-family:var(--koi-font-mono);font-size:var(--koi-text-sm);margin:0}.koi-scenario-notes{color:var(--koi-muted);font-size:var(--koi-text-sm)}.koi-scenario-message.is-error{color:var(--koi-error)}.koi-scenario-message.is-muted{color:var(--koi-muted)}.koi-review{gap:var(--koi-space-2);font-family:var(--koi-font-body);padding-top:var(--koi-space-2);flex-direction:column;display:flex}.koi-review-empty{padding:var(--koi-space-2) 7px;color:var(--koi-muted);margin:0;font-style:italic;line-height:1.5}.koi-review-files,.koi-review-threads,.koi-review-comments{margin:0;padding:0;list-style:none}.koi-review-file{margin-bottom:var(--koi-space-3)}.koi-review-file-name{margin:0 0 var(--koi-space-1);color:var(--koi-muted);text-transform:uppercase;letter-spacing:.16em;font-size:.66rem}.koi-review-threads{gap:var(--koi-space-2);flex-direction:column;display:flex}.koi-review-thread{gap:var(--koi-space-1-5);padding:var(--koi-space-2);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);flex-direction:column;display:flex}.koi-review-thread-head{align-items:center;gap:var(--koi-space-2);text-align:left;cursor:pointer;width:100%;color:var(--koi-fg);font:inherit;background:0 0;border:none;padding:0;display:flex}.koi-review-thread-head:hover .koi-review-loc{color:var(--koi-accent)}.koi-review-thread-head:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}.koi-review-status{align-items:center;gap:var(--koi-space-1);text-transform:uppercase;letter-spacing:.08em;color:var(--koi-muted);flex:none;font-size:.66rem;display:inline-flex}.koi-review-status:before{content:"";border-radius:var(--koi-radius-pill);background:currentColor;width:7px;height:7px}.koi-review-status[data-status=open]{color:var(--koi-accent)}.koi-review-status[data-status=resolved]{color:var(--koi-hl-string)}.koi-review-status[data-status=orphaned]{color:var(--koi-muted)}.koi-review-loc{color:var(--koi-ink-soft);font-family:var(--koi-font-mono);font-size:.76rem}.koi-review-comments{gap:var(--koi-space-1);flex-direction:column;display:flex}.koi-review-comment{flex-direction:column;gap:1px;font-size:.8rem;display:flex}.koi-review-author{color:var(--koi-muted);font-size:.7rem;font-weight:600}.koi-review-body{color:var(--koi-fg);white-space:pre-wrap;line-height:1.45}.koi-review-actions{gap:var(--koi-space-2);display:flex}.koi-review-toggle,.koi-review-delete,.koi-review-reply-submit{border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);color:var(--koi-ink-soft);padding:var(--koi-space-0-5) var(--koi-space-2);cursor:pointer;font:inherit;background:0 0;font-size:.76rem}.koi-review-toggle:hover,.koi-review-delete:hover,.koi-review-reply-submit:hover{background:var(--koi-surface);color:var(--koi-fg)}.koi-review-toggle:focus-visible,.koi-review-delete:focus-visible,.koi-review-reply-submit:focus-visible,.koi-review-reply-input:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.koi-review-reply{gap:var(--koi-space-1-5);display:flex}.koi-review-reply-input{background:var(--koi-paper);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);min-width:0;color:var(--koi-fg);padding:var(--koi-space-0-5) var(--koi-space-2);font:inherit;flex:auto;font-size:.8rem}.koi-comment-composer-host{z-index:var(--koi-z-popover,60)}.koi-comment-composer{gap:var(--koi-space-2);width:320px;max-width:calc(100vw - 16px);padding:var(--koi-space-2);background:var(--koi-paper-2);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);box-shadow:var(--koi-shadow-2,0 6px 24px #00000052);font-family:var(--koi-font-body);flex-direction:column;display:flex}.koi-comment-composer-input{box-sizing:border-box;resize:vertical;background:var(--koi-paper);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);width:100%;min-height:4.5rem;color:var(--koi-fg);padding:var(--koi-space-1-5) var(--koi-space-2);font:inherit;font-size:.82rem;line-height:1.45}.koi-comment-composer-input:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.koi-comment-composer-actions{justify-content:flex-end;gap:var(--koi-space-2);display:flex}.koi-comment-composer-cancel,.koi-comment-composer-add{border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-0-5) var(--koi-space-3);cursor:pointer;font:inherit;font-size:.78rem}.koi-comment-composer-cancel{color:var(--koi-ink-soft);background:0 0}.koi-comment-composer-cancel:hover{background:var(--koi-surface);color:var(--koi-fg)}.koi-comment-composer-add{background:var(--koi-accent);border-color:var(--koi-accent);color:var(--koi-on-accent,#fff)}.koi-comment-composer-add:hover{filter:brightness(1.05)}.koi-comment-composer-cancel:focus-visible,.koi-comment-composer-add:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}.koi-sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.koi-wizard{gap:var(--koi-space-4);flex-direction:column;min-width:380px;max-width:460px;display:flex}.koi-wizard-steps{align-items:center;gap:var(--koi-space-2);counter-reset:koi-wizard-step;margin:0;padding:0;list-style:none;display:flex}.koi-wizard-step{align-items:center;gap:var(--koi-space-2);font-size:var(--koi-text-xs-plus);color:var(--koi-muted);white-space:nowrap;flex:1 1 0;display:flex}.koi-wizard-step:before{counter-increment:koi-wizard-step;content:counter(koi-wizard-step);border:1px solid var(--koi-line);background:var(--koi-surface);width:20px;height:20px;font-size:var(--koi-text-xs);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.koi-wizard-step:not(:last-child):after{content:"";background:var(--koi-line);flex:auto;height:1px}.koi-wizard-step.active{color:var(--koi-fg)}.koi-wizard-step.active:before{border-color:var(--koi-accent);color:var(--koi-accent)}.koi-wizard-step.done{color:var(--koi-fg)}.koi-wizard-step.done:before{content:"✓";background:var(--koi-accent);border-color:var(--koi-accent);color:var(--koi-on-accent)}.koi-wizard-content{min-height:168px}.koi-wizard-options{gap:var(--koi-space-2-5);flex-direction:column;display:flex}.koi-wizard-option{align-items:flex-start;gap:var(--koi-space-2-5);padding:var(--koi-space-3) var(--koi-space-3-5);border:1px solid var(--koi-line);border-radius:var(--koi-radius);background:var(--koi-surface);cursor:pointer;display:flex}.koi-wizard-option:hover{border-color:var(--koi-accent)}.koi-wizard-option.selected{border-color:var(--koi-accent);background:color-mix(in srgb, var(--koi-accent) 12%, transparent)}.koi-wizard-option input{margin-top:var(--koi-space-0-5);accent-color:var(--koi-accent)}.koi-wizard-option-text{gap:var(--koi-space-0-75);flex-direction:column;display:flex}.koi-wizard-option-title{color:var(--koi-fg);font-size:.92rem;font-weight:600}.koi-wizard-option-blurb{font-size:var(--koi-text-sm-plus);color:var(--koi-muted)}.koi-wizard-checks{gap:var(--koi-space-1);flex-direction:column;display:flex}.koi-wizard-check{align-items:flex-start;gap:var(--koi-space-2-5);padding:var(--koi-space-2-5) var(--koi-space-0-5);border-bottom:1px solid var(--koi-line);cursor:pointer;display:flex}.koi-wizard-check:last-child{border-bottom:none}.koi-wizard-check input{margin-top:var(--koi-space-0-5)}.koi-wizard-check input:disabled{cursor:default}.koi-wizard-check-text{gap:var(--koi-space-0-5);flex-direction:column;display:flex}.koi-wizard-check-label{color:var(--koi-fg);font-size:.88rem}.koi-wizard-check-hint{font-size:var(--koi-text-sm);color:var(--koi-muted)}.koi-wizard-name{gap:var(--koi-space-2);flex-direction:column;display:flex}.koi-input{box-sizing:border-box;background:var(--koi-surface);width:100%;color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);font-family:var(--koi-font-mono);font-size:var(--koi-text-lg);padding:9px 11px}.koi-input:hover,.koi-input:focus{border-color:var(--koi-accent);outline:none}.koi-wizard-hint{font-size:var(--koi-text-sm-plus);color:var(--koi-muted);margin:0}.koi-wizard-invalid{font-size:var(--koi-text-sm-plus);color:var(--koi-error);margin:0}.koi-wizard-generate{gap:var(--koi-space-0-5);flex-direction:column;display:flex}.koi-wizard-summary-row{justify-content:space-between;gap:var(--koi-space-3-5);padding:9px var(--koi-space-0-5);border-bottom:1px solid var(--koi-line);font-size:var(--koi-text-md);display:flex}.koi-wizard-summary-row:last-child{border-bottom:none}.koi-wizard-summary-key{color:var(--koi-muted)}.koi-wizard-summary-val{color:var(--koi-fg);text-align:right;font-family:var(--koi-font-mono)}.koi-wizard-banner{padding:9px var(--koi-space-3);border-radius:var(--koi-radius-sm);border:1px solid var(--koi-line);background:var(--koi-surface);color:var(--koi-fg);font-size:var(--koi-text-base-plus);margin:0}.koi-wizard-banner.error{border-color:color-mix(in srgb, var(--koi-error) 40%, var(--koi-line));background:color-mix(in srgb, var(--koi-error) 9%, transparent);color:var(--koi-error)}.koi-wizard-banner.success{border-color:color-mix(in srgb, var(--koi-cyan) 40%, var(--koi-line));background:color-mix(in srgb, var(--koi-cyan) 10%, transparent);color:var(--koi-fg)}.koi-wizard-banner.success:before{content:"✓ ";color:var(--koi-cyan);font-weight:600}.koi-wizard-footer{justify-content:space-between;gap:var(--koi-space-2);display:flex}.koi-wizard-btn{background:var(--koi-surface);color:var(--koi-fg);border:1px solid var(--koi-line);border-radius:var(--koi-radius-sm);padding:var(--koi-space-2) var(--koi-space-4);font-family:var(--koi-font-body);font-size:var(--koi-text-md);cursor:pointer}.koi-wizard-btn:hover:not(:disabled){border-color:var(--koi-accent)}.koi-wizard-btn.primary{background:var(--koi-accent);color:var(--koi-on-accent);border-color:var(--koi-accent);margin-left:auto;font-weight:600}.koi-wizard-btn.primary:hover:not(:disabled){background:color-mix(in srgb, var(--koi-accent) 88%, #fff)}.koi-wizard-btn:disabled{opacity:.5;cursor:default}.koi-input:focus-visible,.koi-select:focus-visible,.koi-number:focus-visible,.koi-checkbox:focus-visible,.koi-wizard-btn:focus-visible,.koi-wizard-option:focus-within,.koi-wizard-check:focus-within{outline:2px solid var(--koi-accent);outline-offset:2px}#mobile-zone-bar-host{display:none}@media (width<=640px){#mobile-zone-bar-host{z-index:40;background:var(--koi-paper-2);border-top:1px solid var(--koi-line);display:block;position:fixed;inset:auto 0 0}.koi-mobile-zonebar{height:var(--koi-mzb-h,3rem);display:flex}.koi-mzb-tab{min-height:44px;color:var(--koi-muted);font:inherit;cursor:pointer;background:0 0;border:none;flex:1 1 0}.koi-mzb-tab[aria-selected=true]{color:var(--koi-accent);box-shadow:inset 0 2px 0 0 var(--koi-accent)}.koi-mzb-tab:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}}#inspector-sheet-host{display:none}@media (width<=640px){#inspector-sheet-host{display:block}.koi-sheet-backdrop{z-index:45;background:#0006;border:none;position:fixed;inset:0}.koi-sheet{inset:auto 0 var(--koi-mzb-h,3rem) 0;z-index:46;background:var(--koi-paper);border-top:1px solid var(--koi-line);transition:height var(--koi-dur-fast,.12s) ease;border-radius:12px 12px 0 0;flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 -4px 24px #00000040}.koi-sheet[data-detent=peek]{height:var(--koi-sheet-peek-h,2.75rem)}.koi-sheet[data-detent=half]{height:45vh}.koi-sheet[data-detent=full]{height:calc(100vh - var(--koi-mzb-h,3rem) - .5rem)}.koi-sheet-handle{border:none;border-bottom:1px solid var(--koi-line);cursor:grab;touch-action:none;background:0 0;flex:none;justify-content:center;align-items:center;width:100%;min-height:44px;padding:0;display:flex}.koi-sheet-handle:active{cursor:grabbing}.koi-sheet-handle:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}.koi-sheet-grip{background:var(--koi-muted);border-radius:999px;width:2.5rem;height:.25rem}.koi-sheet-body{flex:auto;min-height:0;overflow:auto}}.koi-symbol-row-host{display:none}@media (width<=640px){.koi-symbol-row-host:not([hidden]){z-index:41;background:var(--koi-paper-2);border-top:1px solid var(--koi-line);display:block;position:fixed;inset:auto 0 0}.koi-symbol-row{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;padding:4px 6px;display:flex;overflow-x:auto}.koi-symbol-row::-webkit-scrollbar{display:none}.koi-symbol-btn{background:var(--koi-surface);min-width:44px;min-height:44px;color:var(--koi-fg);border:1px solid var(--koi-line);font-family:var(--koi-font-mono);cursor:pointer;border-radius:6px;flex:none;font-size:1rem;line-height:1}.koi-symbol-btn:active{background:color-mix(in srgb, var(--koi-accent) 18%, transparent)}.koi-symbol-btn:focus-visible{outline:2px solid var(--koi-accent);outline-offset:-2px}}.koi-memory-banner{align-items:center;gap:var(--koi-space-2,.6rem);padding:var(--koi-space-1-5,.5rem) var(--koi-space-3,.85rem);background:color-mix(in srgb, var(--koi-warn,#d8a200) 18%, var(--koi-surface));border-bottom:1px solid color-mix(in srgb, var(--koi-warn,#d8a200) 45%, transparent);color:var(--koi-fg);font-size:var(--koi-text-base,.85rem);line-height:1.4;display:flex}.koi-memory-banner-msg{flex:auto}.koi-memory-banner-dismiss{color:var(--koi-muted);cursor:pointer;border-radius:var(--koi-radius-xs,4px);background:0 0;border:none;flex:none;padding:.15rem .35rem;font-size:1rem;line-height:1}.koi-memory-banner-dismiss:hover{color:var(--koi-fg);background:color-mix(in srgb, var(--koi-fg) 10%, transparent)}.koi-memory-banner-dismiss:focus-visible{outline:2px solid var(--koi-accent);outline-offset:1px}.install-affordance{align-items:center;gap:var(--koi-space-2);display:flex}.install-affordance[hidden]{display:none}.install-btn,.install-dismiss{position:relative}.install-btn:after,.install-dismiss:after{content:"";width:max(100%,44px);height:max(100%,44px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.install-btn:focus-visible,.install-dismiss:focus-visible{outline:2px solid var(--koi-accent);outline-offset:2px}.install-btn{align-items:center;gap:var(--koi-space-1);height:30px;padding:0 var(--koi-space-2);color:var(--koi-fg);background:color-mix(in srgb, var(--koi-accent) 14%, transparent);border:1px solid color-mix(in srgb, var(--koi-accent) 45%, transparent);border-radius:var(--koi-radius-sm);font-family:var(--koi-font-body);font-size:var(--koi-text-sm);cursor:pointer;transition:background var(--koi-dur-fast) ease, border-color var(--koi-dur-fast) ease;font-weight:600;line-height:1;display:inline-flex}.install-btn .tb-ico{color:var(--koi-accent)}.install-btn:hover{background:color-mix(in srgb, var(--koi-accent) 22%, transparent);border-color:var(--koi-accent)}.install-btn-label{white-space:nowrap}
