@gavinc-cn/touchstone-dsh 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +0 -0
- package/README.md +23 -15
- package/README.zh.md +17 -12
- package/auth.py +0 -0
- package/backend/lib/access.js +44 -0
- package/backend/lib/agents.js +341 -0
- package/backend/lib/args.js +94 -0
- package/backend/lib/auth.js +195 -0
- package/backend/lib/board.js +6227 -0
- package/backend/lib/builtin-assets.js +1177 -0
- package/backend/lib/casescan.js +456 -0
- package/backend/lib/chat.js +2090 -0
- package/backend/lib/cookie.js +76 -0
- package/backend/lib/db.js +2260 -0
- package/backend/lib/dshdriver.js +1148 -0
- package/backend/lib/dshevents.js +851 -0
- package/backend/lib/export-cases.js +261 -0
- package/backend/lib/feishu.js +1747 -0
- package/backend/lib/feishu_cfg.js +262 -0
- package/backend/lib/feishu_conv.js +1484 -0
- package/backend/lib/feishu_device.js +428 -0
- package/backend/lib/feishu_inbound.js +2077 -0
- package/backend/lib/feishu_provision.js +886 -0
- package/backend/lib/feishu_rest.js +398 -0
- package/backend/lib/feishu_slash.js +568 -0
- package/backend/lib/feishu_ws.js +950 -0
- package/backend/lib/http.js +312 -0
- package/backend/lib/lib.js +973 -0
- package/backend/lib/loadcase.js +749 -0
- package/backend/lib/loadgen.js +1407 -0
- package/backend/lib/localbus.js +164 -0
- package/backend/lib/lock.js +426 -0
- package/backend/lib/proc.js +361 -0
- package/backend/lib/prompts.js +1021 -0
- package/backend/lib/pybase64.js +114 -0
- package/backend/lib/pyjson.js +214 -0
- package/backend/lib/query.js +125 -0
- package/backend/lib/rag.js +1310 -0
- package/backend/lib/runner.js +4546 -0
- package/backend/lib/seed_hint.js +40 -0
- package/backend/lib/servercaps.js +182 -0
- package/backend/lib/serverstate.js +227 -0
- package/backend/lib/sessparse.js +1176 -0
- package/backend/lib/sse.js +207 -0
- package/backend/lib/static.js +84 -0
- package/backend/lib/taskjson.js +302 -0
- package/backend/lib/waitq.js +2114 -0
- package/backend/lib/worktree.js +588 -0
- package/backend/lib/zstd-frames.js +218 -0
- package/backend/routes/admin.js +553 -0
- package/backend/routes/agents.js +149 -0
- package/backend/routes/assets.js +145 -0
- package/backend/routes/board.js +1228 -0
- package/backend/routes/feishu.js +269 -0
- package/backend/routes/feishu_app.js +249 -0
- package/backend/routes/feishu_hook.js +358 -0
- package/backend/routes/index.js +298 -0
- package/backend/routes/projects.js +1138 -0
- package/backend/routes/sessions.js +1003 -0
- package/backend/routes/tasks.js +1530 -0
- package/backend/schema/fixtures/ancient.sql +189 -0
- package/backend/schema/fixtures/pre_alter.sql +177 -0
- package/backend/schema/migrations.json +154 -0
- package/backend/schema/schema.json +1451 -0
- package/backend/schema/schema.sql +216 -0
- package/backend/server.js +505 -0
- package/board.py +96 -13
- package/builtin_assets.py +0 -0
- package/builtin_prompts/free_style/flow.md +0 -0
- package/builtin_prompts/free_style/load_test.md +0 -0
- package/builtin_prompts/free_style/templates/bug_report_template.md +0 -0
- package/builtin_prompts/free_style/templates/case_template.md +0 -0
- package/builtin_prompts/free_style/templates/index_template.md +0 -0
- package/builtin_prompts/free_style/templates/load_charts_template.md +0 -0
- package/builtin_prompts/free_style/templates/load_index_template.md +0 -0
- package/builtin_prompts/free_style/templates/load_plan_template.md +0 -0
- package/builtin_prompts/free_style/templates/load_scenario_template.md +0 -0
- package/builtin_prompts/free_style/templates/status_template.md +0 -0
- package/chat.py +33 -0
- package/db.py +294 -129
- package/dsh-plugin/cordis.patch.yml +0 -0
- package/dsh-plugin/install.sh +22 -8
- package/dsh-plugin/lib/client.bundle.js +111 -2
- package/dsh-plugin/lib/index.js +340 -29
- package/dsh-plugin/lib/pack-closure.mjs +291 -0
- package/dsh-plugin/scripts/build.mjs +0 -0
- package/dsh-plugin/scripts/prepack-check.mjs +30 -2
- package/dsh-plugin/scripts/select-bundle.mjs +0 -0
- package/dsh-plugin/src/client.js +111 -2
- package/dshevents.py +0 -0
- package/export_cases.py +0 -0
- package/extensions/dsh-autocommit/asset.json +0 -0
- package/extensions/dsh-autocommit/pkg/lib/index.mjs +0 -0
- package/extensions/dsh-autocommit/pkg/package.json +0 -0
- package/feishu.py +417 -3
- package/feishu_conv.py +0 -0
- package/lib.py +0 -0
- package/lifecycle.py +116 -13
- package/loadcase.py +0 -0
- package/loadgen.py +0 -0
- package/localbus.py +0 -0
- package/migrate_p7b.py +0 -0
- package/package.json +6 -1
- package/platcompat.py +0 -0
- package/prompts.py +0 -0
- package/rag.py +0 -0
- package/requirements.txt +0 -0
- package/server.py +155 -11
- package/touchstone.py +0 -0
- package/waitq.py +0 -0
- package/webui/dist-plugin/assets/index-3QsYQi7y.css +1 -0
- package/webui/dist-plugin/assets/index-B8AMtW7y.js +486 -0
- package/webui/dist-plugin/index.html +2 -2
- package/worktree.py +0 -0
- package/webui/dist-plugin/assets/index-JLwyZZxC.js +0 -484
- package/webui/dist-plugin/assets/index-tJ0TlvQ3.css +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-red-500:oklch(63.7% .237 25.331);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--text-xs--line-height:calc(1 / .75);--text-sm--line-height:calc(1.25 / .875);--text-lg--line-height:calc(1.75 / 1.125);--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-relaxed:1.625;--radius-xs:.125rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--ff-sans);--default-mono-font-family:var(--ff-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components,legacy;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.top-full{top:100%}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.left-0{left:0}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.my-1{margin-block:var(--spacing)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-20{margin-top:calc(var(--spacing) * 20)}.mr-auto{margin-right:auto}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[78vh\]{height:78vh}.h-\[90vh\]{height:90vh}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-52{max-height:calc(var(--spacing) * 52)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-\[50vh\]{max-height:50vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-\[120px\]{min-height:120px}.min-h-svh{min-height:100svh}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-\[52vw\]{width:52vw}.w-\[66vw\]{width:66vw}.w-\[75vw\]{width:75vw}.w-\[90px\]{width:90px}.w-\[110px\]{width:110px}.w-\[240px\]{width:240px}.w-\[300px\]{width:300px}.w-\[360px\]{width:360px}.w-\[380px\]{width:380px}.w-\[560px\]{width:560px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\[130px\]{max-width:130px}.max-w-\[180px\]{max-width:180px}.max-w-\[240px\]{max-width:240px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-\[8rem\]{min-width:8rem}.min-w-\[70px\]{min-width:70px}.min-w-\[90px\]{min-width:90px}.min-w-\[120px\]{min-width:120px}.min-w-\[130px\]{min-width:130px}.min-w-\[160px\]{min-width:160px}.min-w-\[176px\]{min-width:176px}.min-w-\[200px\]{min-width:200px}.min-w-\[220px\]{min-width:220px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.scroll-my-1{scroll-margin-block:var(--spacing)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[1fr_1fr\]{grid-template-columns:1fr 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.grid-rows-\[auto_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(0,1fr)}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:0}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1{row-gap:var(--spacing)}.self-center{align-self:center}.self-start{align-self:flex-start}.justify-self-center{justify-self:center}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-\[var\(--admin-badge\)\]{border-color:var(--admin-badge)}.border-border,.border-border\/40{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,var(--border) 40%,transparent)}}.border-border\/60{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/60{border-color:color-mix(in oklab,var(--border) 60%,transparent)}}.border-input{border-color:var(--input)}.border-primary\/60{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/60{border-color:color-mix(in oklab,var(--primary) 60%,transparent)}}.border-transparent{border-color:#0000}.bg-accent,.bg-accent\/40{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/40{background-color:color-mix(in oklab,var(--accent) 40%,transparent)}}.bg-accent\/60{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/60{background-color:color-mix(in oklab,var(--accent) 60%,transparent)}}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-red-500{background-color:var(--color-red-500)}.bg-secondary,.bg-secondary\/60{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.bg-secondary\/60{background-color:color-mix(in oklab,var(--secondary) 60%,transparent)}}.bg-transparent{background-color:#0000}.bg-\[radial-gradient\(1200px_600px_at_70\%_-10\%\,var\(--login-glow\)_0\%\,var\(--bg\)_55\%\)\]{background-image:radial-gradient(1200px 600px at 70% -10%,var(--login-glow) 0%,var(--bg) 55%)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[3px\]{padding:3px}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-0{padding-bottom:0}.pb-1{padding-bottom:var(--spacing)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--ff-mono)}.font-serif{font-family:var(--ff-serif)}.text-2xl{font-size:calc(1.5rem * var(--fs));line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:calc(1.125rem * var(--fs));line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:calc(.875rem * var(--fs));line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:calc(.75rem * var(--fs));line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.text-\[calc\(10px\*var\(--fs\)\)\]{font-size:calc(10px * var(--fs))}.text-\[calc\(11px\*var\(--fs\)\)\]{font-size:calc(11px * var(--fs))}.text-\[calc\(13px\*var\(--fs\)\)\]{font-size:calc(13px * var(--fs))}.text-\[calc\(15px\*var\(--fs\)\)\]{font-size:calc(15px * var(--fs))}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.3em\]{--tw-tracking:.3em;letter-spacing:.3em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.text-\[var\(--admin-badge\)\]{color:var(--admin-badge)}.text-\[var\(--fail\)\]{color:var(--fail)}.text-\[var\(--ok-text\)\]{color:var(--ok-text)}.text-\[var\(--retest\)\]{color:var(--retest)}.text-\[var\(--run\)\]{color:var(--run)}.text-\[var\(--star\)\]{color:var(--star)}.text-\[var\(--star-text\)\]{color:var(--star-text)}.text-\[var\(--tab-active\)\]{color:var(--tab-active)}.text-accent-foreground{color:var(--accent-foreground)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.running{animation-play-state:running}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}@media (hover:hover){.hover\:bg-accent:hover,.hover\:bg-accent\/40:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/40:hover{background-color:color-mix(in oklab,var(--accent) 40%,transparent)}}.hover\:bg-accent\/60:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/60:hover{background-color:color-mix(in oklab,var(--accent) 60%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing) * 9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing) * 8)}:is(.\*\:data-\[slot\=select-value\]\:min-w-0>*)[data-slot=select-value]{min-width:0}:is(.\*\:data-\[slot\=select-value\]\:truncate>*)[data-slot=select-value]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-\[var\(--tab-active\)\][data-state=active]{color:var(--tab-active)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}@media (min-width:40rem){.sm\:max-w-\[92vw\]{max-width:92vw}.sm\:max-w-\[94vw\]{max-width:94vw}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-none{max-width:none}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--fs:1;--background:#0b1426;--foreground:var(--text);--card:#141e36;--card-foreground:var(--text);--popover:#141e36;--popover-foreground:var(--text);--primary:#e8b86d;--primary-foreground:#0b1426;--secondary:#1f2d4d;--secondary-foreground:var(--text);--muted:#1f2d4d;--muted-foreground:#f5f1e88c;--accent:#e8b86d24;--accent-foreground:#e8b86d;--destructive:#e07a8c;--destructive-foreground:#0b1426;--border:#2a3a5e;--input:#2a3a5e;--ring:#e8b86d;--ff-sans:"Noto Sans SC", system-ui, "PingFang SC", "Microsoft YaHei", sans-serif;--ff-serif:"Noto Serif SC", "Songti SC", serif;--ff-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}[data-skin=classic]{--background:#0d1117;--foreground:var(--text);--card:#151b23;--card-foreground:var(--text);--popover:#151b23;--popover-foreground:var(--text);--primary:#1f6feb;--primary-foreground:#fff;--secondary:#1b2230;--secondary-foreground:var(--text);--muted:#1b2230;--muted-foreground:#8b949e;--accent:#1b2230;--accent-foreground:var(--text);--destructive:#f85149;--destructive-foreground:#fff;--border:#2a3140;--input:#2a3140;--ring:#58a6ff;--ff-sans:-apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--ff-serif:var(--ff-sans);--ff-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace}[data-skin=dsh-dark]{--radius:12px;--background:#151517;--foreground:var(--text);--card:#232324;--card-foreground:var(--text);--popover:#2c2c2e;--popover-foreground:var(--text);--primary:#f9fafb;--primary-foreground:#0f1115;--secondary:#2c2c2e;--secondary-foreground:var(--text);--muted:#232324;--muted-foreground:#adb2b8;--accent:#ffffff14;--accent-foreground:var(--text);--destructive:#f25a5a;--destructive-foreground:#0f1115;--border:#ffffff1f;--input:#ffffff1f;--ring:#7aaaff;--ff-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;--ff-serif:var(--ff-sans);--ff-mono:"SF Mono", "JetBrains Mono", "Fira Code", Consolas, "Liberation Mono", Menlo, Courier, "PingFang SC", "Microsoft YaHei"}[data-skin=dsh-dark][data-bright=dimmer]{--muted-foreground:#979da6}[data-skin=dsh-light]{--radius:12px;--background:#fff;--foreground:var(--text);--card:#fff;--card-foreground:var(--text);--popover:#fff;--popover-foreground:var(--text);--primary:#0f1115;--primary-foreground:#fff;--secondary:#f5f6f7;--secondary-foreground:var(--text);--muted:#f5f6f7;--muted-foreground:#61666b;--accent:#2631480f;--accent-foreground:var(--text);--destructive:#ec1313;--destructive-foreground:#fff;--border:#0000001a;--input:#0000001a;--ring:#4176e6;--ff-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;--ff-serif:var(--ff-sans);--ff-mono:"SF Mono", "JetBrains Mono", "Fira Code", Consolas, "Liberation Mono", Menlo, Courier, "PingFang SC", "Microsoft YaHei"}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@layer legacy{:root{--bg: #0B1426;--panel: #141E36;--panel2: #1F2D4D;--border: #2A3A5E;--text-hi: #F5F1E8;--text-mid: #D8D4CB;--text-lo: #BDB9B1;--text: var(--text-mid);--dim: rgba(245, 241, 232, .42);--star: #E8B86D;--star-text: #E8B86D;--aurora: #7BC8D6;--pass: #8FBC6E;--fail: #E07A8C;--retest: #F2A65A;--run: #7BC8D6;--fix: #E8B86D;--mono: var(--ff-mono);--scrollbar: var(--panel2);--scrollbar-hover: var(--star);--card-bg: rgba(20, 30, 54, .55);--card-bd: rgba(232, 184, 109, .18);--card-blur: 18px;--card-radius: 12px;--logo-1: #E8B86D;--logo-2: #F2A65A;--logo-fg: #0B1426;--tab-active: var(--star-text);--login-glow: #1F2D4D;--admin-badge: var(--star-text);--ok-text: var(--pass);--inset-bg: #0A1120;--inset-text: #A6B3C8;--row-hover: rgba(232, 184, 109, .06);--row-open: rgba(232, 184, 109, .1);--rz-hover: rgba(232, 184, 109, .3);--step-active-bg: rgba(123, 200, 214, .1);--case-running-bg: rgba(123, 200, 214, .14);--donut-shadow: rgba(143, 188, 110, .12);--seg-pass-1: #6E9A52;--seg-pass-2: #8FBC6E;--seg-fail-1: #B85A6C;--seg-fail-2: #E07A8C;--seg-retest-1: #C77F3E;--seg-retest-2: #F2A65A;--grad-pass-1: #8FBC6E;--grad-pass-2: #6E9A52;--grad-fail-1: #E07A8C;--grad-fail-2: #B85A6C;--lp-prompt: #7BC8D6;--lp-compact: #F2A65A;--lp-round: #E8B86D;--lp-done: #8FBC6E;--lp-err: #E07A8C;--lp-json: #7BC8D6;--err-bg: rgba(224, 122, 140, .08);--err-bd: rgba(224, 122, 140, .3);--err-bd-strong: rgba(224, 122, 140, .4);--bubble-user-bg: rgba(232, 184, 109, .12);--bubble-user-bd: rgba(232, 184, 109, .35);--bubble-user-text: var(--text);--composer-focus: rgba(232, 184, 109, .5);--agent-on-text: var(--star);--scrollbar-w: 8px;--card-shadow: none;--shadow-menu: 0 8px 28px rgba(0, 0, 0, .45);--shadow-pop: 0 10px 32px rgba(0, 0, 0, .55);--shadow-toast: 0 12px 32px rgba(0, 0, 0, .45);--shadow-ghost: 0 16px 32px rgba(0, 0, 0, .28);--menu-bg: #1e1c26;--menu-bd: #35313f;--menu-fg: #e6e3ef;--menu-key: #a5a0b8;--menu-mut: #8b86a0;--menu-on-bg: rgba(255, 255, 255, .09);--menu-on-fg: #fff;--ask: #f59e0b;--seq-4: #8ab4f8;--seq-5: #c58af9;--seq-6: #f6bf72;--lp-cmd: #8a94a6;--lp-dim: #5a6478;--chart-axis: rgba(139, 148, 158, .35);--chart-grid: rgba(139, 148, 158, .12);color-scheme:dark}:root[data-skin=classic]{--bg: #0d1117;--panel: #151b23;--panel2: #1b2230;--border: #2a3140;--text-hi: #c9d1d9;--text-mid: #b6bfc8;--text-lo: #a3acb5;--text: var(--text-mid);--dim: #7d8590;--star: #58a6ff;--star-text: #58a6ff;--aurora: #58a6ff;--pass: #3fb950;--fail: #f85149;--retest: #d29922;--run: #58a6ff;--fix: #a371f7;--scrollbar: #30363d;--scrollbar-hover: #30363d;--card-bg: var(--panel);--card-bd: var(--border);--card-blur: 0px;--card-radius: 10px;--logo-1: #1f6feb;--logo-2: #58a6ff;--logo-fg: #0d1117;--tab-active: var(--text);--login-glow: #16283f;--admin-badge: #a371f7;--ok-text: #10b981;--inset-bg: #0a0e14;--inset-text: #9db4c8;--row-hover: rgba(31, 111, 235, .06);--row-open: rgba(31, 111, 235, .1);--rz-hover: rgba(31, 111, 235, .28);--step-active-bg: rgba(88, 166, 255, .08);--case-running-bg: rgba(88, 166, 255, .12);--donut-shadow: rgba(63, 185, 80, .1);--seg-pass-1: #238636;--seg-pass-2: #3fb950;--seg-fail-1: #a40e26;--seg-fail-2: #f85149;--seg-retest-1: #9e6a03;--seg-retest-2: #d29922;--grad-pass-1: #3fb950;--grad-pass-2: #238636;--grad-fail-1: #f85149;--grad-fail-2: #a40e26;--lp-prompt: #7ab8ff;--lp-compact: #c792ea;--lp-round: #ffd166;--lp-done: #52c41a;--lp-err: #f85149;--lp-json: #6ab0f3;--err-bg: rgba(248, 81, 73, .08);--err-bd: rgba(248, 81, 73, .3);--err-bd-strong: rgba(248, 81, 73, .4);--bubble-user-bg: #12305e;--bubble-user-bd: #1f6feb66;--bubble-user-text: #dbe7ff;--composer-focus: #1f6feb88;--agent-on-text: #dbe7ff}:root[data-skin=dsh-dark]{--bg: #151517;--panel: #1b1b1c;--panel2: #2c2c2e;--border: #ffffff1f;--text-hi: #f9fafb;--text-mid: #cfd3d6;--text-lo: #adb2b8;--text: var(--text-mid);--dim: #81858c;--star: #f9fafb;--star-text: #e1e5ee;--aurora: #7aaaff;--pass: #22c55e;--fail: #f25a5a;--retest: #f59e0b;--run: #7aaaff;--fix: #b197fc;--scrollbar: #3c3c3d;--scrollbar-hover: #545557;--scrollbar-w: 5px;--card-bg: #232324;--card-bd: #ffffff1f;--card-blur: 0px;--card-radius: 16px;--card-shadow: 0 0 0 .5px #fff3, 0 4px 16px 0 #00000008, 0 0 24px 0 #00000008;--shadow-menu: 0 0 0 .5px #fff3, 0 3px 8px 0 #0000000a, 0 0 20px 0 #0000000d;--shadow-pop: 0 0 0 .5px #fff3, 0 3px 8px 0 #0000000a, 0 0 20px 0 #0000000d;--shadow-toast: 0 0 0 .5px #fff3, 0 3px 8px 0 #0000000a, 0 0 20px 0 #0000000d;--shadow-ghost: 0 0 0 .5px #fff3, 0 6px 20px 0 #0000004d;--logo-1: #f9fafb;--logo-2: #e9ecf2;--logo-fg: #0f1115;--tab-active: var(--star-text);--login-glow: #232324;--admin-badge: var(--star-text);--ok-text: var(--pass);--inset-bg: #1b1b1c;--inset-text: #cfd3d6;--row-hover: #ffffff14;--row-open: #ffffff24;--rz-hover: #ffffff3d;--step-active-bg: #7aaaff1a;--case-running-bg: #7aaaff24;--donut-shadow: #22c55e1f;--seg-pass-1: #22c55e;--seg-pass-2: #4ed17e;--seg-fail-1: #c93b3b;--seg-fail-2: #f25a5a;--seg-retest-1: #c47a2a;--seg-retest-2: #f59e0b;--grad-pass-1: #4ed17e;--grad-pass-2: #1b7a42;--grad-fail-1: #f25a5a;--grad-fail-2: #a32b2b;--lp-prompt: #7aaaff;--lp-compact: #ffa94d;--lp-round: var(--text);--lp-done: #22c55e;--lp-err: #f25a5a;--lp-json: #4dabf7;--err-bg: #f25a5a14;--err-bd: #f25a5a4d;--err-bd-strong: #f25a5a66;--bubble-user-bg: #2c2c2e;--bubble-user-bd: #ffffff1f;--bubble-user-text: var(--text);--composer-focus: #7aaaff;--agent-on-text: #0f1115;--ask: #f59e0b;--menu-bg: #2c2c2e;--menu-bd: #ffffff1f;--menu-fg: var(--text);--menu-key: var(--muted-foreground);--menu-mut: var(--dim);--menu-on-bg: #ffffff24;--menu-on-fg: var(--star-text);--seq-4: #faa2c1;--seq-5: #6dccff;--seq-6: #adb5bd;--lp-cmd: #adb5bd;--lp-dim: #81858c;--chart-axis: #ffffff3d;--chart-grid: #ffffff14;color-scheme:dark}:root[data-skin=dsh-light]{--bg: #ffffff;--panel: #f9fafb;--panel2: #f5f6f7;--border: #0000001a;--text-hi: #0f1115;--text-mid: #0f1115;--text-lo: #0f1115;--text: var(--text-mid);--dim: #979da6;--star: #0f1115;--star-text: #0f1115;--aurora: #4176e6;--pass: #01a241;--fail: #ec1313;--retest: #dd8629;--run: #4176e6;--fix: #6741d9;--scrollbar: #e5e5e5;--scrollbar-hover: #d4d4d4;--scrollbar-w: 5px;--card-bg: #ffffff;--card-bd: #0000001a;--card-blur: 0px;--card-radius: 16px;--card-shadow: 0 0 0 .5px #00000029, 0 4px 16px 0 #00000008, 0 0 24px 0 #00000008;--shadow-menu: 0 0 0 .5px #00000029, 0 3px 8px 0 #0000000a, 0 0 20px 0 #0000000d;--shadow-pop: 0 0 0 .5px #00000029, 0 3px 8px 0 #0000000a, 0 0 20px 0 #0000000d;--shadow-toast: 0 0 0 .5px #00000029, 0 3px 8px 0 #0000000a, 0 0 20px 0 #0000000d;--shadow-ghost: 0 0 0 .5px #00000029, 0 6px 20px 0 #00000029;--logo-1: #0f1115;--logo-2: #3c3c3d;--logo-fg: #ffffff;--tab-active: var(--star-text);--login-glow: #ebeef2;--admin-badge: var(--star-text);--ok-text: var(--pass);--inset-bg: #f9fafb;--inset-text: #353638;--row-hover: #2631480f;--row-open: #2631481a;--rz-hover: #26314824;--step-active-bg: #4176e61a;--case-running-bg: #4176e624;--donut-shadow: #01a2411f;--seg-pass-1: #01a241;--seg-pass-2: #22c55e;--seg-fail-1: #ec1313;--seg-fail-2: #f25a5a;--seg-retest-1: #dd8629;--seg-retest-2: #f59e0b;--grad-pass-1: #4ed17e;--grad-pass-2: #01a241;--grad-fail-1: #f25a5a;--grad-fail-2: #ec1313;--lp-prompt: #1971c2;--lp-compact: #e8590c;--lp-round: #0f1115;--lp-done: #2f9e44;--lp-err: #ec1313;--lp-json: #1c7ed6;--err-bg: #ec131314;--err-bd: #ec13134d;--err-bd-strong: #ec131366;--bubble-user-bg: #edf3fe;--bubble-user-bd: #d3e2ff;--bubble-user-text: #0f1115;--composer-focus: #4176e6;--agent-on-text: #ffffff;--ask: #dd8629;--menu-bg: #ffffff;--menu-bd: #0000001a;--menu-fg: #0f1115;--menu-key: #61666b;--menu-mut: #979da6;--menu-on-bg: #2631481a;--menu-on-fg: #0f1115;--seq-4: #d6336c;--seq-5: #0293b4;--seq-6: #495057;--lp-cmd: #868e96;--lp-dim: #adb2b8;--chart-axis: #00000029;--chart-grid: #00000014;color-scheme:light}:root[data-skin=starlight][data-bright=normal]{--text: var(--text-hi)}:root[data-skin=starlight][data-bright=dimmer]{--text: var(--text-lo)}:root[data-skin=classic][data-bright=normal]{--text: var(--text-hi)}:root[data-skin=classic][data-bright=dimmer]{--text: var(--text-lo)}:root[data-skin=dsh-dark][data-bright=normal]{--text: var(--text-hi);--star-text: #f9fafb}:root[data-skin=dsh-dark][data-bright=dimmer]{--text: var(--text-lo);--star-text: #cfd3d6;--inset-text: #adb2b8}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:calc(13px * var(--fs))/1.5 var(--ff-sans);overflow:hidden}::-webkit-scrollbar{width:var(--scrollbar-w);height:var(--scrollbar-w)}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary)}a{color:var(--run);text-decoration:none}a:hover{text-decoration:underline}.card{background:var(--card-bg);border:1px solid var(--card-bd);border-radius:var(--card-radius);padding:14px 16px;margin-bottom:14px;box-shadow:var(--card-shadow);backdrop-filter:blur(var(--card-blur));-webkit-backdrop-filter:blur(var(--card-blur))}.card h3{margin:0 0 10px;font-size:calc(13px * var(--fs));color:var(--muted-foreground);font-weight:600;font-family:var(--ff-serif);letter-spacing:.02em}.hint{color:var(--dim);font-size:calc(11px * var(--fs))}.mono{font-family:var(--mono)}.num{font-family:var(--mono);font-feature-settings:"tnum"}.muted{color:var(--muted-foreground)}.dim{color:var(--dim)}.ts-logo{flex:none}.ts-mark{display:grid;place-items:center;background:linear-gradient(to top right,var(--logo-1),var(--logo-2));color:var(--logo-fg);font-family:var(--mono);font-weight:700;line-height:1}.aurora-line{height:1px;border:none;margin:0;background:linear-gradient(90deg,transparent,var(--aurora),var(--star),transparent)}:root:not([data-skin=starlight]) .aurora-line{display:none}.badge{display:inline-flex;align-items:center;gap:5px;padding:1px 9px;border-radius:9px;border:1px solid var(--border);font-size:calc(11px * var(--fs));white-space:nowrap}.badge .dot{width:7px;height:7px;border-radius:50%}.st-queued{color:var(--dim)}.st-queued .dot{background:var(--dim)}.st-running{color:var(--run);border-color:var(--run)}.st-running .dot{background:var(--run);animation:pulse 1.2s infinite}.st-done{color:var(--pass);border-color:var(--pass)}.st-done .dot{background:var(--pass)}.st-failed{color:var(--fail);border-color:var(--fail)}.st-failed .dot{background:var(--fail)}.st-stopped{color:var(--retest);border-color:var(--retest)}.st-stopped .dot{background:var(--retest)}.st-retest{color:var(--retest);border-color:var(--retest)}.st-retest .dot{background:var(--retest)}.st-interrupted{color:var(--muted-foreground)}.st-interrupted .dot{background:var(--muted-foreground)}@keyframes pulse{50%{opacity:.35}}.bug-status{padding:0 8px;border-radius:8px;font-size:calc(11px * var(--fs));border:1px solid}.bug-status.pass{color:var(--pass);border-color:var(--pass)}.bug-status.fix{color:var(--fix);border-color:var(--fix)}.bug-status.run{color:var(--run);border-color:var(--run)}.bug-status.retest{color:var(--retest);border-color:var(--retest)}.bug-status.pending{color:var(--muted-foreground);border-color:var(--dim)}.bug-status.reject{color:var(--dim);border-color:var(--dim);border-style:dashed}.op-link{color:var(--run);cursor:pointer;-webkit-user-select:none;user-select:none}.op-link:hover{text-decoration:underline}.op-link.danger{color:var(--fail)}.form-row{display:flex;gap:10px;margin-bottom:10px;align-items:center;flex-wrap:wrap}.form-row label{color:var(--muted-foreground);font-size:calc(12px * var(--fs));flex:0 0 auto}.form-row input[type=text],.form-row select{min-width:200px}.kv{display:flex;gap:8px;margin:4px 0;align-items:baseline;font-size:calc(12px * var(--fs))}.kv .k{color:var(--dim);flex:0 0 auto}.kv .v{font-family:var(--mono);color:var(--text);word-break:break-all;font-size:calc(11px * var(--fs))}.vsplit{cursor:col-resize;position:relative;z-index:5}.vsplit:after{content:"";position:absolute;left:2px;right:2px;top:0;bottom:0;background:var(--border);transition:background .15s}.vsplit:hover:after,.vsplit.drag:after{background:var(--star)}.hsplit{cursor:row-resize;position:relative;z-index:5}.hsplit:after{content:"";position:absolute;top:2px;bottom:2px;left:0;right:0;background:var(--border);transition:background .15s}.hsplit:hover:after,.hsplit.drag:after{background:var(--star)}body.resizing-x{cursor:col-resize;-webkit-user-select:none;user-select:none}body.resizing-y{cursor:row-resize;-webkit-user-select:none;user-select:none}.scroll{overflow-y:auto}pre.log{background:var(--inset-bg);border:1px solid var(--border);border-radius:8px;padding:12px;overflow:auto;white-space:pre-wrap;word-break:break-all;font-family:var(--mono);font-size:calc(12px * var(--fs));color:var(--inset-text);margin:0}@supports (corner-shape: superellipse(1.5)){:root[data-skin=dsh-dark] *,:root[data-skin=dsh-dark] *:before,:root[data-skin=dsh-dark] *:after,:root[data-skin=dsh-light] *,:root[data-skin=dsh-light] *:before,:root[data-skin=dsh-light] *:after{corner-shape:superellipse(1.5)}}}@layer legacy{.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;width:520px;max-width:94vw;max-height:88vh;left:calc(50% - 260px);top:8vh;margin-top:0;padding:18px 20px}.form-col{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.form-col label{color:var(--muted-foreground);font-size:calc(12px * var(--fs))}.form-col textarea{width:100%;resize:vertical;font-family:inherit}.modal .form-row{flex-wrap:nowrap}.modal .form-row label{width:110px;flex:0 0 auto}.modal .form-col label{width:auto}.modal .form-row input[type=text],.modal .form-row input[type=password],.modal .form-row select{flex:1;min-width:0}.dup-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;margin:6px 0;background:var(--err-bg);border:1px solid var(--err-bd);border-radius:7px;font-size:calc(12px * var(--fs))}.dup-item b{color:var(--fail);flex:0 0 auto}.dup-item .dup-owner{color:var(--dim);font-size:calc(11px * var(--fs))}.modal-rz{position:relative;display:flex;flex-direction:column;overflow:hidden}.modal-rz.rz-drag{position:fixed;margin:0;max-width:none!important;max-height:none!important;translate:none!important;transform:none!important;animation:none!important;transition:none!important}.modal-rz .modal-scroll{overflow-y:auto;flex:1;min-height:0}.modal-dir{left:0;right:0;margin-inline:auto}.modal-dir:not(.rz-drag){width:max-content!important;min-width:min(520px,94vw);max-width:94vw!important}.modal-dir>:not(.rz){min-width:0}.modal-dir .modal-scroll{contain:inline-size}.rz{position:absolute;z-index:6;touch-action:none}.rz-n{top:0;left:12px;right:12px;height:6px;cursor:ns-resize}.rz-s{bottom:0;left:12px;right:12px;height:6px;cursor:ns-resize}.rz-e{right:0;top:12px;bottom:12px;width:6px;cursor:ew-resize}.rz-w{left:0;top:12px;bottom:12px;width:6px;cursor:ew-resize}.rz-ne{top:0;right:0;width:14px;height:14px;cursor:nesw-resize}.rz-nw{top:0;left:0;width:14px;height:14px;cursor:nwse-resize}.rz-se{bottom:0;right:0;width:14px;height:14px;cursor:nwse-resize}.rz-sw{bottom:0;left:0;width:14px;height:14px;cursor:nesw-resize}.rz:hover{background:var(--rz-hover);border-radius:4px}.tasks-tab{flex:1;overflow-y:auto;padding:16px;min-height:0}.guide-block{margin-top:10px;border-top:1px solid var(--border);padding-top:10px}.guide-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.guide-head .spacer{flex:1}.guide-read{white-space:pre-wrap;color:var(--muted-foreground);font-size:calc(12px * var(--fs));line-height:1.6;border:1px dashed var(--border);border-radius:6px;padding:8px 10px;background:var(--bg)}.guide-read.empty{color:var(--dim);font-style:italic}.guide-block textarea{width:100%;resize:vertical;font-family:inherit}.tasks-tab .card h3.card-title-row{display:flex;align-items:center;gap:10px}.tasks-tab .card h3.card-title-row .spacer{flex:1}.tl-grid{display:grid;grid-template-columns:minmax(220px,2.2fr) 96px 52px 56px 146px 146px 212px;gap:8px;align-items:center}.tl-head{padding:6px 10px;font-size:calc(11px * var(--fs));color:var(--dim);font-weight:600;border-bottom:1px solid var(--border)}.tl-head .num{text-align:center}.tl-head .th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;gap:2px}.tl-head .th-sort:hover,.tl-head .th-sort.on{color:var(--text)}.tl-head .th-sort svg{color:var(--run)}.tl-row{padding:8px 10px;border-bottom:1px solid var(--border);cursor:pointer;border-left:2px solid transparent}.tl-row:hover{background:var(--row-hover)}.tl-row.open{background:var(--row-open);border-left-color:var(--star)}.tl-row .num{text-align:center}.tl-name{min-width:0}.tl-name .badge{margin-left:6px}.tl-ops{display:flex;gap:6px}.tl-err{color:var(--fail);font-size:calc(11px * var(--fs));margin-top:2px}.tl-detail{background:var(--panel2);border:1px solid var(--border);border-left:2px solid var(--star);border-radius:0 8px 8px 0;padding:12px 14px;margin:4px 0 10px}.tl-detail-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:calc(13px * var(--fs));color:var(--text)}.tl-detail-head .dim{color:var(--dim);font-weight:400}.tl-detail-head .spacer{flex:1}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 18px;margin:4px 0}.detail-err{margin:6px 0;padding:6px 10px;border-radius:6px;font-size:calc(12px * var(--fs));color:var(--fail);background:var(--err-bg);border:1px solid var(--err-bd)}.log{background:var(--inset-bg);border:1px solid var(--border);border-radius:8px;max-height:420px;overflow:auto;padding:10px 12px;font-family:var(--mono);font-size:calc(12px * var(--fs));line-height:1.55;margin:0}.log-line{white-space:pre-wrap;word-break:break-all;color:var(--inset-text)}.log-line.lp-prompt{color:var(--lp-prompt)}.log-line.lp-cmd{color:var(--lp-cmd);font-style:italic}.log-line.lp-dim{color:var(--lp-dim)}.log-line.lp-compact{color:var(--lp-compact)}.log-line.lp-round{color:var(--lp-round);font-weight:600}.log-line.lp-done{color:var(--lp-done);font-weight:600}.log-line.lp-err{color:var(--lp-err)}.log-line.lp-json{color:var(--lp-json)}.log-page{height:100vh;display:flex;flex-direction:column}.log-page-head{display:flex;align-items:center;gap:10px;flex:0 0 auto;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--border)}.log-page-head .t{font-size:calc(13px * var(--fs));font-weight:600}.log-page-head .spacer{flex:1}.log-page-body{flex:1;min-height:0;padding:10px 14px;display:flex}.log-page-body .log{flex:1;max-height:none}.monitor-tab{flex:1;padding:8px 12px 12px;min-height:0;min-width:0;display:flex;flex-direction:column}.monitor-tab .m-head{display:flex;align-items:center;gap:8px;padding:4px 6px 8px;border-bottom:1px solid var(--border);flex:0 0 auto;flex-wrap:wrap}.monitor-tab .m-head .logo{display:flex;align-items:center;gap:6px;font-weight:600;font-size:calc(13px * var(--fs))}.monitor-tab .m-head .spacer{flex:1}.monitor-tab .pulse{width:9px;height:9px;border-radius:50%;background:var(--dim);display:inline-block;vertical-align:-1px}.monitor-tab .pulse.on{background:var(--run);animation:pulse2 1.2s infinite}@keyframes pulse2{50%{opacity:.3}}.monitor-tab .pill{padding:1px 10px;border-radius:9px;border:1px solid var(--border);color:var(--muted-foreground);font-size:calc(11px * var(--fs));white-space:nowrap}.monitor-tab .pill.running{color:var(--run);border-color:var(--run)}.monitor-tab .pill.done{color:var(--pass);border-color:var(--pass)}.monitor-tab .pill.idle{color:var(--dim)}.monitor-tab .pill.warn{color:var(--retest);border-color:var(--retest)}.monitor-tab .spacer{flex:1}.monitor-tab .phases{display:flex;gap:4px;padding:6px 8px;flex:0 0 auto;overflow-x:auto;border-bottom:1px solid var(--border)}.monitor-tab .phases .step{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:6px;color:var(--dim);font-size:calc(11px * var(--fs));border:1px solid var(--border);white-space:nowrap}.monitor-tab .phases .step .no{font-family:var(--mono);font-size:calc(10px * var(--fs))}.monitor-tab .phases .step.done{color:var(--pass);border-color:var(--pass)}.monitor-tab .phases .step.active{color:var(--run);border-color:var(--run);background:var(--step-active-bg)}.monitor-tab .m-main{flex:1;display:grid;grid-template-columns:var(--tree-w, 300px) 6px minmax(0,1fr) 6px var(--side-w, 370px);min-height:0;padding:8px 0;gap:0}.monitor-tab .tree-panel,.monitor-tab .feed-panel,.monitor-tab .side-panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}.monitor-tab .panel-head{padding:8px 12px;border-bottom:1px solid var(--border);font-weight:600;font-size:calc(12px * var(--fs));color:var(--muted-foreground);display:flex;align-items:center;gap:8px;flex:0 0 auto}.monitor-tab .panel-body{flex:1;overflow-y:auto;padding:6px 8px}.monitor-tab .feed-panel{grid-column:3}.monitor-tab .charts{display:grid;grid-template-columns:var(--c1-fr, 1fr) 6px var(--c2-fr, 1.15fr) 6px var(--c3-fr, 1.35fr);gap:0 0;padding:8px 12px 0;flex:0 0 auto;height:176px;grid-auto-rows:1fr}.monitor-tab .charts .vsplit{width:6px}.monitor-tab .chart{background:linear-gradient(180deg,var(--panel2) 0%,var(--panel) 100%);border:1px solid var(--border);border-radius:10px;padding:9px 12px 8px;min-height:0;overflow:hidden;display:flex;flex-direction:column;min-width:0}.monitor-tab .feed-tools{display:inline-flex;gap:4px}.monitor-tab .feed{flex:1;overflow-y:auto;padding:6px 12px 12px}.monitor-tab .side-panel{padding:10px 12px 12px;overflow-y:auto}.monitor-tab .statusbar{display:flex;align-items:center;gap:8px;padding:4px 8px;flex:0 0 auto;border-top:1px solid var(--border);font-size:calc(11.5px * var(--fs));color:var(--muted-foreground)}.monitor-tab .prio-bar{flex:0 0 auto;padding:6px 10px 7px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.monitor-tab .prio-title{font-size:calc(10px * var(--fs));color:var(--dim);letter-spacing:.04em}.monitor-tab .prio-row{display:flex;align-items:center;gap:8px;font-size:calc(11px * var(--fs));min-width:0}.monitor-tab .prio-level{font-family:var(--mono);font-size:calc(10.5px * var(--fs));font-weight:600;color:var(--text);flex:0 0 auto}.monitor-tab .prio-label{width:60px;flex:0 0 auto;color:var(--muted-foreground);font-size:calc(10.5px * var(--fs));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monitor-tab .prio-track{flex:0 0 120px;height:8px;border-radius:4px;background:var(--bg);overflow:hidden}.monitor-tab .prio-in{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--seg-pass-1),var(--seg-pass-2));transition:width .3s}.monitor-tab .prio-num{font-family:var(--mono);font-size:calc(10.5px * var(--fs));color:var(--text);flex:0 0 auto}.monitor-tab .prio-num em{font-style:normal;color:var(--dim)}.monitor-tab .prio-chips{display:inline-flex;gap:4px;flex-wrap:wrap;min-width:0}.monitor-tab .pchip{display:inline-flex;align-items:center;padding:0 6px;border-radius:8px;border:1px solid var(--border);font-size:calc(10px * var(--fs));color:var(--muted-foreground);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monitor-tab .pchip.ok{color:var(--pass);border-color:var(--pass)}.monitor-tab .lib-stats{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap}.monitor-tab .chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:8px;border:1px solid var(--border);font-size:calc(10.5px * var(--fs));color:var(--muted-foreground);font-weight:400}.monitor-tab .chip .dot{width:7px;height:7px;border-radius:50%}.monitor-tab .chip.fchip{cursor:pointer;-webkit-user-select:none;user-select:none}.monitor-tab .chip.fchip.on{color:var(--run);border-color:var(--run)}.monitor-tab .panel-body .empty{color:var(--dim);text-align:center;margin-top:40px;font-size:calc(12px * var(--fs))}.monitor-tab .case{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:5px;cursor:pointer;font-size:calc(12px * var(--fs));border:1px solid transparent}.monitor-tab .case:hover{background:var(--panel2)}.monitor-tab .case.selected{background:var(--panel2);border-color:var(--run)}.monitor-tab .case.running{background:var(--case-running-bg);border-color:var(--run)}.monitor-tab .case .dot{width:7px;height:7px;border-radius:50%;background:var(--dim);flex:0 0 auto}.monitor-tab .case .dot.pass{background:var(--pass)}.monitor-tab .case .dot.fail{background:var(--fail)}.monitor-tab .case .dot.retest{background:var(--retest)}.monitor-tab .case .dot.pending{background:var(--dim);opacity:.5}.monitor-tab .case .cid{font-family:var(--mono);font-size:calc(11px * var(--fs));color:var(--dim);flex:0 0 auto}.monitor-tab .case .cname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monitor-tab .chart h4{margin:0 0 8px;font-size:calc(11.5px * var(--fs));color:var(--text);font-weight:600;display:flex;gap:8px;align-items:baseline;letter-spacing:.02em}.monitor-tab .chart h4 .sub{color:var(--dim);font-weight:400;font-size:calc(10px * var(--fs));margin-left:auto;white-space:nowrap}.monitor-tab .chart h4 .sub b{font-family:var(--mono);font-weight:600}.monitor-tab .hl-pass{color:var(--pass)}.monitor-tab .chart .cbody{flex:1;display:flex;align-items:center;min-height:0;min-width:0}.monitor-tab .chart .empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--dim);font-size:calc(11px * var(--fs))}.monitor-tab .donut{width:92px;height:92px;flex:0 0 auto;filter:drop-shadow(0 0 6px var(--donut-shadow))}.monitor-tab .donut .dnum{font-size:calc(12.5px * var(--fs));font-weight:700;fill:var(--text);font-family:var(--mono)}.monitor-tab .donut .dsub{font-size:calc(6px * var(--fs));fill:var(--dim)}.monitor-tab .dlegend{display:flex;flex-direction:column;gap:4px;margin-left:14px;min-width:0;flex:1}.monitor-tab .dlegend .li{display:flex;align-items:baseline;gap:6px;font-size:calc(11px * var(--fs));color:var(--muted-foreground)}.monitor-tab .dlegend .sw{width:8px;height:8px;border-radius:3px;flex:0 0 auto;align-self:center}.monitor-tab .dlegend .lm{color:var(--text);font-family:var(--mono);font-weight:600;margin-left:auto}.monitor-tab .dlegend .pct{color:var(--dim);font-size:calc(10px * var(--fs));width:34px;text-align:right}.monitor-tab .mbars{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0;justify-content:center;overflow-y:auto}.monitor-tab .mbar-row{display:flex;align-items:center;gap:8px;font-size:calc(11px * var(--fs))}.monitor-tab .mbar-label{width:84px;flex:0 0 auto;color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(10.5px * var(--fs))}.monitor-tab .mbar-track{flex:1;height:12px;border-radius:6px;background:var(--bg);overflow:hidden;display:flex;padding:1px;min-width:0}.monitor-tab .mbar-inner{display:flex;gap:2px;width:100%}.monitor-tab .mbar-inner .seg{height:100%;border-radius:4px;min-width:2px}.monitor-tab .seg.pass{background:linear-gradient(90deg,var(--seg-pass-1),var(--seg-pass-2))}.monitor-tab .seg.fail{background:linear-gradient(90deg,var(--seg-fail-1),var(--seg-fail-2))}.monitor-tab .seg.retest{background:linear-gradient(90deg,var(--seg-retest-1),var(--seg-retest-2))}.monitor-tab .seg.pending{background:var(--dim);opacity:.35}.monitor-tab .mbar-num{font-family:var(--mono);font-size:calc(10.5px * var(--fs));color:var(--muted-foreground);flex:0 0 auto;letter-spacing:-.02em}.monitor-tab .mbar-num em{font-style:normal;color:var(--dim)}.monitor-tab .mbar-num .pctn{font-style:normal;color:var(--dim);font-size:calc(9px * var(--fs));margin-left:3px}.monitor-tab .mlegend{display:flex;gap:10px;font-size:calc(10px * var(--fs));color:var(--dim);margin-top:8px;padding-top:6px;border-top:1px solid rgba(139,148,158,.08)}.monitor-tab .mlegend .sw{display:inline-block;width:8px;height:8px;border-radius:3px;margin-right:4px;vertical-align:-1px}.monitor-tab .chart h4 .bswitch{display:inline-flex;gap:2px;margin-left:6px;align-self:center}.monitor-tab .chart h4 .swbtn{cursor:pointer;color:var(--dim);font-size:calc(12px * var(--fs));line-height:1;padding:1px 4px;border-radius:4px;-webkit-user-select:none;user-select:none}.monitor-tab .chart h4 .swbtn:hover{color:var(--text);background:var(--panel2)}.monitor-tab .chart .cwrap{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0}.monitor-tab .trend{width:100%;height:100%}.monitor-tab .trend .t-axis{stroke:var(--chart-axis);stroke-width:1}.monitor-tab .trend .t-grid{stroke:var(--chart-grid);stroke-width:1;stroke-dasharray:3 4}.monitor-tab .trend .t-ytick{font-size:calc(6.5px * var(--fs));fill:var(--dim);font-family:var(--mono)}.monitor-tab .trend .t-val{font-size:calc(8px * var(--fs));fill:var(--text);font-family:var(--mono);font-weight:600}.monitor-tab .trend .t-bug{font-size:calc(6.5px * var(--fs));fill:var(--retest);font-family:var(--mono)}.monitor-tab .trend .t-lab{font-size:calc(7.5px * var(--fs));fill:var(--dim);font-family:var(--mono)}.monitor-tab .bbar{height:100%;border-radius:4px;min-width:2px}.monitor-tab .funnel{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0;justify-content:center}.monitor-tab .frow{display:flex;align-items:center;gap:8px;font-size:calc(11px * var(--fs))}.monitor-tab .frow .fl{width:40px;flex:0 0 auto;color:var(--muted-foreground);font-size:calc(10.5px * var(--fs))}.monitor-tab .frow .ftrack{flex:1;height:12px;border-radius:6px;background:var(--bg);overflow:hidden;padding:1px;min-width:0}.monitor-tab .frow .fbar{height:100%;border-radius:4px;min-width:2px;background:linear-gradient(90deg,var(--seg-pass-1),var(--seg-pass-2))}.monitor-tab .frow.fixbar .fbar{background:linear-gradient(90deg,var(--seg-fail-1),var(--fix))}.monitor-tab .frow .fr{width:64px;flex:0 0 auto;font-family:var(--mono);font-size:calc(10px * var(--fs));color:var(--dim);text-align:right;letter-spacing:-.02em}.monitor-tab .ev{display:flex;align-items:baseline;gap:8px;padding:5px 8px;margin:1px 0;border-radius:6px;font-size:calc(12px * var(--fs));border-left:2px solid transparent;background:var(--panel2)}.monitor-tab .ev .ts{font-family:var(--mono);font-size:calc(10.5px * var(--fs));color:var(--dim);flex:0 0 auto}.monitor-tab .ev .badge{padding:0 7px;border-radius:8px;font-size:calc(10.5px * var(--fs));color:var(--muted-foreground);border:1px solid var(--border);flex:0 0 auto}.monitor-tab .ev .cid{font-family:var(--mono);font-size:calc(11px * var(--fs));color:var(--dim);flex:0 0 auto}.monitor-tab .ev .msg{color:var(--text);word-break:break-all}.monitor-tab .ev.ev-round,.monitor-tab .ev.ev-phase{border-left-color:var(--run)}.monitor-tab .ev.ev-pass{border-left-color:var(--pass)}.monitor-tab .ev.ev-fail,.monitor-tab .ev.ev-reject{border-left-color:var(--fail)}.monitor-tab .ev.ev-bug{border-left-color:var(--retest)}.monitor-tab .ev.ev-fix{border-left-color:var(--fix)}.monitor-tab .ev details{margin-top:4px}.monitor-tab .ev details summary{cursor:pointer;color:var(--run);font-size:calc(11px * var(--fs))}.monitor-tab .ev pre{background:var(--inset-bg);border-radius:6px;padding:8px;margin:4px 0 0;overflow:auto;white-space:pre-wrap;word-break:break-all;font-family:var(--mono);font-size:calc(10.5px * var(--fs));color:var(--inset-text);max-height:200px}.monitor-tab .ev .plabel{font-size:calc(10px * var(--fs));color:var(--dim);margin-top:4px}.monitor-tab #feed-empty{color:var(--dim);text-align:center;margin-top:40px;font-size:calc(12px * var(--fs));line-height:1.8}.monitor-tab .side-panel h3{margin:0 0 8px;font-size:calc(13px * var(--fs));color:var(--muted-foreground)}.monitor-tab .side-panel .kv{display:flex;gap:8px;margin:4px 0;align-items:baseline;font-size:calc(12px * var(--fs))}.monitor-tab .side-panel .kv .k{color:var(--dim);flex:0 0 auto}.monitor-tab .side-panel .kv .v{word-break:break-all}.monitor-tab .badge-st{padding:0 8px;border-radius:8px;font-size:calc(11px * var(--fs));border:1px solid var(--border);color:var(--muted-foreground)}.monitor-tab .badge-st.pass{color:var(--pass);border-color:var(--pass)}.monitor-tab .badge-st.run{color:var(--run);border-color:var(--run)}.monitor-tab .badge-st.fail{color:var(--fail);border-color:var(--fail)}.monitor-tab .badge-st.retest{color:var(--retest);border-color:var(--retest)}.monitor-tab .side-panel .plabel{font-size:calc(10px * var(--fs));color:var(--dim);margin-top:8px}.monitor-tab .side-panel pre{background:var(--inset-bg);border-radius:6px;padding:8px;margin:4px 0 0;overflow:auto;white-space:pre-wrap;word-break:break-all;font-family:var(--mono);font-size:calc(10.5px * var(--fs));color:var(--inset-text)}.monitor-tab details[data-path] summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:5px;padding:3px 6px;border-radius:5px;font-size:calc(12px * var(--fs));color:var(--muted-foreground)}.monitor-tab details[data-path] summary::-webkit-details-marker{display:none}.monitor-tab details[data-path] summary:hover{background:var(--panel2)}.monitor-tab details[data-path]>summary>.arrow{display:inline-block;font-size:calc(9px * var(--fs));color:var(--dim);transition:transform .15s}.monitor-tab details[data-path][open]>summary>.arrow{transform:rotate(90deg)}.monitor-tab details[data-path] .fcount{font-family:var(--mono);font-size:calc(10px * var(--fs));color:var(--dim)}.monitor-tab details[data-path] .fdesc{font-size:calc(10px * var(--fs));color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monitor-tab .folder-body{margin-left:12px}.monitor-tab .tree-panel .panel-head{flex-wrap:wrap;row-gap:2px}.monitor-tab .tree-panel .panel-head>*{white-space:nowrap}.monitor-tab .tree-tools{display:flex;align-items:center;gap:4px;margin-left:4px}.monitor-tab .tree-tools .tbtn{font-size:calc(10.5px * var(--fs));color:var(--muted-foreground);background:var(--panel2);border:1px solid var(--border);border-radius:5px;padding:2px 7px;cursor:pointer;white-space:nowrap;line-height:1.4}.monitor-tab .tree-tools .tbtn:hover{color:var(--text);border-color:var(--dim)}.bugs-tab{flex:1;padding:0;min-height:0;display:flex;flex-direction:column}.bugs-tab .bugwrap{display:grid;grid-template-columns:var(--bugw, 400px) 6px minmax(0,1fr);flex:1;min-height:0;padding:12px 16px 16px}.bugs-tab .bug-left{background:var(--panel);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;min-height:0}.bugs-tab .bug-head{padding:8px 12px;border-bottom:1px solid var(--border);font-weight:600;font-size:calc(12px * var(--fs));color:var(--muted-foreground);display:flex;gap:8px;align-items:baseline}.bugs-tab .bug-list{flex:1;overflow-y:auto;padding:6px 8px}.bugs-tab .bugitem{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:6px 0;background:var(--panel2);cursor:pointer}.bugs-tab .bugitem:hover{border-color:var(--run)}.bugs-tab .bugitem.sel{border-color:var(--run);background:var(--panel2)}.bugs-tab .bugitem.history{opacity:.5}.bugs-tab .bugitem.history:hover,.bugs-tab .bugitem.history.sel{opacity:.85}.bugs-tab .bugitem .bt{font-weight:600;margin-bottom:4px;word-break:break-all;font-size:calc(12px * var(--fs))}.bugs-tab .bugitem .bmeta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;color:var(--dim);font-size:calc(11px * var(--fs))}.bugs-tab .bug-split{width:6px}.sets-wrap{position:relative}.sets-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.sets-menu{position:absolute;right:0;bottom:calc(100% + 6px);z-index:50;min-width:152px;padding:4px;display:flex;flex-direction:column;gap:1px;background:var(--panel2);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-menu)}.sets-menu button{display:flex;align-items:center;gap:7px;width:100%;padding:6px 9px;border:none;border-radius:7px;background:transparent;color:var(--text);font-size:calc(12px * var(--fs));text-align:left;white-space:nowrap;cursor:pointer}.sets-menu button:hover{background:var(--row-hover)}.sets-menu button:focus-visible{outline:1px solid var(--run);outline-offset:-1px}.sets-menu button svg{width:13px;height:13px;flex:none}.sets-menu button.danger{color:var(--fail)}.sets-menu.drop-down{bottom:auto;top:calc(100% + 6px);max-height:min(320px,60vh);overflow-y:auto}.sets-page-side{display:flex;flex-direction:column;width:186px;flex:none;background:var(--panel)}.sets-page-nav{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;padding:10px;overflow-y:auto}.sets-page-nav button{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:8px;background:transparent;color:var(--text);font-size:calc(13px * var(--fs));text-align:left;white-space:nowrap;cursor:pointer}.sets-page-nav button svg{width:14px;height:14px;flex:none;color:var(--muted-foreground)}.sets-page-nav button:hover{background:var(--row-hover)}.sets-page-nav button.active{background:var(--row-open);color:var(--tab-active);font-weight:600}.sets-page-nav button.active svg{color:var(--star-text)}.sets-page-foot{flex:none;padding:8px 10px;border-top:1px solid var(--border)}.sets-page-foot button{width:100%;justify-content:flex-start}.skin-pick{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text);font-size:calc(13px * var(--fs));text-align:left;cursor:pointer;transition:border-color .15s}.skin-pick:hover{border-color:var(--rz-hover)}.skin-pick.active{border-color:var(--star)}.skin-pick .sw{display:flex;gap:3px;flex:none}.skin-pick .sw i{display:block;width:13px;height:20px;border-radius:4px}.skin-pick-wide{grid-column:1 / -1;align-items:center}.skin-pick-txt{display:flex;flex-direction:column;gap:1px;min-width:0}.skin-pick-txt .sub{color:var(--muted-foreground);font-size:calc(11px * var(--fs))}.fs-pick{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text);font-size:calc(12px * var(--fs));text-align:left;cursor:pointer;transition:border-color .15s}.fs-pick:hover{border-color:var(--rz-hover)}.fs-pick.active{border-color:var(--star)}.fs-pick .sample{flex:none;font-weight:600;line-height:1}.br-pick{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text);font-size:calc(12px * var(--fs));text-align:left;cursor:pointer;transition:border-color .15s}.br-pick:hover{border-color:var(--rz-hover)}.br-pick.active{border-color:var(--star)}.br-pick .sample{flex:none;font-weight:600;line-height:1;font-size:calc(15px * var(--fs))}.br-pick[data-br=normal] .sample{color:var(--text-hi)}.br-pick[data-br=dim] .sample{color:var(--text-mid)}.br-pick[data-br=dimmer] .sample{color:var(--text-lo)}.br-pick-txt{display:flex;flex-direction:column;gap:1px;min-width:0}.br-pick-txt .sub{color:var(--dim);font-size:calc(11px * var(--fs))}.proj-item.proj-dragging{opacity:.55;outline:1px dashed var(--star);outline-offset:-1px}body.projlist-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.side-split{width:6px;flex:none}.bugs-tab .bug-right{background:var(--panel);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;min-height:0;overflow:hidden}.bugs-tab .bug-content{flex:1;overflow:auto;padding:12px 16px}.bugs-tab .bug-content.fix-mode{overflow:hidden;display:flex;flex-direction:column}.bugs-tab .bug-content .head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.bugs-tab .bug-content .head h3{margin:0;font-size:calc(14px * var(--fs));flex:1;min-width:0;word-break:break-all}.bugs-tab .bug-content .ops{display:flex;gap:8px;margin:6px 0 12px;flex-wrap:wrap;align-items:center}.bugs-tab .bug-content .mut{color:var(--dim);font-size:calc(11px * var(--fs));margin-bottom:6px}.bugs-tab .bug-empty{color:var(--dim);text-align:center;margin-top:60px}.bugs-tab .sec-title{font-weight:600;color:var(--muted-foreground);font-size:calc(12px * var(--fs));margin:8px 0 4px}.bugs-tab .sub-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:2px 0 10px}.bugs-tab .sub-tab{padding:5px 12px;cursor:pointer;color:var(--muted-foreground);border:1px solid transparent;border-bottom:none;border-radius:6px 6px 0 0;font-size:calc(12px * var(--fs));-webkit-user-select:none;user-select:none}.bugs-tab .sub-tab.on{background:var(--panel2);border-color:var(--border);color:var(--text);font-weight:600}.bugs-tab .fix-panel{display:flex;flex-direction:column;min-height:0;flex:1}.bugs-tab .fix-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px;padding:8px 10px;background:var(--panel2);border:1px solid var(--border);border-radius:8px}.bugs-tab .fix-controls label{color:var(--muted-foreground);font-size:calc(11px * var(--fs))}.bugs-tab .fix-controls input[type=text]{width:150px;padding:4px 8px;font-size:calc(12px * var(--fs))}.bugs-tab .fix-controls select{padding:4px 8px;font-size:calc(12px * var(--fs))}.bugs-tab .fix-status{font-size:calc(11px * var(--fs));color:var(--dim)}.bugs-tab .fix-opts{display:flex;gap:16px;align-items:center;margin:-2px 0 8px;color:var(--muted-foreground);font-size:calc(12px * var(--fs));flex-wrap:wrap}.bugs-tab .fix-opts .hint{margin-left:auto}.md-body{font-size:calc(12.5px * var(--fs));line-height:1.7}.md-body .md-img{max-width:100%;border-radius:6px;margin:4px 0;display:block}.md-body h1{font-size:calc(17px * var(--fs));margin:12px 0 8px}.md-body h2{font-size:calc(15px * var(--fs));margin:12px 0 6px;border-bottom:1px solid var(--border);padding-bottom:4px}.md-body h3,.md-body h4{font-size:calc(13px * var(--fs));margin:10px 0 4px}.md-body p{margin:5px 0}.md-body table{margin:8px 0;font-size:calc(12px * var(--fs));border-collapse:collapse}.md-body .md-table-wrap{margin:8px 0;overflow-x:auto;max-width:100%}.md-body .md-table-wrap>table{margin:0}.md-body th,.md-body td{padding:4px 8px;border-bottom:1px solid var(--border);text-align:left}.md-body th{color:var(--muted-foreground);font-weight:600;white-space:nowrap}.md-body pre{background:var(--inset-bg);border:1px solid var(--border);border-radius:6px;padding:10px;overflow:auto;white-space:pre-wrap;word-break:break-all;font-family:var(--mono);font-size:calc(11.5px * var(--fs));color:var(--inset-text);margin:6px 0}.md-body code{background:var(--inset-bg);border:1px solid var(--border);border-radius:4px;padding:0 4px;font-family:var(--mono);font-size:calc(11px * var(--fs));color:var(--inset-text)}.md-body pre code{border:none;background:transparent;padding:0;font-size:inherit;color:inherit}.md-body hr{border:none;border-top:1px solid var(--border);margin:12px 0}.md-body ul{margin:5px 0;padding-left:20px;list-style:disc}.md-body ol{margin:5px 0;padding-left:22px;list-style:decimal}.md-body li{margin:2px 0}.md-body blockquote{border-left:3px solid var(--border);margin:6px 0;padding:2px 10px;color:var(--muted-foreground)}.board-tab{flex:1;min-height:0;display:flex;flex-direction:column}.board-cols{flex:1;min-height:0;display:flex;gap:10px;padding:10px;overflow-x:auto}.board-col{flex:1 1 0;min-width:220px;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;background:var(--card)}.board-col-head{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:calc(13px * var(--fs));font-weight:600}.board-col-count{margin-left:auto;font-size:calc(11px * var(--fs));color:var(--dim);border:1px solid var(--border);border-radius:999px;padding:0 7px}.board-col-body{flex:1;min-height:0;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:8px}.board-col.dragover{outline:2px dashed var(--run);outline-offset:-2px}.board-card{position:relative;border:1px solid var(--border);border-radius:8px;padding:8px 8px 8px 12px;background:var(--background);cursor:pointer;touch-action:none}.board-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px 0 0 3px;background:var(--dim)}.board-card.col-todo:before{background:var(--dim)}.board-card.col-doing:before{background:var(--run)}.board-card.col-blocked:before{background:var(--fail)}.board-card.col-review:before{background:var(--retest)}.board-card.col-done:before{background:var(--pass)}.board-card.col-done{opacity:.55}.board-card.col-done:hover{opacity:.85}.board-card-title{font-size:calc(13px * var(--fs));font-weight:600;word-break:break-all;cursor:text;line-height:1.5;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}.board-card-title:after{content:" ✏";opacity:0;transition:opacity .15s;font-weight:400}.board-card-title:hover:after{opacity:.45}.board-card-title-empty{color:var(--dim);font-style:italic;font-weight:400}.board-card-desc{margin-top:4px;font-size:calc(12px * var(--fs));color:var(--dim);line-height:1.5;word-break:break-all;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.board-card-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.board-card-id{font-family:var(--mono);font-size:calc(11px * var(--fs));color:var(--dim);align-self:center}.board-card-new{display:inline-flex;align-items:center;padding:0 8px;border-radius:8px;font-size:calc(11px * var(--fs));font-weight:600;line-height:16px;color:var(--logo-fg);background:var(--star)}.board-card-ops{display:flex;gap:4px;row-gap:4px;margin-top:6px;flex-wrap:wrap}.board-oplabel{white-space:nowrap}.board-opwide{display:inline-flex;align-items:center}.board-opicon{display:none}.board-ops-measure .board-card-ops{flex-wrap:nowrap}.board-card-ops .board-opbtn{transition-property:color,background-color,border-color,box-shadow!important}.board-card-ops.is-compact .board-oplabel,.board-card-ops.is-compact .board-opwide{display:none}.board-card-ops.is-compact .board-opicon{display:inline-flex;align-items:center}.board-card-ops.is-compact .board-opbtn{padding-left:6px!important;padding-right:6px!important;gap:0!important}.board-col-head{flex-wrap:wrap;row-gap:4px}.board-col-label{white-space:nowrap;flex:0 0 auto}.board-split{display:inline-flex;align-items:center;gap:4px}.board-card-err{margin-top:4px;font-size:calc(11px * var(--fs));color:var(--fail)}.board-card.drag-gap{visibility:hidden}.board-ghost{cursor:grabbing}.board-runzone{display:flex;align-items:center;gap:8px;padding:0 2px;color:var(--dim);font-size:calc(10.5px * var(--fs));white-space:nowrap}.board-runzone:before,.board-runzone:after{content:"";flex:1;border-top:1px dashed var(--border)}.board-col-sort{margin-left:4px;font-size:calc(11px * var(--fs));color:var(--dim);border:1px solid var(--border);border-radius:6px;background:var(--background);padding:0 2px;height:20px;cursor:pointer}.board-search{width:200px;height:26px;font-size:calc(12px * var(--fs))}.board-add{display:flex;gap:6px;padding:8px;border-top:1px dashed var(--border);align-items:flex-end}.board-task{position:relative;border:1px dashed var(--border);border-radius:8px;padding:8px;background:var(--background)}.board-task.has-session{cursor:pointer}.board-task.has-session:hover{border-color:var(--run)}.tabbar-trigger{position:relative}.tabbar-hide{position:absolute;top:50%;right:3px;transform:translateY(-50%);display:none;align-items:center;justify-content:center;width:15px;height:15px;border-radius:4px;color:var(--dim)}.tabbar-trigger:hover .tabbar-hide{display:flex}.tabbar-hide:hover{background:var(--row-hover);color:var(--foreground)}body.tabbar-dragging,body.tabbar-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}.tabbar-trigger.tabbar-dragging{opacity:.45}.load-item{display:block;width:100%;text-align:left;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--background)}.load-item:hover{border-color:var(--run)}.load-item.on{border-color:var(--run);box-shadow:inset 0 0 0 1px var(--run)}.lp-marks{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.lp-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;border:1px solid var(--border);color:var(--dim);font-size:calc(11px * var(--fs));white-space:nowrap}.lp-chip.sm{padding:0 6px;font-size:calc(10px * var(--fs))}.lp-chip.on{border-color:var(--run);color:var(--run)}.lp-chip.off{border-color:var(--fail);color:var(--fail)}.lp-dash{display:flex;flex-direction:column;gap:10px}.lp-warn{color:var(--retest)}.lp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lp-panel{border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--background);min-width:0}.lp-panel.full{grid-column:1 / -1}.lp-panel-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.lp-panel-head h4{margin:0;font-size:calc(12.5px * var(--fs));font-weight:600}.lp-svg{width:100%;height:auto;display:block}.lp-empty{padding:16px 4px;text-align:center}.lp-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:calc(11px * var(--fs));color:var(--dim);margin-top:2px}.lp-legend.col{flex-direction:column;gap:3px;margin-top:0}.lp-legend span{display:inline-flex;align-items:center;gap:4px}.lp-legend i{width:9px;height:9px;border-radius:2px;display:inline-block}.lp-legend b{color:var(--foreground);font-weight:600}.lp-legend em{color:var(--dim);font-style:normal;margin-left:4px}.lp-bars{display:flex;flex-direction:column;gap:4px}.lp-bar-row{display:grid;grid-template-columns:96px 1fr 64px;align-items:center;gap:8px;font-size:calc(11.5px * var(--fs))}.lp-bar-row .lb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim)}.lp-bar-row .lt{background:var(--inset-bg);border-radius:4px;height:12px;display:block}.lp-bar-row .lt i{display:block;height:100%;border-radius:4px}.lp-bar-row .lv{text-align:right;font-family:var(--mono)}.lp-donut{display:flex;align-items:center;gap:12px}.lp-donut-svg{width:128px;flex:none}.lp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.lp-stat{border:1px solid var(--border);border-radius:8px;padding:6px 10px;background:var(--inset-bg)}.lp-stat .k{font-size:calc(11px * var(--fs));color:var(--dim)}.lp-stat .v{font-size:calc(18px * var(--fs));font-family:var(--mono)}.lp-stat .u{font-size:calc(11px * var(--fs));color:var(--dim);margin-left:3px}.lp-table-wrap{overflow-x:auto}.lp-table{width:100%;border-collapse:collapse;font-size:calc(11.5px * var(--fs))}.lp-table th,.lp-table td{padding:4px 8px;border-bottom:1px solid var(--border)}.lp-table th{color:var(--dim);font-weight:600;text-align:left}.lp-plan{display:flex;flex-direction:column;gap:12px}.lp-doc{display:grid;grid-template-columns:minmax(0,1fr);gap:0;align-items:start}.lp-doc.has-rail{grid-template-columns:172px minmax(0,1fr);gap:20px}.lp-doc-rail{position:sticky;top:0;padding-left:10px;border-left:1px solid var(--border)}.lp-doc-rail-t{font-family:var(--mono);font-size:calc(10px * var(--fs));letter-spacing:.16em;color:var(--star-text);margin:2px 0 6px 6px}.lp-doc-rail ol{list-style:none;margin:0;padding:0}.lp-doc-rail li{margin:1px 0}.lp-doc-rail a{display:grid;grid-template-columns:17px minmax(0,1fr);gap:6px;align-items:baseline;padding:3px 6px;border-radius:6px;color:var(--dim);font-size:calc(11.5px * var(--fs));line-height:1.5;text-decoration:none;transition:background .18s ease,color .18s ease}.lp-doc-rail a:hover{background:var(--row-hover);color:var(--text);text-decoration:none}.lp-doc-rail a.on{background:var(--row-open);color:var(--text)}.lp-doc-rail a .no{font-family:var(--mono);color:var(--star-text);font-size:calc(11px * var(--fs))}.lp-doc-rail a .t{overflow-wrap:anywhere}.lp-doc-rail li.sub a{padding-left:14px}.lp-doc-rail li.sub a .no{color:var(--dim)}.lp-doc-main{min-width:0;border:1px solid var(--border);border-radius:12px;background:var(--background);overflow:hidden}.lp-doc-head{position:relative;padding:14px 20px 13px;border-bottom:1px solid var(--border)}.lp-doc-head:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(var(--card-bd) 1px,transparent 1px),linear-gradient(90deg,var(--card-bd) 1px,transparent 1px);background-size:26px 26px;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.55),transparent 72%);mask-image:linear-gradient(to bottom,rgba(0,0,0,.55),transparent 72%)}.lp-doc-head>*{position:relative}.lp-doc-eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.lp-doc-kind{font-family:var(--mono);font-size:calc(10.5px * var(--fs));letter-spacing:.14em;color:var(--star-text)}.lp-doc-chips{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}.lp-doc-title{margin:7px 0 0;font-family:var(--ff-serif);font-weight:700;font-size:calc(19px * var(--fs));line-height:1.38;letter-spacing:.01em}.lp-doc-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 24px;margin:11px 0 0}.lp-doc-meta-row{display:grid;grid-template-columns:74px minmax(0,1fr);gap:10px;padding:4px 0;border-top:1px dashed var(--border)}.lp-doc-meta dt{color:var(--dim);font-size:calc(11.5px * var(--fs))}.lp-doc-meta dd{margin:0;font-size:calc(12px * var(--fs));line-height:1.6;overflow-wrap:anywhere}.lp-doc-body{padding:6px 22px 24px;min-width:0}.lp-doc-body p,.lp-doc-body li,.lp-doc-body dd{overflow-wrap:anywhere}.lp-doc-body th,.lp-doc-body td{overflow-wrap:break-word}.lp-doc-body.md-body{font-size:calc(13px * var(--fs));line-height:1.78}.lp-doc-body h2{font-family:var(--ff-serif);font-size:calc(16px * var(--fs));font-weight:700;margin:26px 0 10px;padding-bottom:6px}.lp-doc-body h3{font-family:var(--ff-serif);font-size:calc(14px * var(--fs));font-weight:700;margin:18px 0 7px}.lp-doc-body h1,.lp-doc-body h2,.lp-doc-body h3,.lp-doc-body h4{scroll-margin-top:10px}.lp-doc-body p{margin:8px 0}.md-sec-no{font-family:var(--mono);font-size:.84em;color:var(--star-text);margin-right:.5em;letter-spacing:0}.lp-doc-body li::marker{color:var(--star-text)}.lp-doc-body ol{padding-left:26px}.lp-doc-body ol li::marker{font-family:var(--mono);font-size:calc(11.5px * var(--fs))}.lp-doc-body a{color:var(--run);text-decoration:none;border-bottom:1px solid transparent}.lp-doc-body a:hover{text-decoration:none;border-bottom-color:currentColor}.lp-doc-body .md-table-wrap{margin:12px 0;overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.lp-doc-body .md-table-wrap>table{margin:0;min-width:100%}.lp-doc-body th{background:var(--inset-bg);padding:8px 12px;font-size:calc(11.5px * var(--fs));letter-spacing:.03em;border-bottom:1px solid var(--border)}.lp-doc-body td{padding:8px 12px;font-variant-numeric:tabular-nums;vertical-align:top}.lp-doc-body th:first-child,.lp-doc-body td:first-child{word-break:keep-all}.lp-doc-body tbody tr:last-child td{border-bottom:none}.lp-doc-body tbody tr:hover{background:var(--row-hover)}.lp-doc-body code{font-size:.9em}.lp-doc-body pre{margin:12px 0;white-space:pre;word-break:normal;border-radius:8px}.lp-doc-body blockquote{border-left:2px solid var(--star);background:var(--inset-bg);border-radius:0 8px 8px 0;margin:12px 0;padding:9px 14px}.lp-doc-body blockquote p{margin:3px 0}.lp-doc-body hr{border:none;height:1px;margin:22px 0;background:linear-gradient(90deg,var(--star),transparent 62%)}.lp-empty-state{padding:18px 2px 6px;max-width:640px}.lp-empty-t{font-family:var(--ff-serif);font-size:calc(15px * var(--fs));font-weight:700;margin-bottom:6px}.lp-empty-state p{margin:6px 0;color:var(--muted-foreground);font-size:calc(12.5px * var(--fs));line-height:1.8}.lp-empty-state code{font-family:var(--mono);background:var(--inset-bg);border:1px solid var(--border);border-radius:4px;padding:0 4px;color:var(--inset-text)}.lp-doc-appendix{display:grid;gap:8px}.lp-fold{border:1px solid var(--border);border-radius:8px;padding:7px 12px;background:var(--background)}.lp-fold>summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}.lp-fold>summary::-webkit-details-marker{display:none}.lp-fold>summary:before{content:"▸";color:var(--star-text);font-size:calc(11px * var(--fs));transition:transform .16s ease}.lp-fold[open]>summary:before{transform:rotate(90deg)}.lp-fold-t{font-size:calc(12.5px * var(--fs));color:var(--text);font-weight:600}.lp-fold-n{font-family:var(--mono);font-size:calc(11px * var(--fs));color:var(--dim)}.lp-fold-body{margin-top:9px}.lp-code{margin:0;max-height:380px;overflow:auto;background:var(--inset-bg);border:1px solid var(--border);border-radius:6px;padding:9px 11px;font-family:var(--mono);font-size:calc(11.5px * var(--fs));color:var(--inset-text);white-space:pre}.lp-tips{margin:0;padding-left:18px;font-size:calc(12px * var(--fs));line-height:1.8;color:var(--dim);list-style:disc}.lp-tips code{font-family:var(--mono);color:var(--inset-text)}.lp-doc-rail a:focus-visible{outline:2px solid var(--run);outline-offset:1px}.lp-fold>summary:focus-visible{outline:2px solid var(--run);outline-offset:2px;border-radius:6px}@keyframes lp-doc-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: no-preference){.lp-doc-head{animation:lp-doc-rise .26s ease-out both}.lp-doc-body{animation:lp-doc-rise .32s ease-out .06s both}}@media (max-width: 1400px){.lp-doc.has-rail{grid-template-columns:minmax(0,1fr);gap:0}.lp-doc-rail{display:none}}.lp-log{display:flex;flex-direction:column;gap:10px}.lp-logbox{max-height:360px}.lp-report{max-height:460px;overflow:auto}.lp-hatch-frame{width:100%;height:420px;border:1px solid var(--border);border-radius:8px;background:var(--inset-bg)}.board-detail{padding:2px 4px;min-width:0;overflow-wrap:anywhere}.board-sec{margin-top:14px}.board-sec-t{font-size:calc(12px * var(--fs));font-weight:600;color:var(--dim);margin-bottom:6px}.modal.sess-modal{left:calc(50% - 37.5vw);top:5vh}.modal.board-detail-modal{left:calc(50% - 26vw);top:9vh;grid-template-columns:minmax(0,1fr)}.sess-view{display:flex;flex-direction:column;flex:1;min-height:0}.sess-wrap{display:flex;flex:1;min-height:0}.sess-main{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.sess-qbar{width:240px;flex:none;border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.sess-qbar-t{padding:8px 10px;font-size:calc(12px * var(--fs));font-weight:600;color:var(--muted-foreground)}.sess-qbar-n{font-weight:400}.sess-qbar-list{flex:1;min-height:0;overflow-y:auto;padding:2px 6px 8px}.sess-qbar-empty{padding:8px 10px;font-size:calc(12px * var(--fs));color:var(--dim)}.sess-qitem{display:flex;gap:6px;align-items:baseline;width:100%;text-align:left;padding:5px 8px;border-radius:6px;font-size:calc(12px * var(--fs));color:var(--muted-foreground);cursor:pointer;background:transparent;border:none}.sess-qitem:hover,.sess-qitem.on{background:var(--accent);color:var(--accent-foreground)}.sess-qitem-i{flex:none;font-size:calc(10px * var(--fs));opacity:.7;font-family:var(--mono)}.sess-qitem-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sess-qitem.ask{color:var(--text)}.sess-qitem.ask.pend{color:var(--dim)}.sess-qitem.ask:hover,.sess-qitem.ask.on{color:var(--accent-foreground)}.sess-qitem-ask{margin-right:4px;opacity:.85}.sess-entry{display:flex;flex-direction:column;margin-bottom:10px}@keyframes sess-flash{0%{background:var(--accent)}to{background:transparent}}.sess-entry.flash{animation:sess-flash 1.3s ease-out;border-radius:6px}.sess-qbar-toggle{flex:none;display:inline-flex;align-items:center;justify-content:center;padding:2px;border:none;background:transparent;color:var(--muted-foreground);border-radius:4px;cursor:pointer}.sess-qbar-toggle:hover{background:var(--accent);color:var(--accent-foreground)}.sess-conn{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--dim);flex:none}.sess-conn.on{background:var(--pass)}.sess-sub{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-4px 0 8px}.sess-chip{font-size:calc(11px * var(--fs));color:var(--muted-foreground);background:var(--panel2);border:1px solid var(--border);border-radius:6px;padding:2px 8px}.sess-agents{display:inline-flex;gap:4px;flex-wrap:wrap}.sess-agent{font-size:calc(11px * var(--fs));padding:2px 8px;border-radius:6px;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--muted-foreground)}.sess-agent:hover{border-color:var(--bubble-user-bd)}.sess-agent.on{color:var(--agent-on-text);background:var(--bubble-user-bg);border-color:var(--bubble-user-bd)}.sess-totals{font-size:calc(11px * var(--fs));color:var(--dim);font-family:var(--mono)}.sess-body{flex:1;min-height:0;overflow-y:auto;overflow-anchor:none;display:block;padding:4px 2px 8px}.sess-pad{width:100%;pointer-events:none}.sess-empty{color:var(--dim);text-align:center;margin-top:60px;font-size:calc(12.5px * var(--fs));line-height:2}.sess-msg{max-width:100%}.sess-msg.user{align-self:flex-end;max-width:88%;display:flex;justify-content:flex-end}.sess-msg.user .bubble{background:var(--bubble-user-bg);border:1px solid var(--bubble-user-bd);color:var(--bubble-user-text);border-radius:12px 12px 4px;padding:8px 12px;font-size:calc(12.5px * var(--fs));line-height:1.65;overflow-wrap:break-word;max-width:100%}.sess-actrow{align-self:flex-end;display:flex;justify-content:flex-end;align-items:center;gap:2px;margin-top:2px;margin-right:4px}.sess-act{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:2px 5px;background:none;border:none;border-radius:7px;color:var(--muted-foreground);font-size:calc(12px * var(--fs));line-height:1;cursor:pointer;opacity:.7;transition:opacity .12s,color .12s,background-color .12s}.sess-act:hover{opacity:1;color:var(--accent-foreground);background:var(--accent)}.sess-act.off{opacity:.35;cursor:default}.sess-act.off:hover{opacity:.35;color:var(--muted-foreground);background:none}.sess-act-i{display:block;flex:none;width:14px;height:14px}.sess-msg.assistant{align-self:flex-start;max-width:100%;width:100%;font-size:calc(12.5px * var(--fs));line-height:1.65}.sess-img{max-height:160px;max-width:320px;border-radius:8px;border:1px solid var(--border);display:block;margin-top:6px;cursor:zoom-in}.sess-img-ph{color:var(--dim);font-size:calc(11px * var(--fs))}.sess-msg.think{align-self:flex-start;width:100%}.sess-msg.think summary{cursor:pointer;color:var(--dim);font-size:calc(11.5px * var(--fs));font-style:italic}.sess-msg.think .think-text{color:var(--dim);font-size:calc(12px * var(--fs));font-style:italic;white-space:pre-wrap;word-break:break-word;border-left:2px solid var(--border);margin:4px 0 0 2px;padding:2px 10px;max-height:320px;overflow:auto}.sess-msg.tool{align-self:flex-start;width:100%;background:var(--inset-bg);border:1px solid var(--border);border-radius:8px;padding:6px 9px}.sess-msg.tool summary{cursor:pointer;color:var(--run);font-size:calc(11.5px * var(--fs));font-family:var(--mono)}.sess-msg.tool.result summary{color:var(--muted-foreground)}.sess-msg.tool.err{border-color:var(--err-bd-strong)}.sess-msg.tool.err summary{color:var(--fail)}.sess-msg.tool pre{margin:7px 0 0;padding:0;background:transparent;border:none;white-space:pre-wrap;word-break:break-all;font-family:var(--mono);font-size:calc(11px * var(--fs));color:var(--inset-text);max-height:280px;overflow:auto}.sess-msg.proc{align-self:flex-start;width:100%;background:var(--inset-bg);border:1px solid var(--border);border-radius:8px;padding:6px 9px}.sess-msg.proc>summary{cursor:pointer;color:var(--muted-foreground);font-size:calc(11.5px * var(--fs));font-family:var(--mono)}.sess-msg.proc.has-err{border-color:var(--err-bd-strong)}.sess-msg.proc.has-err>summary{color:var(--fail)}.sess-proc-body{display:flex;flex-direction:column;gap:6px;margin-top:7px;padding-left:8px;border-left:2px solid var(--border)}.sess-proc-body .sess-msg.tool{background:transparent;border:none;border-radius:0;padding:0}.sess-proc-body .sess-msg.tool.err{border-left:2px solid var(--err-bd-strong);padding-left:6px}.sess-usage{align-self:flex-end;font-size:calc(10.5px * var(--fs));color:var(--dim);font-family:var(--mono);padding-right:4px;margin-top:-6px}.sess-divider{text-align:center;font-size:calc(11px * var(--fs));color:var(--dim);border-top:1px dashed var(--border);padding-top:6px;margin:2px 0}.sess-msg.error{align-self:flex-start;width:100%}.sess-errbox{display:flex;gap:8px;align-items:flex-start;width:100%;border:1px solid var(--err-bd-strong);background:var(--err-bg);border-radius:10px;padding:8px 12px;color:var(--fail)}.sess-errbox-i{flex:none;width:15px;height:15px;margin-top:1px}.sess-errbox-t{font-size:calc(12.5px * var(--fs));line-height:1.5}.sess-errbox-d{font-size:calc(11px * var(--fs));color:var(--muted-foreground);margin-top:3px;line-height:1.5;word-break:break-word}.sess-running{display:flex;align-items:center;gap:7px;font-size:calc(12px * var(--fs));color:var(--muted-foreground);padding:2px}.sess-pulse{width:8px;height:8px;border-radius:50%;background:var(--run);animation:sess-pulse 1s infinite alternate}@keyframes sess-pulse{0%{opacity:.3}to{opacity:1}}.sess-chaterr{font-size:calc(12px * var(--fs));color:var(--fail);padding:2px}.sess-composer{display:flex;flex-direction:column;gap:6px;flex:none;border:1px solid var(--border);border-radius:12px;padding:8px 10px;background:var(--panel2)}.sess-composer:focus-within{border-color:var(--composer-focus)}.sess-composer textarea{flex:1;background:transparent;border:none;outline:none;resize:none;color:var(--text);font-size:calc(13px * var(--fs));line-height:1.5;min-height:88px;font-family:inherit}.sess-composer textarea::placeholder{color:var(--dim)}.sess-composer textarea:disabled{cursor:not-allowed}.sess-ta{max-height:320px}.sess-attachrow{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.sess-attachrow .sess-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;font-size:calc(12px * var(--fs))}.sess-attachrow .sess-chip img{width:40px;height:40px;object-fit:cover;border-radius:4px}.sess-chip-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sess-chip-x{display:inline-flex;align-items:center;justify-content:center;flex:none;border:none;background:none;padding:0;cursor:pointer;color:var(--dim)}.sess-chip-x:hover{color:var(--fail)}.sess-bottombar{display:flex;align-items:center;gap:8px;flex:none;border-top:1px solid var(--border);padding-top:6px;margin-top:6px}.sess-ctl{display:inline-flex;align-items:center;gap:4px;font-size:calc(12px * var(--fs));cursor:pointer;-webkit-user-select:none;user-select:none}.sess-ctrl-off{opacity:.4;pointer-events:none}.sess-ring{width:18px;height:18px;flex:none}.sess-ring text{font-size:calc(8px * var(--fs));fill:var(--muted-foreground)}.sess-slashwrap{position:relative;min-width:0;display:flex;align-items:flex-end}.sess-slashmenu{position:absolute;left:0;right:0;bottom:calc(100% + 8px);z-index:50;display:flex;flex-direction:column;gap:1px;padding:4px;max-height:260px;overflow:auto;background:var(--menu-bg);border:1px solid var(--menu-bd);border-radius:10px;box-shadow:var(--shadow-pop)}.sess-slash-empty{padding:8px 10px;font-size:calc(12px * var(--fs));color:var(--menu-mut)}.sess-slash-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 9px;border:none;border-radius:7px;background:transparent;color:var(--menu-fg);font-size:calc(12px * var(--fs));text-align:left;cursor:pointer}.sess-slash-item.on{background:var(--menu-on-bg)}.sess-slash-item.dis{opacity:.45;cursor:not-allowed}.sess-slash-key{font-family:var(--mono);font-size:calc(11.5px * var(--fs));color:var(--menu-key);flex:none}.sess-slash-item.on .sess-slash-key{color:var(--menu-on-fg)}.sess-slash-desc{flex:1;color:var(--menu-mut);font-size:calc(11.5px * var(--fs));min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sess-slash-tag{flex:none;font-size:calc(10px * var(--fs));color:var(--menu-mut);border:1px solid var(--menu-bd);border-radius:4px;padding:0 5px}.sess-view .md-body .md-img{max-width:320px;max-height:200px}.md-path{cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px}.sess-view .md-body a.md-path,.fv-body .md-body a.md-path{color:var(--run);text-decoration:underline dotted;text-underline-offset:2px}.sess-view .md-body a.md-path:hover,.fv-body .md-body a.md-path:hover{text-decoration-style:solid}.sess-view .md-body code a.md-path,.fv-body .md-body code a.md-path{color:var(--run)}.modal.fv-modal{left:calc(50% - 33vw);top:11vh}.fv-head{gap:4px}.fv-titlebar{display:flex;align-items:center;gap:6px;min-width:0}.fv-title{flex:1;font-family:var(--mono);font-size:calc(12.5px * var(--fs));font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fv-act{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--muted-foreground);cursor:pointer;padding:0}.fv-act:hover{color:var(--foreground);border-color:var(--run)}.fv-act-i{width:13px;height:13px}.fv-meta{font-size:calc(11px * var(--fs));color:var(--dim)}.fv-body{flex:1;min-height:0;overflow:auto;border-top:1px solid var(--border);padding-top:8px}.fv-pre{margin:0;white-space:pre-wrap;word-break:break-all;font-family:var(--mono);font-size:calc(11.5px * var(--fs));color:var(--inset-text)}.fv-hint{display:flex;align-items:center;gap:6px;font-size:calc(12px * var(--fs));color:var(--muted-foreground);padding:6px 0}.fv-hint a{color:var(--run)}.fv-hint.err{color:var(--fail)}.fv-hint-i{width:14px;height:14px;flex:none}.sess-interaction{border:1px solid color-mix(in srgb,var(--ask) 30%,transparent);background:color-mix(in srgb,var(--ask) 8%,transparent);border-radius:10px;padding:8px 10px;margin-bottom:6px}.sess-interaction-q{font-size:calc(12px * var(--fs));color:var(--ask);margin-bottom:6px}.sess-interaction-body{font-size:calc(12px * var(--fs));color:var(--muted-foreground);margin-bottom:6px}.sess-interaction-head{display:flex;align-items:flex-start;gap:8px}.sess-interaction-head .sess-interaction-q{flex:1;min-width:0}.sess-interaction-min{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid transparent;border-radius:6px;background:none;color:var(--muted-foreground);cursor:pointer}.sess-interaction-min:hover{border-color:color-mix(in srgb,var(--ask) 50%,transparent);color:var(--ask)}.sess-interaction-bar{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font-family:inherit;border:1px solid color-mix(in srgb,var(--ask) 30%,transparent);background:color-mix(in srgb,var(--ask) 8%,transparent);border-radius:10px;padding:4px 10px;margin-bottom:6px;color:var(--ask);cursor:pointer;font-size:calc(12px * var(--fs))}.sess-interaction-bar:hover{border-color:color-mix(in srgb,var(--ask) 55%,transparent)}.sess-interaction-bar-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sess-inav{flex:1;min-width:0;display:flex;align-items:center;gap:4px}.sess-inav-btn{border:1px solid var(--border);border-radius:6px;background:var(--panel2);color:inherit;font-family:inherit;font-size:calc(11.5px * var(--fs));padding:3px 8px;cursor:pointer}.sess-inav-btn:hover:not(:disabled){border-color:color-mix(in srgb,var(--ask) 50%,transparent)}.sess-inav-btn:disabled{opacity:.45;cursor:default}.sess-inav-dot{flex:none;width:22px;height:22px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-family:inherit;border:1px solid var(--border);border-radius:6px;background:var(--panel2);color:var(--muted-foreground);font-size:calc(11px * var(--fs));cursor:pointer}.sess-inav-dot.done{border-color:color-mix(in srgb,var(--ask) 55%,transparent);color:var(--ask)}.sess-inav-dot.on{border-color:var(--ask);background:color-mix(in srgb,var(--ask) 16%,transparent);color:var(--ask);font-weight:600}.sess-interaction-opts{display:flex;flex-wrap:wrap;gap:6px}.sess-interaction-list{display:flex;flex-direction:column;gap:4px}.sess-iopt{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);cursor:pointer}.sess-iopt:hover{border-color:color-mix(in srgb,var(--ask) 50%,transparent)}.sess-iopt.on{border-color:var(--ask);background:color-mix(in srgb,var(--ask) 12%,transparent)}.sess-iopt input[type=radio],.sess-iopt input[type=checkbox]{margin-top:3px;flex:none}.sess-iopt-key{flex:none;font-size:calc(11px * var(--fs));color:var(--muted-foreground);min-width:12px;margin-top:1px}.sess-iopt-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.sess-iopt-label{font-size:calc(12.5px * var(--fs));color:var(--text, inherit)}.sess-iopt-desc{font-size:calc(11.5px * var(--fs));color:var(--muted-foreground)}.sess-iopt-input{margin-top:4px;font-size:calc(12px * var(--fs));padding:3px 8px;border:1px solid var(--border);border-radius:6px;background:var(--inset-bg);color:inherit;width:100%}.sess-interaction-foot{display:flex;align-items:center;gap:8px;margin-top:8px}.sess-interaction-hint{flex:1;font-size:calc(11px * var(--fs));color:var(--muted-foreground)}.sess-interaction-pre{max-height:140px;overflow:auto;font-family:var(--mono);font-size:calc(11px * var(--fs));background:var(--inset-bg);border:1px solid var(--border);border-radius:6px;padding:6px 8px;margin:0 0 8px;white-space:pre-wrap;word-break:break-all}.sess-queue{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.sess-queue-row{display:flex;align-items:center;gap:8px;font-size:calc(12px * var(--fs));color:var(--muted-foreground);background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:4px 8px}.sess-queue-tag{flex:none;font-size:calc(11px * var(--fs));padding:1px 6px;border-radius:6px;border:1px solid var(--border);color:var(--muted-foreground)}.sess-queue-tag.on{color:var(--run);border-color:var(--run)}.sess-queue-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sess-queue-btn{height:22px;padding:0 8px;font-size:calc(11px * var(--fs));gap:4px;flex:none}.sess-perm-item{display:flex;flex-direction:column;gap:1px}.sess-perm-label{font-size:calc(12.5px * var(--fs))}.sess-perm-desc{font-size:calc(11px * var(--fs));color:var(--muted-foreground)}.sess-ctl-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sess-pass{height:24px;padding:0 8px;font-size:calc(11.5px * var(--fs));gap:4px}.sess-open-dsh{height:24px;padding:0 6px}.sess-qstate{display:inline-flex;align-items:center;gap:5px;flex:none;padding:1px 9px;border-radius:9px;border:1px solid var(--border);font-size:calc(11px * var(--fs));color:var(--dim);white-space:nowrap}.sess-qstate .dot{width:7px;height:7px;border-radius:50%;background:var(--dim)}.sess-qstate.run{color:var(--run);border-color:var(--run)}.sess-qstate.run .dot{background:var(--run);animation:pulse 1.2s infinite}.sess-qstate.queued{color:var(--retest);border-color:var(--retest)}.sess-qstate.queued .dot{background:var(--retest)}.sess-qstate.foreign{color:var(--fix);border-color:var(--fix)}.sess-qstate.foreign .dot{background:var(--fix)}.sess-qstate.server{color:var(--retest);border-color:var(--retest);border-style:dashed}.sess-qstate.server .dot{background:var(--retest)}.sess-colstate{display:inline-flex;align-items:center;flex:none;padding:1px 9px;border-radius:9px;border:1px solid var(--border);font-size:calc(11px * var(--fs));color:var(--muted-foreground);white-space:nowrap}.bug-status.interaction{background:color-mix(in srgb,var(--ask) 12%,transparent);color:var(--ask);border:1px solid color-mix(in srgb,var(--ask) 30%,transparent)}.ts-toast{position:fixed;left:50%;bottom:32px;z-index:100;transform:translate(-50%,10px);max-width:min(78vw,560px);padding:9px 16px;background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-toast);font-size:calc(13px * var(--fs));line-height:1.5;white-space:pre-wrap;word-break:break-word;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.ts-toast.show{opacity:1;transform:translate(-50%)}.ext-seg{display:flex;flex-wrap:wrap;gap:6px}.ext-seg button{padding:5px 11px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);color:var(--muted-foreground);font-size:calc(12px * var(--fs));cursor:pointer;transition:border-color .15s,color .15s}.ext-seg button:hover{border-color:var(--rz-hover)}.ext-seg button.active{border-color:var(--star);color:var(--tab-active);font-weight:600}.ext-kind{padding:0 7px;border:1px solid var(--border);border-radius:999px;font-size:calc(11px * var(--fs));font-weight:400;color:var(--muted-foreground)}.ext-state{margin-left:auto;padding:0 9px;border:1px solid var(--border);border-radius:999px;font-size:calc(11px * var(--fs));font-weight:600;color:var(--muted-foreground)}.ext-state.ok{color:var(--run);border-color:var(--run)}.ext-state.warn{color:var(--retest);border-color:var(--retest)}.ext-state.bad{color:var(--fail);border-color:var(--fail)}.ext-path{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:calc(11.5px * var(--fs));color:var(--muted-foreground);word-break:break-all;line-height:1.6}}
|