*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.mb-3{margin-bottom:.75rem}.block{display:block}.resize{resize:both}.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)}:root{--ws-radius: 12px;--footer-h: 20px;--ws-backdrop: rgba(2, 6, 23, .65)}:root[data-theme=dark],:root:not([data-theme]){--ws-bg: #0b1020;--ws-fg: #e8ecf8;--ws-panel: #111827ee;--ws-border: rgba(255, 255, 255, .14);--ws-soft: rgba(15, 23, 42, .18);--ws-soft2: rgba(15, 23, 42, .1);--ws-pre-bg: rgba(2, 6, 23, .22);--ws-shadow: rgba(0, 0, 0, .32);--ws-btn-bg: rgba(255, 255, 255, .07);--ws-btn-hover: rgba(255, 255, 255, .11);--ws-btn-fg: #e5e7eb;--ws-progress-track: rgba(255, 255, 255, .1);--ws-progress-border: rgba(255, 255, 255, .14);--ws-progress-running: rgba(59, 130, 246, .8);--ws-progress-done: rgba(34, 197, 94, .8);--ws-progress-error: rgba(239, 68, 68, .8);--ws-row-running: rgba(59, 130, 246, .26);--ws-row-done: rgba(34, 197, 94, .26);--ws-row-error: rgba(239, 68, 68, .26);--ws-backdrop: rgba(2, 6, 23, .65)}:root[data-theme=light]{--ws-bg: #f6f8fc;--ws-fg: #0b1020;--ws-panel: #ffffffff;--ws-border: #cfd5e3;--ws-soft: rgba(2, 6, 23, .04);--ws-soft2: rgba(2, 6, 23, .03);--ws-pre-bg: rgba(2, 6, 23, .04);--ws-shadow: rgba(15, 23, 42, .1);--ws-btn-bg: rgba(2, 6, 23, .04);--ws-btn-hover: rgba(2, 6, 23, .08);--ws-btn-fg: #0b1020;--ws-progress-track: rgba(2, 6, 23, .08);--ws-progress-border: rgba(2, 6, 23, .12);--ws-progress-running: rgba(59, 130, 246, .85);--ws-progress-done: rgba(34, 197, 94, .85);--ws-progress-error: rgba(239, 68, 68, .85);--ws-row-running: rgba(59, 130, 246, .18);--ws-row-done: rgba(34, 197, 94, .18);--ws-row-error: rgba(239, 68, 68, .18);--ws-backdrop: rgba(2, 6, 23, .42)}html,body,#root{height:100%;color:var(--ws-fg)}body{margin:0;background:var(--ws-bg);overflow:hidden;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}#bg{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0}.page.full{height:100%;position:relative}.content{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;overflow:hidden}.ws-dashboard{display:grid;grid-template-columns:var(--ws-dashboard-left-w) var(--ws-splitter-size) minmax(420px,1fr) var(--ws-splitter-size) var(--ws-dashboard-right-w);gap:0;padding-top:52px;padding-left:8px;padding-right:8px;padding-bottom:calc(var(--footer-h) + 4px);height:100%;box-sizing:border-box;overflow:hidden}.ws-col{background:var(--ws-panel);border:1px solid var(--ws-border);border-radius:var(--ws-radius);padding:8px;height:100%;display:flex;flex-direction:column;min-height:0;overflow:hidden;box-shadow:0 14px 30px var(--ws-shadow)}.ws-col>.panel{flex:1 1 auto;min-height:0}.panel{display:flex;flex-direction:column;min-height:0;width:100%}.panel-body{flex:1 1 auto;min-height:0;overflow:auto}.panel-error{margin:6px 0 0;padding:6px 8px;border-radius:10px;border:1px solid rgba(239,68,68,.35);background:#ef44441a;color:var(--ws-fg);font-size:12px}.ws-panel-toolbar{display:flex;align-items:center;gap:8px;min-width:0;margin-bottom:8px}.ws-panel-toolbar--divider{padding-bottom:8px;margin-bottom:10px;border-bottom:1px solid var(--ws-border)}.ws-panel-toolbar__left{font-weight:800;display:flex;align-items:center;gap:8px;min-width:0}.ws-panel-toolbar__leading{display:inline-flex;align-items:center}.ws-panel-toolbar__title{display:inline-flex;align-items:center;gap:6px;min-width:0}.ws-panel-toolbar__actions{margin-left:auto;display:inline-flex;align-items:center;gap:8px;min-width:0}:root{--ws-splitter-size: 8px;--ws-dashboard-left-w: 300px;--ws-dashboard-right-w: 340px;--ws-run-tasks-h: 260px}.ws-split-handle{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;background:var(--ws-panel);border-left:1px solid var(--ws-border);border-right:1px solid var(--ws-border);border-radius:var(--ws-radius);overflow:hidden}.ws-split-handle--col{width:var(--ws-splitter-size);height:100%}.ws-split-handle--row{height:var(--ws-splitter-size);width:100%;border-left:none;border-right:none;border-top:1px solid var(--ws-border);border-bottom:1px solid var(--ws-border);border-radius:var(--ws-radius);overflow:hidden}.ws-split-handle:after{content:"";position:absolute;border-radius:999px;background:#94a3b847;opacity:.75}.ws-split-handle--col:after{width:2px;height:46px;left:calc(50% - 1px);top:calc(50% - 23px)}.ws-split-handle--row:after{height:2px;width:46px;top:calc(50% - 1px);left:calc(50% - 23px)}body.ws-split-dragging{-webkit-user-select:none;-moz-user-select:none;user-select:none}body.ws-split-dragging--col{cursor:col-resize!important}body.ws-split-dragging--row{cursor:row-resize!important}.app-footer{position:fixed;left:0;right:0;bottom:0;height:var(--footer-h);min-height:var(--footer-h);display:flex;align-items:flex-end;justify-content:space-between;padding:0 10px 2px;font-size:11px;color:var(--ws-fg);opacity:.85;pointer-events:none;z-index:30}.app-footer-left{display:flex;align-items:flex-end;pointer-events:auto}.app-footer-right{display:flex;align-items:flex-end;gap:4px;pointer-events:auto}.app-footer-right:before{content:""}.app-footer-right img{height:14px;opacity:.85}.header{position:fixed;top:0;left:0;right:0;height:48px;display:flex;align-items:center;padding:4px 12px;z-index:20}.header .title{display:flex;align-items:center;gap:8px;font-weight:700}.header .right{margin-left:auto;display:flex;align-items:center;gap:6px;white-space:nowrap}.header .right button{display:inline-flex;align-items:center;gap:6px}.header .right .header-lang-btn{padding-left:12px;padding-right:12px}.user-label{color:var(--ws-fg);opacity:.85;font-size:13px}.header-user-label{margin-right:8px}.header-lang-text{font-size:12px}.header-logout-icon{height:16px;width:16px;display:block}.app-title-text{color:var(--ws-fg);font-weight:600;font-size:14px}.login-root{min-height:100vh;display:flex;align-items:center;justify-content:center;padding-top:72px;padding-bottom:calc(var(--footer-h) + 28px);box-sizing:border-box}.login-card{width:min(92vw,360px);background:var(--ws-panel);border:1px solid var(--ws-border);border-radius:16px;padding:16px 16px 14px;box-shadow:0 18px 40px var(--ws-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-title{font-size:16px;font-weight:800;margin:2px 0 14px;line-height:1.2}.login-form{display:flex;flex-direction:column;gap:12px}.login-form-row{display:flex;flex-direction:column;gap:6px}.login-form-label{font-size:12px;opacity:.82}.login-input{width:100%}.login-form-submit{width:100%;margin-top:4px;display:flex;align-items:center;justify-content:center;text-align:center}.login-error{margin-top:2px;padding:8px 10px;border-radius:12px;border:1px solid rgba(239,68,68,.35);background:#ef44441a;color:var(--ws-fg);font-size:12px}.login-brand{text-align:center;margin-top:20px;opacity:.9}.login-brand-logo{width:120px;height:auto}.btn{background:var(--ws-btn-bg);color:var(--ws-btn-fg);border-radius:10px;padding:6px 10px;border:1px solid var(--ws-border);cursor:pointer;font-size:13px;display:inline-flex;align-items:center;gap:6px;line-height:1;transition:background .12s ease-out,transform .05s ease-out,box-shadow .12s ease-out}.btn:hover:not(:disabled){background:var(--ws-btn-hover);box-shadow:0 8px 20px #0f172a33}.btn:active:not(:disabled){transform:translateY(1px);box-shadow:none}.btn:focus-visible{outline:none;box-shadow:0 0 0 2px #60a5fa8c}.btn:disabled{opacity:.6;cursor:default;box-shadow:none}.btn-icon{padding:6px;width:34px;justify-content:center}.btn[data-variant=default],.btn:not([data-variant]){background:var(--ws-btn-bg);border-color:var(--ws-border);color:var(--ws-btn-fg)}.btn[data-variant=ghost]{background:var(--ws-btn-bg);border-color:var(--ws-border);color:var(--ws-btn-fg)}.btn[data-variant=ghost]:hover:not(:disabled){background:var(--ws-btn-hover)}.btn[data-variant=primary]{background:#3b82f6;border-color:#3b82f6;color:#fff}.btn[data-variant=primary]:hover:not(:disabled){background:#2563eb}.btn[data-variant=success]{background:#22c55e33;border-color:#22c55e66;color:var(--ws-fg)}.btn[data-variant=success]:hover:not(:disabled){background:#22c55e47}.input{background:transparent;color:var(--ws-fg);border:1px solid var(--ws-border);border-radius:10px;padding:8px 10px;outline:none;font-size:13px}.input:focus{border-color:#60a5fa;box-shadow:0 0 0 1px #60a5faa6}.iconbtn,.icon-btn{border:1px solid var(--ws-border);background:var(--ws-btn-bg);color:var(--ws-btn-fg);padding:6px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease-out,transform .05s ease-out,box-shadow .12s ease-out}.iconbtn:hover,.icon-btn:hover{background:var(--ws-btn-hover);box-shadow:0 8px 20px #0f172a33}.iconbtn:active,.icon-btn:active{transform:translateY(1px);box-shadow:none}.iconbtn:focus-visible,.icon-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #60a5fa8c}.icon-btn{width:26px;height:26px;padding:0;border-radius:9999px;font-size:13px;line-height:1}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ws-backdrop);display:flex;align-items:center;justify-content:center;z-index:50}.modal-card{background:var(--ws-panel);border:1px solid var(--ws-border);border-radius:12px;max-width:900px;width:auto;min-width:360px;max-height:86vh;display:flex;flex-direction:column}.modal-card-wide{max-width:1100px;width:min(95vw,1100px)}.modal-card-confirm{max-width:420px}.modal-header{padding:10px 12px;border-bottom:1px solid var(--ws-border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-weight:800;font-size:14px}.modal-close{border:1px solid rgba(148,163,184,.28);background:transparent;color:var(--ws-fg);border-radius:9999px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;line-height:1;font-size:18px}.modal-close:hover{background:var(--ws-soft)}.modal-body{padding:10px 12px;overflow:auto}.modal-actions{padding:10px 12px;border-top:1px solid var(--ws-border);display:flex;justify-content:flex-end;gap:8px}select.input,.modal-card textarea{background:transparent;color:var(--ws-fg);border:1px solid var(--ws-border);border-radius:10px;padding:8px 10px;outline:none;font-size:13px}.modal-card textarea:focus,select.input:focus{border-color:#60a5fa;box-shadow:0 0 0 1px #60a5faa6}:root[data-theme=dark] select option,:root:not([data-theme]) select option{background:#0b1020;color:#e8ecf8}:root[data-theme=light] select option{background:#fff;color:#0b1020}.modal-form{display:flex;flex-direction:column;gap:10px}.modal-field{display:flex;flex-direction:column;gap:4px}.modal-label{font-size:12px;opacity:.8}.modal-textarea{resize:vertical}.modal-strong{font-weight:700}.modal-note{font-size:13px;line-height:1.4}.modal-confirm-message{white-space:pre-line;font-size:14px;line-height:1.4}.ws-progress-track{height:8px;border-radius:999px;background:var(--ws-progress-track);border:1px solid var(--ws-progress-border);overflow:hidden}.ws-progress-fill{height:100%;width:0%;background:var(--ws-progress-running)}.ws-progress-fill[data-status=running]{background:var(--ws-progress-running)}.ws-progress-fill[data-status=done]{background:var(--ws-progress-done)}.ws-progress-fill[data-status=error]{background:var(--ws-progress-error)}.ws-task-row{position:relative;max-width:100%}.ws-task-row-fill{position:absolute;left:0;top:0;bottom:0;width:0%;pointer-events:none}.ws-task-row-fill[data-status=running]{background:var(--ws-row-running)}.ws-task-row-fill[data-status=done]{background:var(--ws-row-done)}.ws-task-row-fill[data-status=error]{background:var(--ws-row-error)}pre{margin:0}.ws-task-row{cursor:pointer;padding:8px;border-bottom:1px solid rgba(148,163,184,.14);background:transparent}.ws-task-row[data-active="1"]{background:#3b82f61a}.ws-task-row[data-status=running] .ws-task-stripe{background:#f59e0bf2}.ws-task-row[data-status=done] .ws-task-stripe{background:#22c55ef2}.ws-task-row[data-status=error] .ws-task-stripe{background:#ef4444f2}.ws-task-row-fill[data-status=running]{opacity:.3}.ws-task-row-fill[data-status=done],.ws-task-row-fill[data-status=error]{opacity:.22}.ws-task-line1{display:flex;align-items:center;gap:10px}.ws-task-right{margin-left:auto;display:flex;gap:10px;align-items:center;font-size:12px;opacity:.9;white-space:nowrap}.ws-task-dt,.ws-task-user{opacity:.85}.ws-task-badge{padding:2px 8px;border-radius:999px;font-size:11px;border:1px solid rgba(148,163,184,.3);background:var(--ws-soft2);white-space:nowrap}.ws-task-line2{margin-top:3px;display:flex;gap:12px;align-items:center;font-size:12px;opacity:.9;white-space:nowrap}.ws-task-line2-right{margin-left:auto;opacity:.9}.ws-host-select-all{width:16px;height:16px;cursor:pointer}.ws-host-row:hover{background:var(--ws-soft)}.ws-host-tree{min-width:0}.ws-host-group-block{margin-bottom:10px}.ws-host-group-row,.ws-host-row{display:flex;align-items:center;justify-content:space-between;padding:2px 4px}.ws-host-group-row{gap:6px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ws-host-row{padding-left:var(--ws-indent, 0px);border-radius:4px}.ws-host-group-left,.ws-host-row-left{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.ws-host-group-left{padding-left:var(--ws-indent, 0px)}.ws-host-icon{opacity:.9;display:inline-flex;width:18px;justify-content:center;font-size:14px}.ws-host-icon-host{font-size:13px}.ws-host-group-title{font-weight:600}.ws-host-name,.ws-host-group-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-host-name{font-size:13px}.ws-host-actions{display:flex;gap:4px}.ws-host-empty{font-size:12px;padding-left:var(--ws-indent, 0px);margin-top:4px;margin-bottom:4px}.ws-host-delete-warning{margin-top:6px}.ws-pb-select-all{width:16px;height:16px;cursor:pointer}.ws-playbooks-body{border:1px solid var(--ws-border);border-radius:10px;overflow:auto}.ws-playbooks-body-inner{padding:6px}.ws-pb-group-block{margin-bottom:10px}.ws-pb-empty{font-size:12px;margin-top:4px;margin-bottom:4px;padding-left:calc(var(--ws-indent, 0px) + 32px)}.ws-pb-group-row{display:flex;align-items:center;gap:6px;justify-content:space-between;padding:2px 4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ws-pb-group-left{display:flex;align-items:center;gap:6px;flex:1;min-width:0;padding-left:var(--ws-indent, 0px)}.ws-pb-icon{font-size:14px;opacity:.9;display:inline-flex;width:18px;justify-content:center}.ws-pb-group-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-pb-actions{display:flex;gap:4px}.ws-pb-row{display:flex;align-items:center;justify-content:space-between;padding:2px 4px;border-radius:4px;padding-left:var(--ws-indent, 0px)}.ws-pb-row-left{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.ws-pb-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.ws-pb-icon-doc{font-size:13px;opacity:.9;display:inline-flex;width:18px;justify-content:center}.ws-pb-editor-card{height:min(90vh,820px);max-height:90vh}.ws-pb-editor-fixed{flex:0 0 auto}.ws-pb-editor-body{flex:1 1 auto;min-height:0;overflow:hidden}.ws-pb-editor-form,.ws-pb-editor-yaml-wrap,.ws-pb-editor-yaml-field,.ws-pb-editor-details{display:flex;flex-direction:column}.ws-pb-editor-form{gap:8px;height:100%;min-height:0}.ws-pb-editor-yaml-wrap{gap:8px;flex:1 1 auto;min-height:0}.ws-pb-editor-yaml-field{gap:4px;flex:1 1 auto;min-height:0}.ws-pb-editor-details{gap:4px;flex:0 0 auto}.ws-pb-editor-yaml,.ws-pb-editor-details-text{width:100%;max-width:min(90vw,1100px);box-sizing:border-box;overflow:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.ws-pb-editor-yaml{flex:1 1 auto;min-height:0;resize:none}.ws-pb-editor-details-text{height:min(22vh,200px);resize:vertical}.ws-pb-editor-actions{flex:0 0 auto;align-items:center;justify-content:space-between}.ws-pb-editor-validation{font-size:12px;min-height:18px;max-width:60%;white-space:pre-wrap;text-align:left}.ws-pb-editor-validation-ok{color:#4caf50}.ws-pb-editor-validation-error{color:#f55;text-decoration:underline;cursor:pointer}.ws-pb-editor-buttons{display:flex;gap:8px}.ws-run-root{height:100%;display:flex;flex-direction:column;min-height:0}.ws-run-split{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:var(--ws-run-tasks-h, 260px) var(--ws-splitter-size, 10px) 1fr;gap:0}.ws-tasks-root{display:flex;flex-direction:column;min-height:0}.ws-tasks-box{flex:1 1 auto;min-height:0;border:1px solid var(--ws-border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.ws-tasks-head{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--ws-soft2);border-bottom:1px solid var(--ws-border)}.ws-tasks-title{font-weight:900;font-size:13px}.ws-tasks-head-right{margin-left:auto;display:flex;align-items:center}.ws-tasks-filters{display:flex;gap:6px}.ws-tasks-filter-btn{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800}.ws-tasks-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.ws-tasks-empty{padding:10px;font-size:12px;opacity:.7}.ws-tasks-row{cursor:pointer;padding:8px;border-bottom:1px solid rgba(148,163,184,.14);background:transparent;position:relative}.ws-tasks-row[data-active=true]{background:#3b82f61a}.ws-task-stripe{position:absolute;left:0;top:0;bottom:0;width:3px}.ws-tasks-row[data-status=running] .ws-task-stripe{background:var(--ws-row-running)}.ws-tasks-row[data-status=done] .ws-task-stripe{background:var(--ws-row-done)}.ws-tasks-row[data-status=error] .ws-task-stripe{background:var(--ws-row-error)}.ws-tasks-row .ws-task-row-fill{left:3px;width:var(--ws-task-pct);opacity:.22}.ws-tasks-row[data-status=running] .ws-task-row-fill{opacity:.3}.ws-task-content{position:relative;z-index:1;padding-left:8px}.ws-task-top{display:flex;align-items:center;gap:10px}.ws-task-name{font-weight:900;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-task-meta{margin-left:auto;display:flex;gap:10px;align-items:center;font-size:12px;opacity:.9;white-space:nowrap}.ws-task-meta-item{opacity:.85}.ws-task-pill{padding:2px 8px;border-radius:999px;font-size:11px;border:1px solid rgba(148,163,184,.3);background:var(--ws-soft2);white-space:nowrap}.ws-tasks-row[data-status=done] .ws-task-pill{background:#22c55e33;border-color:#22c55e66}.ws-tasks-row[data-status=error] .ws-task-pill{background:#ef444424;border-color:#ef444452}.ws-tasks-row[data-status=starting] .ws-task-pill{background:#3b82f624;border-color:#3b82f64d}.ws-tasks-row[data-status=running] .ws-task-pill{background:#eab30829;border-color:#eab30859}.ws-task-bottom{margin-top:3px;display:flex;gap:12px;align-items:center;font-size:12px;opacity:.9;white-space:nowrap}.ws-task-stats{display:flex;gap:12px;align-items:center}.ws-task-summary{margin-left:auto;opacity:.9}.ws-console-root{min-height:0;display:flex;flex-direction:column}.ws-console-box{flex:1 1 auto;min-height:0;border:1px solid var(--ws-border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.ws-console-head{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--ws-soft2);border-bottom:1px solid var(--ws-border)}.ws-console-title{font-weight:900;font-size:13px}.ws-console-head-right{margin-left:auto;display:flex;align-items:center}.ws-console-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:10px}.ws-console-empty{font-size:12px;opacity:.7}.ws-console-warning{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;padding:8px 10px;border:1px solid rgba(245,158,11,.45);border-radius:8px;background:#f59e0b1f;color:#fde68a;font-size:12px}.ws-console-hostlist{display:flex;flex-direction:column;gap:10px}.ws-console-hostcard{border:1px solid var(--ws-border);border-radius:10px;overflow:hidden;position:relative}.ws-console-pbcard{border:1px solid rgba(148,163,184,.18);border-radius:10px;overflow:hidden;position:relative}.ws-console-stripe{position:absolute;left:0;top:0;bottom:0;width:3px}.ws-console-hostcard[data-status=done] .ws-console-stripe{background:#22c55ef2}.ws-console-hostcard[data-status=running] .ws-console-stripe{background:#f59e0bf2}.ws-console-hostcard[data-status=error] .ws-console-stripe{background:#ef4444f2}.ws-console-hostcard[data-status=queued] .ws-console-stripe{background:#94a3b8d9}.ws-console-pbcard[data-status=done] .ws-console-stripe{background:#22c55ef2}.ws-console-pbcard[data-status=running] .ws-console-stripe{background:#f59e0bf2}.ws-console-pbcard[data-status=queued] .ws-console-stripe{background:#94a3b8d9}.ws-console-pbcard[data-status=error] .ws-console-stripe{background:#ef4444f2}.ws-console-row{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 12px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ws-console-row-host{background:var(--ws-soft2)}.ws-console-row-pb{background:#94a3b80f;padding:7px 10px 7px 12px}.ws-console-chevron{width:18px;text-align:center;opacity:.9}.ws-console-hostname{font-weight:900;font-size:13px}.ws-console-pbname{font-weight:800;font-size:12px}.ws-console-right{margin-left:auto;display:flex;gap:10px;align-items:center;font-size:12px;white-space:nowrap}.ws-console-count{opacity:.9}.ws-console-pblist{padding:10px 10px 10px 12px;display:flex;flex-direction:column;gap:8px}.ws-console-lines{padding:10px 10px 10px 12px}.ws-console-line{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;white-space:pre-wrap;line-height:1.35;opacity:.95}.ws-console-muted{opacity:.6}.ws-ml-auto{margin-left:auto}.ws-run-name-modal,.ws-run-name-field,.ws-run-name-section{display:flex;flex-direction:column}.ws-run-name-modal{gap:14px}.ws-run-name-field{gap:8px}.ws-run-name-section{gap:10px}.ws-run-name-label{font-size:12px;opacity:.8}.ws-run-name-radio-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.ws-run-name-radio{display:inline-flex;gap:8px;align-items:center}.ws-run-name-actions{display:flex;justify-content:flex-end;gap:8px}
