.topbar{height:52px;display:flex;align-items:center;padding:0 14px;gap:12px;flex-shrink:0;z-index:20;color:var(--text);position:relative;background:linear-gradient(180deg,color-mix(in srgb,var(--accent, #2563eb) 5%,var(--panel, #fff)) 0%,var(--panel, #fff) 100%);box-shadow:0 1px 0 var(--border, #e2e8f0),0 4px 20px color-mix(in srgb,var(--accent, #2563eb) 8%,transparent)}.topbar:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent, #2563eb) 0%,#7c3aed 45%,#db2777 80%,#f97316 100%);z-index:1}.brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:13px;letter-spacing:-.02em;white-space:nowrap;flex-shrink:0}.brand-mark{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,var(--accent, #2563eb) 0%,#7c3aed 100%);display:grid;place-items:center;color:#fff;font-weight:900;font-size:12px;font-family:var(--font-mono);flex-shrink:0;box-shadow:0 2px 10px color-mix(in srgb,var(--accent, #2563eb) 45%,transparent),0 0 0 1px color-mix(in srgb,var(--accent, #2563eb) 35%,transparent);position:relative;overflow:hidden}.brand-mark:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.25) 0%,transparent 60%);border-radius:7px}.brand span{background:linear-gradient(135deg,var(--text, #0f172a) 0%,color-mix(in srgb,var(--accent, #2563eb) 60%,var(--text, #0f172a)) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=dark] .brand span{background:linear-gradient(135deg,var(--text, #e2e8f0) 0%,var(--accent, #3b82f6) 100%);-webkit-background-clip:text;background-clip:text}.tb-divider{width:1px;height:20px;background:linear-gradient(180deg,transparent,var(--border, #e2e8f0),transparent);flex-shrink:0}.dag-meta{min-width:180px;display:flex;flex-direction:column;gap:1px}.dag-name{display:flex;align-items:center;gap:7px;min-width:0}.dag-name-input{width:148px;background:transparent;border:none;border-bottom:1.5px solid transparent;color:var(--text);font-family:var(--font-mono);font-size:13px;font-weight:700;padding:1px 0;outline:none;letter-spacing:-.01em;transition:border-color .16s ease}.dag-name-input::placeholder{color:var(--muted, #94a3b8);opacity:1}.dag-name-input:focus{border-bottom-color:var(--accent, #2563eb)}.tb-branch-badge{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--muted, #64748b);background:color-mix(in srgb,var(--accent, #2563eb) 8%,var(--panel-2, #f8fafc));border:1px solid color-mix(in srgb,var(--accent, #2563eb) 18%,var(--border, #e2e8f0));border-radius:4px;padding:1px 7px;letter-spacing:0;flex-shrink:0}.tb-save-line{display:inline-flex;align-items:center;gap:5px;color:var(--muted, #64748b);font-size:11px;white-space:nowrap}.tb-save-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;transition:background .25s ease,box-shadow .25s ease}.tb-save-dot.saved{background:var(--success, #059669);box-shadow:0 0 0 2px color-mix(in srgb,var(--success, #059669) 22%,transparent)}.tb-save-dot.unsaved{background:var(--warning, #f59e0b);box-shadow:0 0 0 2px color-mix(in srgb,var(--warning, #f59e0b) 22%,transparent)}.tb-save-dot.saving{background:var(--accent, #2563eb);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent, #2563eb) 25%,transparent);animation:dot-pulse .7s ease infinite}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}.tb-actions,.tb-right{display:flex;align-items:center;gap:3px;min-width:0}.tb-right{margin-left:auto}.topbar .iconbtn{height:30px;min-width:30px;padding:0 8px;border-radius:7px;color:var(--text-2, #334155);border:1px solid transparent;font-size:11.5px;font-weight:500;gap:5px;transition:background .11s ease,border-color .11s ease,color .11s ease,box-shadow .11s ease}.topbar .iconbtn:hover{background:color-mix(in srgb,var(--accent, #2563eb) 8%,var(--hover, #f1f5f9));border-color:color-mix(in srgb,var(--accent, #2563eb) 20%,var(--border, #e2e8f0));color:var(--text, #0f172a);box-shadow:0 1px 3px #00000012}.topbar .iconbtn.active{background:var(--accent-soft, rgba(37,99,235,.12));color:var(--accent, #2563eb);border-color:var(--accent-border, rgba(37,99,235,.35))}.topbar .iconbtn svg{width:13px;height:13px}.tb-labeled{padding:0 10px;font-weight:600;font-size:11.5px}.tb-error-badge{min-width:16px;height:16px;border-radius:5px;background:var(--error-soft, #fef2f2);border:1px solid var(--error-border, #fecaca);color:var(--error, #dc2626);font-size:9px;font-family:var(--font-mono);font-weight:800;display:inline-flex;align-items:center;justify-content:center;padding:0 3px;margin-left:1px}.topbar .btn-primary{height:30px;padding:0 14px;border-radius:7px;font-size:12px;font-weight:600;gap:6px;letter-spacing:.01em;border:none;background:linear-gradient(135deg,var(--accent, #2563eb) 0%,#1d4ed8 100%);color:#fff;box-shadow:0 2px 8px color-mix(in srgb,var(--accent, #2563eb) 40%,transparent),inset 0 1px #ffffff1f;transition:filter .14s ease,transform .14s cubic-bezier(.34,1.3,.64,1),box-shadow .14s ease}.topbar .btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 4px 16px color-mix(in srgb,var(--accent, #2563eb) 50%,transparent),inset 0 1px #ffffff26}.topbar .btn-primary:active{transform:translateY(0) scale(.97);filter:brightness(.97)}.topbar .btn-primary svg{width:13px;height:13px}.tb-run{background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%)!important;box-shadow:0 2px 8px #7c3aed61,inset 0 1px #ffffff1f!important}.tb-run:hover{box-shadow:0 4px 16px #7c3aed85,inset 0 1px #ffffff26!important}@media (max-width: 1250px){.tb-labeled span{display:none}.dag-meta{min-width:150px}}@media (max-width: 900px){.topbar{gap:7px;padding:0 10px}.brand span{display:none}.dag-meta{min-width:120px}.dag-name-input{width:110px}}.tg-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#f8fafc;color:#0f172a;overflow:auto}.tg-page{min-height:100%;padding:40px 42px}.tg-header{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,420px) auto;gap:18px;align-items:start}.tg-eyebrow{color:#64748b;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.tg-title{margin-top:6px;font-size:28px;font-weight:800;letter-spacing:-.02em}.tg-search{height:40px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid #e2e8f0;border-radius:6px;background:#f1f5f9;color:#64748b}.tg-search input{flex:1;border:0;outline:0;background:transparent;color:#0f172a;font:14px var(--font-sans)}.tg-categories{display:flex;gap:8px;flex-wrap:wrap;margin:34px 0 26px}.tg-chip{height:28px;padding:0 11px;border:1px solid #cbd5e1;border-radius:5px;background:transparent;color:#334155;cursor:pointer;font:600 13px var(--font-sans)}.tg-chip.active{background:#eff6ff;color:#2563eb;border-color:#93c5fd}.tg-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:18px}.tg-card{position:relative;min-height:196px;padding:16px;border-radius:8px;border:1px solid #e2e8f0;background:#ffffff;text-align:left;cursor:pointer;font-family:var(--font-sans);color:#0f172a;box-shadow:0 1px 2px #0f172a0a}.tg-card:hover,.tg-card.featured{border-color:#93c5fd;box-shadow:0 0 0 4px #2563eb24}.tg-featured{position:absolute;top:12px;right:12px;padding:3px 8px;border:1px solid #93c5fd;border-radius:4px;color:#2563eb;background:#dbeafe;text-transform:uppercase;font-size:10px;font-weight:700}.tg-preview{height:90px;margin-bottom:16px;padding:0 16px;border:1px dashed #dbe4ee;border-radius:5px;background:#f1f5f9;display:flex;align-items:center;justify-content:space-between;color:#64748b}.tg-preview-node{width:28px;height:28px;border-radius:5px;display:grid;place-items:center;background:#d9f2ff;color:#0284c7;font:700 11px var(--font-mono)}.tg-preview-line{height:1px;flex:1;margin:0 16px;background:#cbd5e1}.blank-preview{justify-content:center}.tg-card-name{font-size:16px;font-weight:800;margin-bottom:4px}.tg-card-desc{color:#64748b;font-size:13px}.tg-card-tasks{margin-top:16px;color:#64748b;font:13px var(--font-mono)}@media (max-width: 1100px){.tg-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media (max-width: 720px){.tg-page{padding:24px 16px}.tg-header{grid-template-columns:1fr auto}.tg-search{grid-column:1 / -1}.tg-grid{grid-template-columns:1fr}}.lsb{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--panel, #fff)}.lsb-tabs{display:flex;padding:6px 8px 0;gap:2px;border-bottom:1px solid var(--border, #e2e8f0);flex-shrink:0;background:var(--panel, #fff);position:relative}.lsb-tabs:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent, #1890ff) 0%,#722ed1 60%,#eb2f96 100%)}.lsb-tab{flex:1;height:30px;font-size:11px;font-weight:600;color:var(--muted, #64748b);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;font-family:var(--font-sans, system-ui);padding:0 6px;display:inline-flex;align-items:center;justify-content:center;gap:4px;border-radius:6px 6px 0 0;margin-bottom:-1px;letter-spacing:.02em;transition:color .16s ease,background .16s ease,border-color .16s ease}.lsb-tab:hover{color:var(--text, #0f172a);background:color-mix(in srgb,var(--accent, #1890ff) 6%,transparent)}.lsb-tab.active{color:var(--accent, #1890ff);border-bottom-color:var(--accent, #1890ff);background:color-mix(in srgb,var(--accent, #1890ff) 8%,transparent)}.lsb-tab svg{width:12px;height:12px;flex-shrink:0}.lsb-search{padding:8px 10px;border-bottom:1px solid var(--border, #e2e8f0);flex-shrink:0;background:var(--panel, #fff)}.search-wrap{position:relative}.search-wrap>svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--muted, #94a3b8);pointer-events:none}.search-wrap .input{height:32px;width:100%;padding-left:30px;padding-right:28px;background:var(--panel-2, #f8fafc);border:1px solid var(--border, #e2e8f0);border-radius:8px;color:var(--text, #0f172a);font-family:var(--font-sans, system-ui);font-size:12px;transition:border-color .14s ease,box-shadow .14s ease}.search-wrap .input::placeholder{color:var(--muted, #94a3b8)}.search-wrap .input:focus{outline:none;border-color:var(--accent, #1890ff);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent, #1890ff) 16%,transparent)}.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--muted, #94a3b8);font-size:14px;cursor:pointer;line-height:1;padding:0 2px;display:flex;align-items:center;justify-content:center}.search-clear:hover{color:var(--text, #0f172a)}.lsb-body{flex:1;overflow-y:auto;padding:6px 0 16px;scrollbar-width:thin;scrollbar-color:var(--border, #e2e8f0) transparent}.lsb-body::-webkit-scrollbar{width:3px}.lsb-body::-webkit-scrollbar-track{background:transparent}.lsb-body::-webkit-scrollbar-thumb{background:var(--border, #e2e8f0);border-radius:2px}.cat-group{margin:0 8px 3px}.cat-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 6px;height:44px;background:var(--panel-2, #f8fafc);border:1px solid var(--border, #e2e8f0);border-radius:10px;cursor:pointer;font-family:var(--font-sans, system-ui);position:relative;overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,transform .12s ease}.cat-header:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--cat-color, var(--accent, #1890ff));border-radius:10px 0 0 10px;opacity:.9}.cat-header:after{content:"";position:absolute;right:0;top:0;bottom:0;width:60%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--cat-color, #1890ff) 4%,transparent));pointer-events:none}.cat-header:hover{border-color:color-mix(in srgb,var(--cat-color, #1890ff) 40%,var(--border, #e2e8f0));box-shadow:0 2px 8px color-mix(in srgb,var(--cat-color, #1890ff) 12%,transparent),0 1px 2px #0000000a;background:color-mix(in srgb,var(--cat-color, #1890ff) 5%,var(--panel-2, #f8fafc));transform:translateY(-1px)}.cat-header:active{transform:translateY(0) scale(.99)}.cat-header-left{display:flex;align-items:center;gap:9px;flex:1;min-width:0;z-index:1}.cat-icon-wrap{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;position:relative}.cat-name{font-size:12.5px;font-weight:700;color:var(--text, #0f172a);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-header-right{display:flex;align-items:center;gap:7px;flex-shrink:0;z-index:1}.op-count-badge{font-size:10px;font-weight:700;font-family:var(--font-mono, monospace);background:color-mix(in srgb,var(--cat-color, #1890ff) 12%,var(--panel-3, #f1f5f9));color:color-mix(in srgb,var(--cat-color, #1890ff) 80%,#000);border:1px solid color-mix(in srgb,var(--cat-color, #1890ff) 25%,transparent);padding:2px 8px;border-radius:20px;line-height:1.5;min-width:26px;text-align:center}.chevron{color:var(--muted, #94a3b8);flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1),color .15s ease;transform:rotate(-90deg)}.chevron.open{transform:rotate(0);color:var(--cat-color, var(--accent, #1890ff))}.cat-body{margin:2px 0 2px 14px;padding-left:10px;border-left:2px solid color-mix(in srgb,var(--cat-color, #1890ff) 25%,var(--border, #e2e8f0))}.sub-group{margin-bottom:1px}.sub-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:5px 8px 5px 6px;height:32px;background:none;border:none;border-radius:7px;cursor:pointer;font-family:var(--font-sans, system-ui);transition:background .12s ease}.sub-header:hover{background:color-mix(in srgb,var(--cat-color, #1890ff) 7%,var(--panel-2, #f8fafc))}.sub-header-left{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.sub-icon{color:color-mix(in srgb,var(--cat-color, #1890ff) 70%,var(--muted, #94a3b8));flex-shrink:0}.sub-name{font-size:11px;font-weight:600;color:var(--text-2, #475569);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sub-header-right{display:flex;align-items:center;gap:5px;flex-shrink:0}.sub-count{font-size:9px;font-family:var(--font-mono, monospace);font-weight:600;color:var(--muted, #94a3b8);background:var(--panel-3, #f1f5f9);border:1px solid var(--border, #e2e8f0);padding:1px 6px;border-radius:8px;line-height:1.5}.sub-ops,.cat-ops{padding:2px 0 4px}.op-card{margin:1px 0;padding:6px 8px;border-radius:7px;display:flex;align-items:center;gap:9px;cursor:grab;border:1px solid transparent;transition:background .1s ease,border-color .1s ease,box-shadow .1s ease,transform .1s ease}.op-card:hover{background:color-mix(in srgb,var(--accent, #1890ff) 6%,var(--panel-2, #f8fafc));border-color:color-mix(in srgb,var(--accent, #1890ff) 22%,var(--border, #e2e8f0));box-shadow:0 1px 4px #0f172a12;transform:translate(2px)}.op-card:active{cursor:grabbing;transform:scale(.98)}.op-icon-wrap{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;flex-shrink:0}.op-meta{display:flex;flex-direction:column;min-width:0;flex:1}.op-name{font-size:11.5px;font-weight:600;color:var(--text, #0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}mark.op-highlight{background:color-mix(in srgb,var(--accent, #1890ff) 18%,transparent);color:var(--accent, #1890ff);border-radius:2px;padding:0 1px;font-weight:700}.op-desc{font-size:9.5px;color:var(--muted, #94a3b8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;line-height:1.3}.lsb-flat-results{padding:4px 8px}.flat-count{padding:4px 0 6px;font-size:9.5px;font-weight:600;color:var(--muted, #94a3b8);letter-spacing:.06em;text-transform:uppercase}.lsb-empty{padding:32px 16px;text-align:center;font-size:12px;color:var(--muted, #94a3b8);line-height:1.6}.lsb-section-label{padding:8px 12px 4px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted, #94a3b8);display:flex;align-items:center;justify-content:space-between}.cat-label-left{display:flex;align-items:center;gap:6px}.lsb-section-label .count{font-family:var(--font-mono, monospace);font-weight:400;background:var(--panel-3, #f1f5f9);border:1px solid var(--border, #e2e8f0);padding:1px 6px;border-radius:4px;letter-spacing:0;font-size:9px;color:var(--muted, #64748b)}.lsb-templates{padding:8px;display:flex;flex-direction:column;gap:6px}.tmpl-card{width:100%;text-align:left;padding:10px 12px;border-radius:10px;border:1px solid var(--border, #e2e8f0);background:var(--panel-2, #f8fafc);cursor:pointer;font-family:var(--font-sans, system-ui);transition:background .12s ease,border-color .12s ease,box-shadow .12s ease,transform .12s ease}.tmpl-card:hover{background:color-mix(in srgb,var(--accent, #1890ff) 7%,var(--panel, #fff));border-color:color-mix(in srgb,var(--accent, #1890ff) 30%,transparent);box-shadow:0 2px 10px #0f172a12;transform:translateY(-1px)}.tmpl-card:active{transform:translateY(0) scale(.99)}.tmpl-name{font-size:12.5px;font-weight:700;color:var(--text, #0f172a)}.tmpl-desc{font-size:11px;color:var(--muted, #64748b);margin-top:3px;line-height:1.5}.tmpl-meta{font-size:9.5px;color:var(--muted, #94a3b8);margin-top:6px;font-family:var(--font-mono, monospace);display:flex;align-items:center;gap:6px}.tmpl-meta:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent, #1890ff);opacity:.6}.lsb-group-create{border-style:dashed!important;background:transparent!important;color:var(--muted, #64748b)}.lsb-group-create:hover{border-style:dashed!important;background:color-mix(in srgb,var(--accent, #1890ff) 6%,transparent)!important;color:var(--accent, #1890ff)}@media (max-width: 1180px){.lsb-tab{font-size:0}.lsb-tab svg{margin:0;width:14px;height:14px}}.chp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;animation:chp-fade-in .2s ease-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:16px}@keyframes chp-fade-in{0%{opacity:0}to{opacity:1}}.chp-modal{background:var(--panel, #fff);border:1px solid var(--border, #e2e8f0);border-radius:var(--r-lg, 8px);box-shadow:0 20px 60px #0003,0 8px 24px #0000001f;display:flex;flex-direction:column;max-width:600px;width:100%;max-height:80vh;animation:chp-slide-up .3s cubic-bezier(.34,1.56,.64,1);position:relative}@keyframes chp-slide-up{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.chp-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:transparent;color:var(--text-2, #334155);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--r-md, 6px);transition:all .2s ease;z-index:10}.chp-close:hover{background:var(--hover, #f1f5f9);color:var(--text, #0f172a)}.chp-close:active{transform:scale(.95)}.chp-header{padding:24px 24px 16px;border-bottom:1px solid var(--border, #e2e8f0);flex-shrink:0}.chp-title{margin:0;font-size:18px;font-weight:700;color:var(--text, #0f172a);letter-spacing:-.3px}.chp-subtitle{margin:6px 0 0;font-size:13px;color:var(--text-2, #334155);line-height:1.4}.chp-tabs{display:flex;border-bottom:1px solid var(--border, #e2e8f0);flex-shrink:0;background:var(--panel-2, #f8fafc);gap:0}.chp-tab{flex:1;padding:12px 16px;border:none;background:transparent;color:var(--text-2, #334155);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;border-bottom:2px solid transparent;text-align:center;position:relative}.chp-tab:hover{background:var(--hover, #f1f5f9);color:var(--text, #0f172a)}.chp-tab.active{color:var(--accent, #2563eb);border-bottom-color:var(--accent, #2563eb)}.chp-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent, #2563eb)}.chp-content{flex:1;overflow-y:auto;padding:24px}.chp-section{animation:chp-fade-in .3s ease-out}.chp-subtitle-small{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent, #2563eb);margin-bottom:12px;display:block}.chp-presets-grid{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 500px){.chp-presets-grid{grid-template-columns:1fr 1fr}}.chp-preset-item{display:flex;flex-direction:column;gap:6px;padding:12px;background:var(--panel-2, #f8fafc);border:1px solid var(--border, #e2e8f0);border-radius:var(--r-md, 6px);transition:all .2s ease;cursor:pointer}.chp-preset-item:hover{background:var(--panel-3, #f1f5f9);border-color:var(--accent, #2563eb);box-shadow:0 0 0 2px var(--accent-soft, rgba(37, 99, 235, .12))}.chp-preset-item code{font-size:13px;font-weight:600;color:var(--accent, #2563eb);font-family:var(--font-mono, "IBM Plex Mono", monospace)}.chp-preset-item span{font-size:12px;color:var(--text-2, #334155);line-height:1.4}.chp-syntax-box{background:var(--code-bg, #f8fafc);border:1px solid var(--border, #e2e8f0);border-radius:var(--r-md, 6px);padding:16px;margin-bottom:16px;text-align:center}.chp-syntax-code{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:16px;font-weight:600;color:var(--accent, #2563eb);letter-spacing:2px}.chp-syntax-table{display:grid;gap:8px;margin-bottom:16px}.chp-syntax-row{display:grid;grid-template-columns:100px 1fr;gap:16px;padding:12px;background:var(--panel-2, #f8fafc);border-radius:var(--r-md, 6px);border-left:3px solid var(--accent, #2563eb)}.chp-syntax-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent, #2563eb)}.chp-syntax-desc{font-size:13px;color:var(--text-2, #334155);line-height:1.5}.chp-syntax-desc strong{color:var(--text, #0f172a);font-weight:600}.chp-operators{margin-top:16px}.chp-operator-item{display:grid;grid-template-columns:50px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--border, #e2e8f0)}.chp-operator-item:last-child{border-bottom:none}.chp-operator-item code{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:13px;font-weight:600;color:var(--accent, #2563eb);background:var(--code-bg, #f8fafc);padding:4px 8px;border-radius:var(--r-sm, 4px);display:inline-block;width:fit-content}.chp-operator-item span{font-size:13px;color:var(--text-2, #334155);line-height:1.5}.chp-examples{margin-top:16px}.chp-example-item{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:10px 12px;background:var(--panel-2, #f8fafc);border-radius:var(--r-md, 6px);margin-bottom:8px;align-items:center}@media (max-width: 480px){.chp-example-item{grid-template-columns:1fr;gap:8px}}.chp-example-item code{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:12px;font-weight:600;color:var(--accent, #2563eb);word-break:break-all}.chp-example-item span{font-size:12px;color:var(--text-2, #334155)}.chp-footer{padding:16px 24px;border-top:1px solid var(--border, #e2e8f0);background:var(--panel-2, #f8fafc);flex-shrink:0}.chp-footer-text{margin:0;font-size:12px;color:var(--text-2, #334155);line-height:1.6}.chp-link{color:var(--accent, #2563eb);text-decoration:none;font-weight:600;transition:color .2s ease}.chp-link:hover{color:color-mix(in srgb,var(--accent, #2563eb) 120%,#000)}.chp-content::-webkit-scrollbar{width:6px}.chp-content::-webkit-scrollbar-track{background:var(--panel, #fff)}.chp-content::-webkit-scrollbar-thumb{background:var(--border, #e2e8f0);border-radius:3px}.chp-content::-webkit-scrollbar-thumb:hover{background:var(--border-2, #cbd5e1)}@media (max-width: 600px){.chp-modal{max-width:calc(100vw - 32px);max-height:90vh;border-radius:var(--r-md, 6px)}.chp-header{padding:20px 20px 14px}.chp-content{padding:20px}.chp-footer{padding:14px 20px}.chp-title{font-size:16px}.chp-subtitle{font-size:12px}}.ri{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--panel, #fff)}.ri-head{padding:14px 16px 12px;border-bottom:1px solid var(--border, #e2e8f0);flex-shrink:0;position:relative;overflow:hidden;background:linear-gradient(155deg,color-mix(in srgb,var(--accent, #2563eb) 9%,var(--panel, #fff)) 0%,color-mix(in srgb,#7c3aed 4%,var(--panel, #fff)) 50%,var(--panel, #fff) 100%);box-shadow:0 1px 0 var(--border, #e2e8f0),0 4px 16px color-mix(in srgb,var(--accent, #2563eb) 6%,transparent)}.ri-head:after{content:"";position:absolute;top:-20px;right:-20px;width:80px;height:80px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent, #2563eb) 18%,transparent) 0%,transparent 70%);pointer-events:none}.ri-head:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent, #2563eb) 0%,#7c3aed 45%,#db2777 80%,#f97316 100%);z-index:1}.ri-eyebrow{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--accent, #2563eb);display:flex;align-items:center;gap:6px}.ri-eyebrow:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent, #2563eb);box-shadow:0 0 7px var(--accent, #2563eb);animation:ri-dot-pulse 2.4s ease-in-out infinite}@keyframes ri-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}.ri-title-row{display:flex;align-items:center;gap:8px;margin-top:5px}.ri-title{font-size:15px;font-weight:800;color:var(--text, #0f172a);letter-spacing:-.4px;line-height:1.2}.ri-id{margin-top:5px;color:var(--muted, #64748b);font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:10px;background:color-mix(in srgb,var(--accent, #2563eb) 8%,var(--panel-2, #f8fafc));border:1px solid color-mix(in srgb,var(--accent, #2563eb) 22%,transparent);border-radius:5px;padding:2px 8px;display:inline-flex;align-items:center;gap:5px}.ri-id:before{content:"#";color:var(--accent, #2563eb);font-weight:700;font-size:9px}.ri-tabs{display:flex;padding:0 10px;border-bottom:1px solid var(--border, #e2e8f0);flex-shrink:0;background:var(--panel, #fff);gap:2px}.ri-tab{height:34px;padding:0 12px;font-size:11px;font-weight:600;color:var(--muted, #64748b);background:transparent;border:none;cursor:pointer;font-family:var(--font-sans, system-ui);border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:6px 6px 0 0;transition:color .16s ease,background .16s ease,border-color .16s ease;letter-spacing:.02em}.ri-tab:hover{color:var(--text, #0f172a);background:color-mix(in srgb,var(--accent, #1890ff) 6%,transparent)}.ri-tab.active{color:var(--accent, #1890ff);border-bottom-color:var(--accent, #1890ff);background:color-mix(in srgb,var(--accent, #1890ff) 8%,transparent)}.ri-body{flex:1;overflow-y:auto;padding:10px 0 4px;scrollbar-width:thin;scrollbar-color:var(--border, #e2e8f0) transparent}.ri-body::-webkit-scrollbar{width:4px}.ri-body::-webkit-scrollbar-track{background:transparent}.ri-body::-webkit-scrollbar-thumb{background:var(--border, #e2e8f0);border-radius:2px}.ri-section{margin:0 10px 8px;padding:12px 12px 10px;background:var(--panel-2, #f8fafc);border:1px solid var(--border, #e2e8f0);border-radius:10px}[data-theme=dark] .ri-section{background:color-mix(in srgb,var(--panel, #0f172a) 60%,transparent);border-color:var(--border-2, #334155)}.ri-section-title{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted, #64748b);margin-bottom:10px;display:flex;align-items:center;gap:6px}.ri-section-title:before{content:"";display:block;width:3px;height:10px;background:var(--accent, #1890ff);border-radius:2px;flex-shrink:0}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.field:last-child{margin-bottom:0}.field-label{font-size:11px;font-weight:600;color:var(--text-2, #334155);letter-spacing:.01em}.field-label .req{color:var(--error, #ef4444);margin-left:2px}.field-input{height:30px;padding:0 10px;background:var(--panel, #fff);border:1px solid var(--border, #e2e8f0);border-radius:7px;color:var(--text, #0f172a);font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11.5px;width:100%;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.field-input::placeholder{color:var(--muted, #94a3b8)}.field-input:focus{outline:none;border-color:var(--accent, #1890ff);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent, #1890ff) 18%,transparent);background:var(--panel, #fff)}.field-input:read-only{background:color-mix(in srgb,var(--border, #e2e8f0) 40%,var(--panel, #fff));color:var(--muted, #64748b);cursor:default}.field-textarea{height:auto;min-height:56px;padding:8px 10px;resize:vertical;line-height:1.55}.field-row{display:flex;gap:6px}.field-row .field-input{flex:1}.field-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:11px;color:var(--text, #0f172a);background:var(--panel, #fff);border:1px solid var(--border, #e2e8f0);border-radius:7px;padding:4px 10px 4px 6px;transition:border-color .14s ease,box-shadow .14s ease;-webkit-user-select:none;user-select:none}.field-toggle:hover{border-color:var(--accent, #1890ff);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent, #1890ff) 12%,transparent)}.field-toggle input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:30px;height:16px;background:var(--border, #cbd5e1);border-radius:8px;cursor:pointer;position:relative;transition:background .2s ease;flex-shrink:0}.field-toggle input[type=checkbox]:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;background:#fff;border-radius:50%;transition:left .2s cubic-bezier(.34,1.3,.64,1);box-shadow:0 1px 3px #0000002e}.field-toggle input[type=checkbox]:checked{background:var(--accent, #1890ff)}.field-toggle input[type=checkbox]:checked:after{left:16px}.toggle-label{font-family:var(--font-mono, monospace);font-size:10.5px;color:var(--muted, #64748b);min-width:26px}.field-error{border-color:var(--error, #ef4444)!important}.field-error:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--error, #ef4444) 20%,transparent)!important}.field-err-msg{font-size:10px;color:var(--error, #ef4444);display:flex;align-items:center;gap:4px}.field-err-msg:before{content:"⚠";font-size:9px}.ri-advanced{margin:0 10px 8px;background:var(--panel-2, #f8fafc);border:1px solid var(--border, #e2e8f0);border-radius:10px;padding:0}[data-theme=dark] .ri-advanced{background:color-mix(in srgb,var(--panel, #0f172a) 60%,transparent);border-color:var(--border-2, #334155)}.ri-advanced-toggle{padding:10px 12px;cursor:pointer;list-style:none;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted, #64748b);display:flex;align-items:center;gap:6px;transition:color .14s ease}.ri-advanced-toggle:before{content:"";display:block;width:3px;height:10px;background:#722ed1;border-radius:2px}.ri-advanced-toggle::-webkit-details-marker{display:none}.ri-advanced-toggle:hover{color:var(--text, #0f172a)}.ri-advanced[open]{padding:0 12px 12px}.ri-advanced[open] .ri-advanced-toggle{margin-bottom:10px;border-bottom:1px solid var(--border, #e2e8f0);padding-bottom:10px}.ri-footer{padding:10px;border-top:1px solid var(--border, #e2e8f0);flex-shrink:0;background:var(--panel, #fff)}.btn-primary{width:100%;height:34px;background:linear-gradient(135deg,var(--accent, #1890ff) 0%,#0d7de8 100%);color:#fff;border:none;border-radius:8px;font-size:12px;font-weight:700;font-family:var(--font-sans, system-ui);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;letter-spacing:.02em;box-shadow:0 2px 12px color-mix(in srgb,var(--accent, #1890ff) 45%,transparent);transition:filter .15s ease,transform .15s cubic-bezier(.34,1.3,.64,1),box-shadow .15s ease}.btn-primary:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 4px 18px color-mix(in srgb,var(--accent, #1890ff) 55%,transparent)}.btn-primary:active{transform:translateY(0) scale(.98)}.btn-danger{width:100%;height:34px;background:color-mix(in srgb,#ef4444 10%,var(--panel-2, #f8fafc));color:#ef4444;border:1px solid color-mix(in srgb,#ef4444 30%,transparent);border-radius:8px;font-size:12px;font-weight:600;font-family:var(--font-sans, system-ui);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .15s ease,box-shadow .15s ease,transform .15s cubic-bezier(.34,1.3,.64,1)}.btn-danger:hover{background:#ef4444;color:#fff;box-shadow:0 4px 14px #ef444461;transform:translateY(-1px)}.btn-danger:active{transform:translateY(0) scale(.98)}.ri-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;font-size:12px;color:var(--muted, #94a3b8);text-align:center;padding:24px;gap:8px;line-height:1.6}.ri-empty-state:before{content:"✦";font-size:22px;color:var(--border, #cbd5e1);display:block}.ri-info-box{background:color-mix(in srgb,var(--accent, #1890ff) 7%,var(--panel, #fff));border:1px solid color-mix(in srgb,var(--accent, #1890ff) 22%,transparent);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.ri-info-step{font-size:11px;color:var(--text, #1e293b);line-height:1.55;display:flex;gap:6px}.ri-info-step em{font-style:normal;font-weight:700;color:var(--accent, #1890ff)}.ri-info-step code{font-family:var(--font-mono, monospace);font-size:10px;background:color-mix(in srgb,var(--border, #e2e8f0) 60%,transparent);padding:1px 5px;border-radius:4px}.ri-code-preview{background:color-mix(in srgb,#0f172a 96%,var(--accent, #1890ff));border:1px solid color-mix(in srgb,var(--accent, #1890ff) 18%,#1e293b);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:3px}.ri-code-preview code{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:10.5px;color:#e2e8f0;display:block;line-height:1.6}.field-input[type=number]{font-family:var(--font-mono, monospace)}select.field-input{height:30px;padding:0 8px;cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.diag{background:var(--panel);border-top:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;height:220px;overflow:hidden;transition:height .15s ease}.diag.collapsed{height:36px}.diag-head{height:36px;border-bottom:1px solid var(--border);display:flex;align-items:center;padding-left:8px;flex-shrink:0}.diag-tabs{display:flex;gap:0;flex:1}.diag-tab{height:36px;padding:0 14px;font-size:11px;font-weight:500;color:var(--muted);background:transparent;border:none;cursor:pointer;font-family:var(--font-sans, inherit);display:inline-flex;align-items:center;gap:6px;border-bottom:2px solid transparent;margin-bottom:-1px}.diag-tab:hover{color:var(--text)}.diag-tab.active{color:var(--text);border-bottom-color:var(--accent)}.diag-tab .num{font-family:var(--font-mono, monospace);font-size:9px;background:var(--panel-3);border:1px solid var(--border);padding:0 4px;border-radius:3px;min-width:16px;text-align:center}.diag-tab.active .num.err{color:var(--error);border-color:var(--error-border);background:var(--error-soft)}.diag-tab.active .num.warn{color:var(--warning);border-color:var(--warning-border);background:var(--warning-soft)}.diag-actions{padding-right:8px;display:flex;gap:2px}.diag-body{flex:1;overflow-y:auto}.issue-row{display:grid;grid-template-columns:24px 1fr auto;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border);align-items:center;cursor:pointer;font-size:12px}.issue-row:hover{background:var(--hover)}.issue-row.clickable{cursor:pointer}.issue-fix-btn{margin-left:auto;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:600;border-radius:3px;border:1px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer}.issue-fix-btn:hover{background:var(--accent-soft)}.issue-sev{display:grid;place-items:center}.issue-sev svg{width:14px;height:14px}.issue-sev.err svg{color:var(--error)}.issue-sev.warn svg{color:var(--warning)}.issue-sev.info svg{color:var(--info)}.issue-main{display:flex;flex-direction:column;min-width:0;gap:1px}.issue-title{font-weight:500;font-size:12px}.issue-desc{font-size:11px;color:var(--muted)}.issue-node{font-family:var(--font-mono, monospace);font-size:10px;color:var(--muted)}.diag-empty{padding:16px 14px;font-size:12px;color:var(--muted);text-align:center}.diag-quality{padding:16px 28px;display:flex;align-items:center;gap:34px;height:100%}.quality-score-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}.quality-score-value{font-size:36px;font-weight:700;color:var(--text);font-family:var(--font-mono, monospace);line-height:1}.quality-score-max{font-size:16px;color:var(--muted)}.issue-actions{display:flex;gap:4px;margin-left:auto;flex-shrink:0}.issue-explain-btn{padding:2px 8px;font-size:10px;font-weight:600;border-radius:3px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer}.issue-explain-btn:hover{color:var(--text);border-color:var(--border-2)}.doctor-list{padding:8px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;height:100%}.doctor-card{padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:var(--panel-2)}.doctor-card-title{font-size:12px;font-weight:600;margin-bottom:6px}.doctor-row{font-size:11px;color:var(--text-2);line-height:1.5;margin-bottom:3px}.doctor-lbl{font-weight:600;color:var(--text);margin-right:4px}.quality-dims{width:100%;max-width:720px;display:flex;flex-direction:column;gap:13px}.quality-dim-row{display:grid;grid-template-columns:112px 1fr 34px;align-items:center;gap:12px}.quality-dim-label{font-size:13px;color:var(--text-2);width:auto;flex-shrink:0;font-weight:700}.quality-dim-bar{flex:1;height:7px;background:var(--panel-3);border-radius:999px;overflow:hidden}.quality-dim-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .4s ease}.quality-dim-val{font-size:12px;color:var(--text);font-family:var(--font-mono);width:34px;text-align:right;flex-shrink:0}.cp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--canvas) 72%,transparent);background-image:radial-gradient(circle,var(--grid-dot) 1.2px,transparent 1.2px);background-size:16px 16px;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding-top:18vh}.cp-modal{width:560px;max-width:calc(100vw - 32px);max-height:min(640px,calc(100vh - 80px));background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column}.cp-search-row{height:58px;display:flex;align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid var(--border)}.cp-input{flex:1;background:transparent;border:none;outline:none;font-size:18px;color:var(--text);font-family:var(--font-sans)}.cp-input::placeholder{color:var(--muted)}.cp-list{max-height:410px;overflow-y:auto;padding:8px 0}.cp-empty{padding:24px;text-align:center;font-size:12px;color:var(--muted)}.cp-item{width:100%;min-height:44px;display:flex;align-items:center;gap:12px;padding:8px 16px;border:none;border-left:2px solid transparent;background:transparent;cursor:pointer;text-align:left;font-family:var(--font-sans);color:var(--text)}.cp-item:hover,.cp-item.active{background:var(--selected);border-left-color:var(--accent);color:var(--accent)}.cp-item-icon{width:20px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:currentColor}.cp-item-main{flex:1;min-width:0;display:flex;align-items:baseline;gap:10px}.cp-item-label{font-size:14px;font-weight:500;color:currentColor;white-space:nowrap}.cp-item-desc{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cp-ai-badge{font-size:10px;font-weight:700;color:var(--accent);border:1px solid var(--accent-border);background:var(--accent-soft);border-radius:4px;padding:1px 6px;flex-shrink:0}.cp-shortcut{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.cp-footer{min-height:38px;display:flex;align-items:center;gap:26px;padding:0 16px;border-top:1px solid var(--border);background:var(--panel-2);color:var(--muted);font-size:11px}.cp-footer span:last-child{margin-left:auto}@media (max-width: 640px){.cp-backdrop{padding-top:12vh}.cp-item-main{flex-direction:column;align-items:flex-start;gap:1px}.cp-shortcut,.cp-footer{display:none}}.idm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--canvas) 86%,rgba(0,0,0,.25));background-image:radial-gradient(circle,var(--grid-dot) 1.2px,transparent 1.2px);background-size:16px 16px;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}.idm-modal{width:780px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.idm-header{display:flex;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}.idm-eyebrow,.idm-detected-title{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.idm-title{margin-top:2px;font-size:15px;font-weight:700;color:var(--text)}.idm-header .iconbtn{margin-left:auto}.idm-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);padding:0 18px}.idm-tab{height:42px;padding:0 16px;font-size:12px;font-weight:700;color:var(--muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;font-family:var(--font-sans);margin-bottom:-1px}.idm-tab:hover{color:var(--text)}.idm-tab.active{color:var(--text);border-bottom-color:var(--accent)}.idm-body{flex:1;min-height:0;overflow:auto;padding:18px;display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px}.idm-editor-wrap{min-width:0}.idm-textarea{width:100%;min-height:360px;resize:vertical;background:var(--code-bg);border:1px solid var(--border);border-radius:7px;padding:18px 18px 18px 54px;font-family:var(--font-mono);font-size:13px;line-height:1.55;color:var(--text);outline:none;box-sizing:border-box;background-image:linear-gradient(to right,var(--panel-2) 0 42px,transparent 42px)}.idm-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.idm-upload-zone{min-height:260px;border:1px dashed var(--border-2);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);font-size:13px;background:var(--code-bg)}.idm-upload-zone:hover{border-color:var(--accent);color:var(--text)}.idm-filename{font-family:var(--font-mono);font-size:12px;color:var(--text)}.idm-editor-meta{margin-top:10px;color:var(--muted);font-size:12px;font-family:var(--font-mono)}.idm-detected dl{margin:16px 0 0}.idm-detected dl>div{display:grid;grid-template-columns:1fr auto;gap:12px;padding:7px 0;border-bottom:1px solid var(--border)}.idm-detected dt{color:var(--muted);font-size:13px}.idm-detected dd{color:var(--text);font-family:var(--font-mono);font-size:13px;margin:0;text-align:right}.idm-warnings,.idm-error{margin-top:18px;border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:6px;font-size:12px}.idm-warnings{color:var(--warning);background:var(--warning-soft);border:1px solid var(--warning-border)}.idm-warnings span{color:var(--text-2);line-height:1.45}.idm-error{color:var(--error);background:var(--error-soft);border:1px solid var(--error-border)}.idm-footer{min-height:58px;display:flex;align-items:center;gap:12px;padding:10px 18px;border-top:1px solid var(--border);background:var(--panel-2)}.idm-footer-actions{margin-left:auto;display:flex;gap:8px}@media (max-width: 760px){.idm-body{grid-template-columns:1fr}.idm-textarea{min-height:260px}}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:rgba(255,255,255,.5);padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:rgba(0,89,220,.08);border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.af-node{position:relative;width:192px;background:var(--panel, #ffffff);border:1px solid var(--border, #e2e8f0);border-radius:8px;box-shadow:0 1px 3px #00000014,0 1px 2px #0000000a;font-family:var(--font-sans, "Inter", system-ui, sans-serif);overflow:visible;transition:box-shadow .15s ease,border-color .15s ease;cursor:pointer}.af-node:hover{border-color:var(--accent, #1890ff);box-shadow:0 4px 12px #0000001f,0 0 0 1px var(--accent, #1890ff)}.af-node.selected,.af-node:focus-within{border-color:var(--accent, #1890ff);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent, #1890ff) 25%,transparent),0 4px 12px #0000001f}.af-node--idle{border-color:var(--border, #e2e8f0)}.af-node--success{border-color:#52c41a!important;box-shadow:0 0 0 1.5px #52c41a59,0 0 14px #52c41a2e,0 1px 3px #00000014!important;animation:af-success-pulse 2.6s ease-in-out infinite}@keyframes af-success-pulse{0%,to{box-shadow:0 0 0 1.5px #52c41a59,0 0 14px #52c41a2e,0 1px 3px #00000014}50%{box-shadow:0 0 0 3px #52c41a33,0 0 24px #52c41a47,0 1px 3px #00000014}}.af-node--warning{border-color:#faad14!important;box-shadow:0 0 0 1.5px #faad144d,0 0 12px #faad1426,0 1px 3px #00000014!important}.af-node--error{border-color:#ff4d4f!important;box-shadow:0 0 0 2px #ff4d4f66,0 0 20px #ff4d4f40,0 1px 3px #00000014!important;animation:af-error-pulse 1.6s ease-in-out infinite}@keyframes af-error-pulse{0%,to{box-shadow:0 0 0 2px #ff4d4f66,0 0 20px #ff4d4f40,0 1px 3px #00000014}50%{box-shadow:0 0 0 3px #ff4d4f40,0 0 32px #ff4d4f59,0 1px 3px #00000014}}.af-node__stripe{height:3px;border-radius:8px 8px 0 0;margin:0}.af-node__body{padding:9px 11px 10px;display:flex;flex-direction:column;gap:4px}.af-node__header{display:flex;align-items:center;gap:7px}.af-node__icon{width:24px;height:24px;border-radius:5px;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.92}.af-node__label{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--text, #1e293b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.af-node__status{width:7px;height:7px;border-radius:50%;flex-shrink:0}.af-node__status.success{background:#52c41a;animation:af-dot-success 2.2s ease-in-out infinite}.af-node__status.warning{background:#faad14}.af-node__status.error{background:#ff4d4f;animation:af-dot-error 1.4s ease-in-out infinite}.af-node__status.idle{background:var(--border-2, #cbd5e1)}@keyframes af-dot-success{0%{box-shadow:0 0 #52c41a99}60%{box-shadow:0 0 0 4px #52c41a00}to{box-shadow:0 0 #52c41a00}}@keyframes af-dot-error{0%,to{opacity:1}50%{opacity:.35}}.af-node__type{font-size:10.5px;font-weight:500;color:var(--muted, #94a3b8);padding-left:31px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.af-node__taskid{margin-top:2px;padding:2px 6px;border-radius:4px;border:1px solid var(--border, #e2e8f0);background:var(--panel-2, #f8fafc);font-size:9.5px;font-family:var(--font-mono, "IBM Plex Mono", "Fira Code", monospace);color:var(--text-2, #64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.af-handle{width:8px!important;height:8px!important;border-radius:50%!important;border:2px solid var(--panel, #fff)!important;background:var(--edge-color, #94a3b8)!important;transition:background .15s ease,transform .15s ease,box-shadow .15s ease!important}.af-handle--target{left:-5px!important}.af-handle--source{right:-5px!important}.af-node:hover .af-handle,.af-node.selected .af-handle{background:var(--accent, #1890ff)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent, #1890ff) 25%,transparent)!important}.af-handle:hover{transform:scale(1.4)!important;background:var(--accent, #1890ff)!important}.af-node__actions{position:absolute;top:-30px;right:0;display:flex;gap:2px;padding:3px 4px;background:var(--panel, #fff);border:1px solid var(--border, #e2e8f0);border-radius:6px;box-shadow:0 2px 8px #0000001f;opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:100}.af-node:hover .af-node__actions{opacity:1;pointer-events:all}.af-action{width:20px;height:20px;border:none;border-radius:4px;background:transparent;color:var(--muted, #94a3b8);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .1s ease,color .1s ease}.af-action:hover{background:var(--panel-2, #f1f5f9);color:var(--accent, #1890ff)}.af-action--danger:hover{background:rgba(255,77,79,.1);color:#ff4d4f}[data-theme=dark] .af-node{background:var(--panel, #1e293b);border-color:var(--border, #334155);box-shadow:0 1px 3px #0000004d,0 1px 2px #0003}[data-theme=dark] .af-node__taskid{background:var(--panel-2, #0f172a);border-color:var(--border, #334155)}[data-theme=dark] .af-node__actions{background:var(--panel, #1e293b);border-color:var(--border, #334155);box-shadow:0 2px 8px #0006}[data-theme=dark] .af-action:hover{background:var(--panel-2, #0f172a)}.custom-edge{fill:none;stroke:var(--edge, #94a3b8);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:stroke .15s ease,stroke-width .15s ease}.ce-group:hover .custom-edge,.edge-hit-area:hover~.custom-edge{stroke:var(--accent, #1890ff);stroke-width:2}.custom-edge.selected{stroke:var(--accent, #1890ff);stroke-width:2}.custom-edge.cross-group{stroke:var(--accent, #1890ff);stroke-width:1.5;stroke-dasharray:5 3;opacity:.6}.ce-hot-dash{pointer-events:none;animation:ce-dash-flow linear infinite}@keyframes ce-dash-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-80}}.ce-dot-lead,.ce-dot-trail,.ce-dot-spark{pointer-events:none}.ce-selected .custom-edge{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--accent, #1890ff) 50%,transparent))}.edge-hit-area{cursor:pointer}.react-flow__arrowhead path{fill:var(--edge, #94a3b8)}@keyframes modal-in{0%{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modal-out{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.94) translateY(10px)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes backdrop-out{0%{opacity:1}to{opacity:0}}.task-editor-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;pointer-events:none}.task-editor-backdrop.backdrop-opening{animation:backdrop-in .18s ease both}.task-editor-backdrop.backdrop-closing{animation:backdrop-out .2s ease both}.task-editor-modal-light{--editor-panel: #ffffff;--editor-panel-2: #f7f9fc;--editor-panel-3: #eef3fa;--editor-border: #dbe3ef;--editor-border-strong: #c8d3e1;--editor-text: #101828;--editor-muted: #667085;--editor-faint: #94a3b8;--editor-hover: #f1f5f9;--editor-code: #f8fafc;--editor-chrome-from: color-mix(in srgb, var(--accent, #2563eb) 6%, #f7f9fc)}.task-editor-modal-dark{--editor-panel: #101827;--editor-panel-2: #111b2d;--editor-panel-3: #17243a;--editor-border: #24324a;--editor-border-strong: #33445f;--editor-text: #e5e7eb;--editor-muted: #9aa7bd;--editor-faint: #708098;--editor-hover: #162238;--editor-code: #0b1220;--editor-chrome-from: color-mix(in srgb, var(--accent, #3b82f6) 9%, #111b2d)}.task-editor-modal{position:absolute;top:14px;right:14px;width:min(500px,calc(100vw - 28px));max-height:calc(100vh - 86px);background:var(--editor-panel);border:1px solid var(--editor-border);border-radius:12px;box-shadow:0 0 0 1px #0000000a,0 8px 24px #0f172a1f,0 24px 56px #0f172a2e;z-index:1000;display:flex;flex-direction:column;overflow:hidden;pointer-events:auto;color:var(--editor-text)}.task-editor-modal.modal-opening{animation:modal-in .22s cubic-bezier(.34,1.2,.64,1) both}.task-editor-modal.modal-closing{animation:modal-out .2s cubic-bezier(.4,0,1,1) both}.modal-header{min-height:72px;padding:14px 16px 12px;border-bottom:1px solid var(--editor-border);background:linear-gradient(160deg,var(--editor-chrome-from, var(--editor-panel-2)) 0%,var(--editor-panel) 100%);cursor:move;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.modal-header-stripe{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent, #2563eb) 0%,#7c3aed 45%,#db2777 80%,#f97316 100%);z-index:1}.modal-header:after{content:"";position:absolute;top:-20px;right:-20px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent, #2563eb) 12%,transparent) 0%,transparent 70%);pointer-events:none}.modal-title{display:flex;align-items:flex-start;gap:12px;min-width:0;z-index:1}.operator-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;flex-shrink:0;box-shadow:0 2px 8px #0000002e,inset 0 1px #ffffff38}.title-content{min-width:0}.modal-eyebrow{display:flex;align-items:center;gap:6px;margin-bottom:4px;color:var(--editor-muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.modal-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.modal-status-dot.ok{background:#10b981;box-shadow:0 0 5px #10b98180}.modal-status-dot.warn{background:#f59e0b;box-shadow:0 0 5px #f59e0b80}.modal-status-dot.error{background:#ef4444;box-shadow:0 0 5px #ef444480}.modal-title h3{margin:0;color:var(--editor-text);font-size:15px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.operator-description{margin:3px 0 0;color:var(--editor-faint);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10.5px;line-height:1.35}.close-button{width:28px;height:28px;flex-shrink:0;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--editor-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;z-index:1;transition:background .13s ease,color .13s ease,border-color .13s ease}.close-button:hover{background:rgba(239,68,68,.1);border-color:#ef44444d;color:#ef4444}.task-editor-tabs{display:flex;align-items:center;height:40px;padding:0 12px;border-bottom:1px solid var(--editor-border);background:var(--editor-panel-2);gap:2px;flex-shrink:0}.task-editor-tab{height:40px;padding:0 11px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--editor-muted);cursor:pointer;font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:lowercase;transition:color .12s ease,border-color .12s ease}.task-editor-tab:hover{color:var(--editor-text)}.task-editor-tab.active{color:var(--accent, #2563eb);border-bottom-color:var(--accent, #2563eb)}.tab-pills{margin-left:auto;display:flex;align-items:center;gap:5px}.tab-pill{height:18px;padding:0 7px;border-radius:5px;font-size:10px;font-weight:700;font-family:ui-monospace,monospace;display:inline-flex;align-items:center}.tab-pill--error{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.3);color:#ef4444}.tab-pill--warn{background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.3);color:#d97706}.modal-content{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:12px}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:transparent}.modal-content::-webkit-scrollbar-thumb{background:var(--editor-border-strong);border-radius:999px}.editor-section{border:1px solid var(--editor-border);border-radius:10px;background:linear-gradient(180deg,var(--editor-panel) 0%,var(--editor-panel-2) 100%);padding:13px;display:flex;flex-direction:column;gap:11px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--editor-text);font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.section-count{max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--editor-muted);font-family:ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:0;text-transform:none}.parameter-group{display:flex;flex-direction:column;gap:5px}.parameter-label{color:var(--editor-text);font-size:11.5px;font-weight:700;display:flex;align-items:center;gap:4px}.required{color:#ef4444}.parameter-help{margin-top:-2px;color:var(--editor-muted);font-size:11px;line-height:1.45}.parameter-input,.parameter-textarea,.parameter-select{width:100%;min-height:34px;padding:7px 10px;border:1px solid var(--editor-border);border-radius:7px;background:var(--editor-panel-2);color:var(--editor-text);font-size:12px;line-height:1.35;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.parameter-input::placeholder,.parameter-textarea::placeholder{color:var(--editor-faint)}.parameter-input:hover,.parameter-textarea:hover,.parameter-select:hover{border-color:var(--editor-border-strong)}.parameter-input:focus,.parameter-textarea:focus,.parameter-select:focus{border-color:var(--accent, #2563eb);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent, #2563eb) 15%,transparent);background:var(--editor-panel)}.parameter-textarea{min-height:72px;resize:vertical}.parameter-select{cursor:pointer}.operator-picker{display:flex;flex-direction:column;gap:7px}.operator-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.operator-search{height:34px;padding:0 10px;border:1px solid var(--editor-border);border-radius:7px;background:var(--editor-panel-2);color:var(--editor-muted);display:flex;align-items:center;gap:8px;transition:border-color .15s ease,box-shadow .15s ease}.operator-search:focus-within{border-color:var(--accent, #2563eb);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent, #2563eb) 15%,transparent)}.operator-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--editor-text);font-size:12px}.operator-search input::placeholder{color:var(--editor-faint)}.operator-select{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;background-color:var(--editor-panel)}.operator-summary{display:flex;flex-wrap:wrap;gap:5px}.operator-summary span{padding:3px 8px;border:1px solid var(--editor-border);border-radius:999px;background:var(--editor-panel-2);color:var(--editor-muted);font-size:10.5px;text-transform:capitalize}.operator-description-large{margin:0;color:var(--editor-muted);font-size:12px;line-height:1.55}.docs-link{height:24px;padding:0 9px;border:1px solid var(--editor-border);border-radius:999px;color:var(--accent, #2563eb);text-decoration:none;font-size:11px;font-weight:700;display:inline-flex;align-items:center;gap:5px;transition:background .13s ease,border-color .13s ease}.docs-link:hover{background:color-mix(in srgb,var(--accent, #2563eb) 10%,transparent);border-color:color-mix(in srgb,var(--accent, #2563eb) 35%,transparent)}.docs-grid{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px 12px;padding:11px;border:1px solid var(--editor-border);border-radius:8px;background:var(--editor-panel-2)}.docs-grid span{color:var(--editor-muted);font-size:11px;text-transform:lowercase}.docs-grid strong{min-width:0;overflow-wrap:anywhere;color:var(--editor-text);font-family:ui-monospace,monospace;font-size:11px;font-weight:700}.docs-primary-link{width:max-content;max-width:100%;min-height:34px;padding:0 13px;border:1px solid color-mix(in srgb,var(--accent, #2563eb) 35%,transparent);border-radius:7px;background:color-mix(in srgb,var(--accent, #2563eb) 10%,transparent);color:var(--accent, #2563eb);text-decoration:none;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:7px;transition:background .13s ease}.docs-primary-link:hover{background:color-mix(in srgb,var(--accent, #2563eb) 16%,transparent)}.checkbox-label{display:flex;align-items:center;gap:9px;cursor:pointer;color:var(--editor-text);font-size:13px;-webkit-user-select:none;user-select:none}.parameter-checkbox{display:none}.checkbox-custom{width:18px;height:18px;border:1.5px solid var(--editor-border-strong);border-radius:5px;background:var(--editor-panel-2);position:relative;flex-shrink:0;transition:background .14s ease,border-color .14s ease}.parameter-checkbox:checked+.checkbox-custom{background:var(--accent, #2563eb);border-color:var(--accent, #2563eb)}.parameter-checkbox:checked+.checkbox-custom:after{content:"";position:absolute;top:3px;left:6px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.advanced-code-editor{overflow:hidden;border:1px solid var(--editor-border);border-radius:8px;background:var(--editor-code)}.code-editor-toolbar{height:32px;padding:0 10px;border-bottom:1px solid var(--editor-border);background:var(--editor-panel-3);display:flex;align-items:center}.language-badge{height:20px;padding:0 7px;border-radius:5px;color:#fff;font-size:10px;font-weight:800;display:inline-flex;align-items:center;gap:5px}.language-badge span{line-height:1}.monaco-editor-container{background:var(--editor-code)}.no-parameters{min-height:72px;padding:20px;border:1.5px dashed var(--editor-border-strong);border-radius:9px;background:var(--editor-panel-2);color:var(--editor-muted);text-align:center;font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.no-parameters p{margin:0}.modal-footer{padding:10px 14px;border-top:1px solid var(--editor-border);background:linear-gradient(0deg,var(--editor-panel-2) 0%,var(--editor-panel) 100%);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}.delete-button,.cancel-button,.save-button{height:32px;padding:0 13px;border-radius:7px;font-size:12px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .13s ease,transform .13s cubic-bezier(.34,1.3,.64,1),box-shadow .13s ease}.delete-button{border:1px solid rgba(239,68,68,.3);background:rgba(239,68,68,.08);color:#ef4444}.delete-button:hover{background:rgba(239,68,68,.16);border-color:#ef444473;transform:scale(1.03)}.action-buttons{display:flex;align-items:center;gap:7px}.cancel-button{border:1px solid var(--editor-border);background:var(--editor-panel);color:var(--editor-text)}.cancel-button:hover{background:var(--editor-hover);border-color:var(--editor-border-strong)}.save-button{border:none;background:linear-gradient(135deg,var(--accent, #2563eb) 0%,#1d4ed8 100%);color:#fff;box-shadow:0 2px 8px color-mix(in srgb,var(--accent, #2563eb) 40%,transparent),inset 0 1px #ffffff24}.save-button:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 4px 16px color-mix(in srgb,var(--accent, #2563eb) 50%,transparent),inset 0 1px #ffffff2e}.save-button:active{transform:translateY(0) scale(.97);filter:brightness(.97)}@media (max-width: 768px){.task-editor-modal{top:10px;right:10px;left:10px;width:auto;max-height:calc(100vh - 76px)}.modal-header{padding:12px}.modal-title h3{font-size:14px;max-width:200px}.modal-content{padding:10px}.modal-footer{align-items:stretch;flex-direction:column}.delete-button,.action-buttons,.cancel-button,.save-button{width:100%}}.canvas-toolbar{position:absolute;bottom:16px;left:12px;transform:none;z-index:10;display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--panel, #fff);border:1px solid var(--border, #e2e8f0);border-radius:var(--r-md, 6px);padding:0;overflow:hidden;box-shadow:var(--shadow-sm)}.ct-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:0;color:var(--muted, #9ca3af);cursor:pointer;transition:background .1s,color .1s}.ct-btn:hover:not(:disabled){background:var(--hover, rgba(0,0,0,.06));color:var(--text, #1f2937)}.ct-btn:disabled{opacity:.3;cursor:not-allowed}.ct-btn--clear:hover:not(:disabled){color:var(--error, #ef4444);background:var(--error-soft, rgba(239,68,68,.08))}.ct-btn--clear.confirming{color:var(--error, #ef4444);background:var(--error-soft, rgba(239,68,68,.12));border-top:1px solid var(--error-border, rgba(239,68,68,.3));border-bottom:1px solid var(--error-border, rgba(239,68,68,.3));width:auto;padding:0 8px;gap:4px;animation:ct-pulse 1s ease-in-out infinite}.ct-clear-label{font-size:10px;font-weight:600;letter-spacing:.02em;white-space:nowrap;font-family:var(--font-sans, system-ui)}@keyframes ct-pulse{0%,to{opacity:1}50%{opacity:.7}}.ct-divider{width:100%;height:1px;background:var(--border, #e2e8f0);margin:0}.task-group-node2{min-width:200px;min-height:120px;width:100%;height:100%;border:1.5px dashed var(--border, #cbd5e1);border-radius:10px;background:color-mix(in srgb,var(--accent, #1890ff) 4%,var(--canvas, #f1f5f9));display:flex;flex-direction:column;position:relative;box-sizing:border-box;transition:border-color .15s ease,background .15s ease}.task-group-node2:hover{border-color:var(--accent, #1890ff);background:color-mix(in srgb,var(--accent, #1890ff) 6%,var(--canvas, #f1f5f9))}.task-group-node2.selected{border-color:var(--accent, #1890ff);border-style:solid;background:color-mix(in srgb,var(--accent, #1890ff) 7%,var(--canvas, #f1f5f9));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent, #1890ff) 20%,transparent)}.task-group-node2.collapsed{min-height:40px;height:40px}.tgn-header{display:flex;align-items:center;gap:6px;padding:7px 10px 6px;border-bottom:1px dashed var(--border, #cbd5e1);flex-shrink:0}.task-group-node2.collapsed .tgn-header{border-bottom:none}.tgn-toggle{width:16px;height:16px;border:1px solid var(--border, #cbd5e1);border-radius:3px;background:var(--panel, #fff);color:var(--muted, #94a3b8);font-size:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:border-color .12s,color .12s,background .12s}.tgn-toggle:hover{border-color:var(--accent, #1890ff);color:var(--accent, #1890ff);background:color-mix(in srgb,var(--accent, #1890ff) 10%,var(--panel, #fff))}.tgn-label{font-size:10px;font-weight:700;color:var(--accent, #1890ff);text-transform:uppercase;letter-spacing:.07em;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-sans, "Inter", system-ui, sans-serif)}.tgn-hint{font-size:9px;color:var(--muted, #94a3b8);opacity:.7;flex-shrink:0;font-style:italic}.tgn-body{flex:1;display:flex;align-items:center;justify-content:center;pointer-events:none;padding:8px}.tgn-drop-hint{font-size:10px;color:var(--muted, #94a3b8);opacity:0;text-align:center;-webkit-user-select:none;user-select:none;transition:opacity .2s}.task-group-node2:hover .tgn-drop-hint{opacity:.6}.tgn-handle{width:10px!important;height:10px!important;background:var(--accent, #1890ff)!important;border:2px solid var(--panel, #fff)!important;border-radius:50%!important;opacity:0;transition:opacity .15s ease,transform .15s ease!important}.task-group-node2:hover .tgn-handle,.task-group-node2.selected .tgn-handle{opacity:1}.tgn-handle:hover{transform:scale(1.3)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent, #1890ff) 25%,transparent)!important}[data-theme=dark] .task-group-node2{border-color:color-mix(in srgb,var(--accent, #1890ff) 35%,var(--border, #334155));background:color-mix(in srgb,var(--accent, #1890ff) 7%,var(--canvas, #0f172a))}[data-theme=dark] .tgn-header{border-bottom-color:color-mix(in srgb,var(--accent, #1890ff) 25%,var(--border, #334155))}[data-theme=dark] .tgn-toggle{background:var(--panel, #1e293b);border-color:var(--border, #334155)}.ec-root{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;z-index:5}.ec-stage{position:absolute;top:0;right:0;bottom:0;left:0}.ec-svg{width:100%;height:100%;display:block;opacity:0;animation:ec-fade 1s ease .05s forwards}.ec-edge-track{opacity:0;animation:ec-track-draw .55s cubic-bezier(.4,0,.2,1) forwards}@keyframes ec-track-draw{0%{opacity:1;stroke-dashoffset:var(--len)}to{opacity:1;stroke-dashoffset:0}}.ec-edge-hot{opacity:0;animation:ec-fade .3s ease forwards,ec-hot-dash 2.4s linear .3s infinite}@keyframes ec-hot-dash{0%{stroke-dashoffset:0}to{stroke-dashoffset:-80}}.ec-dot-lead,.ec-dot-trail{opacity:0;animation:ec-dot-appear .25s ease forwards}.ec-dot-spark{opacity:0;animation:ec-dot-appear .2s ease forwards}@keyframes ec-dot-appear{to{opacity:1}}.ec-node{opacity:0;transform-box:fill-box;transform-origin:center;animation:ec-node-in .6s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes ec-node-in{0%{opacity:0;transform:scale(.65) translateY(14px)}to{opacity:1;transform:scale(1) translateY(0)}}.ec-node{animation:ec-node-in .6s cubic-bezier(.34,1.56,.64,1) forwards,ec-float 4s ease-in-out var(--float-delay, 0s) infinite}@keyframes ec-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.ec-stripe{animation:ec-stripe-pulse 3s ease-in-out infinite}@keyframes ec-stripe-pulse{0%,to{opacity:1}50%{opacity:.6}}.ec-status-dot{animation:ec-breathe 2.4s ease-in-out infinite}@keyframes ec-breathe{0%,to{opacity:1;r:4.5px}50%{opacity:.4;r:3px}}.ec-handle-pulse{animation:ec-handle-ring 2.8s ease-in-out infinite}@keyframes ec-handle-ring{0%{opacity:.7;r:5px}40%{opacity:1;r:6px}70%{opacity:.5;r:7px}to{opacity:.7;r:5px}}.ec-group-hint{animation:ec-fade .7s ease 1.1s forwards}.ec-group-label{animation:ec-fade .7s ease 1.2s forwards}.ec-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(to right,var(--canvas, #f1f5f9) 0%,transparent 14%,transparent 86%,var(--canvas, #f1f5f9) 100%),linear-gradient(to bottom,var(--canvas, #f1f5f9) 0%,transparent 8%,transparent 92%,var(--canvas, #f1f5f9) 100%)}.ec-card{position:relative;z-index:20;pointer-events:auto;overflow:visible;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:30px 36px 26px;min-width:340px;max-width:400px;border-radius:16px;border:2px dashed rgba(24,144,255,.5);background:color-mix(in srgb,var(--panel,#fff) 48%,transparent);backdrop-filter:blur(28px) saturate(2.2);-webkit-backdrop-filter:blur(28px) saturate(2.2);box-shadow:0 0 0 1px #ffffff8c inset,0 0 60px #1890ff14 inset,0 12px 48px #0f172a14,0 2px 10px #0f172a0d;animation:ec-card-in .7s cubic-bezier(.34,1.2,.64,1) .12s both,ec-dash-march 12s linear .8s infinite}@keyframes ec-dash-march{0%{border-color:#1890ff73}25%{border-color:#722ed173}50%{border-color:#1890ff73}75%{border-color:#eb2f9666}to{border-color:#1890ff73}}.ec-card:before{content:"DAG Studio";position:absolute;top:-13px;left:24px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-family:var(--font-sans, system-ui);color:#1890ff;background:var(--panel, #fff);padding:2px 10px;border-radius:6px;border:1.5px solid rgba(24,144,255,.35);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}[data-theme=dark] .ec-card{background:color-mix(in srgb,var(--panel, #0f172a) 55%,transparent);box-shadow:0 0 0 1px #ffffff0d inset,0 0 80px #1890ff1a inset,0 12px 56px #00000080,0 2px 12px #0000004d}[data-theme=dark] .ec-card:before{background:var(--panel, #0f172a);color:#40a9ff;border-color:#40a9ff66}@keyframes ec-card-in{0%{opacity:0;transform:translateY(22px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.ec-logo{width:54px;height:54px;border-radius:14px;background:linear-gradient(140deg,#1890ff 0%,#722ed1 100%);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #1890ff73,0 0 0 1.5px #fff3 inset;animation:ec-logo-glow 3.2s ease-in-out infinite}@keyframes ec-logo-glow{0%,to{box-shadow:0 4px 20px #1890ff66,0 0 0 1.5px #fff3 inset}50%{box-shadow:0 6px 32px #1890ffb3,0 0 0 1.5px #ffffff4d inset}}.ec-logo span{color:#fff;font-size:26px;font-weight:800;font-family:var(--font-sans, system-ui);letter-spacing:-1.5px;line-height:1;margin-top:1px}.ec-title{font-size:20px;font-weight:700;color:var(--text, #0f172a);font-family:var(--font-sans, system-ui);letter-spacing:-.4px;margin:0;line-height:1.2}.ec-sub{font-size:13px;color:var(--muted, #64748b);font-family:var(--font-sans, system-ui);margin:0;max-width:290px;line-height:1.65}.ec-actions{display:flex;gap:6px;margin-top:2px;flex-wrap:nowrap;justify-content:center;width:100%}.ec-btn{height:34px;padding:0 14px;border-radius:8px;font-size:12px;font-weight:600;font-family:var(--font-sans, system-ui);display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:1px solid transparent;white-space:nowrap;flex:1;transition:transform .15s cubic-bezier(.34,1.4,.64,1),box-shadow .15s ease,filter .15s ease,background .12s ease}.ec-btn:hover{transform:translateY(-2px)}.ec-btn:active{transform:translateY(0) scale(.97)}.ec-btn--primary{background:var(--accent, #1890ff);color:#fff;border-color:var(--accent, #1890ff);box-shadow:0 2px 12px #1890ff61}.ec-btn--primary:hover{filter:brightness(1.1);box-shadow:0 5px 20px #1890ff85}.ec-btn--ghost{background:var(--panel-2, #f8fafc);color:var(--text-2, #334155);border-color:var(--border, #e2e8f0);box-shadow:0 1px 3px #0f172a0f}.ec-btn--ghost:hover{background:var(--hover, #f1f5f9);box-shadow:0 3px 12px #0f172a1a}[data-theme=dark] .ec-btn--ghost{background:var(--panel-2, #111a2e);border-color:var(--border-2, #334155)}.ec-hints{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;padding-top:2px}.ec-hint{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted, #64748b);font-family:var(--font-sans, system-ui)}.ec-hint kbd{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:10px;background:var(--panel-3, #f1f5f9);border:1px solid var(--border, #e2e8f0);border-bottom-width:2px;border-radius:4px;padding:0 5px;height:18px;display:inline-flex;align-items:center;color:var(--text-2, #334155);min-width:20px;justify-content:center}.ec-hint-sep{color:var(--border-2, #cbd5e1);font-size:14px}@keyframes ec-fade{0%{opacity:0}to{opacity:1}}.dag-container{height:calc(100vh - 70px);position:relative;background:var(--canvas, #f1f5f9);transition:width .3s cubic-bezier(.4,0,.2,1),margin-left .3s cubic-bezier(.4,0,.2,1);border:none!important;outline:none!important}.dag-container-light{--accent: #1890ff;--accent-soft: rgba(24, 144, 255, .18);--edge-color: #94a3b8;--edge-strong: #64748b;--canvas: #f0f4f8;--flow-bg: #f0f4f8}.dag-container-dark{--accent: #40a9ff;--accent-soft: rgba(64, 169, 255, .2);--edge-color: #475569;--edge-strong: #64748b;--canvas: #0d1b2a;--flow-bg: #0d1b2a}.react-flow__background{background:var(--flow-bg)}.react-flow__node-custom{background:var(--node-bg);border:2px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow);transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.react-flow__node-custom:hover{border-color:var(--accent);box-shadow:0 8px 20px var(--accent-glow);transform:translateY(-2px)}.react-flow__node-custom.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow),0 8px 20px var(--accent-glow)}.react-flow__controls{display:flex!important;border:1px solid var(--border, #e2e8f0);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #00000014}.react-flow__controls-button{background:var(--panel, #fff);border:none;border-bottom:1px solid var(--border, #e2e8f0);color:var(--muted, #94a3b8);width:28px;height:28px;transition:background .12s,color .12s}.react-flow__controls-button:hover{background:var(--panel-2, #f8fafc);color:var(--accent, #1890ff)}.react-flow__controls-button svg{width:12px;height:12px}.react-flow__marker path{fill:var(--edge-color, #94a3b8);stroke:none}.react-flow__edge-path{stroke:var(--edge-color, #94a3b8);stroke-width:1.5}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:hover .react-flow__edge-path{stroke:var(--accent, #1890ff)}.react-flow__edge.animated path{stroke:var(--accent);stroke-width:2.5;stroke-dasharray:8,4;animation:dashdraw .8s linear infinite;filter:drop-shadow(0 0 6px var(--accent-glow))}@keyframes dashdraw{0%{stroke-dashoffset:12}to{stroke-dashoffset:0}}.flow-controls{position:absolute;left:20px;bottom:20px;display:flex;gap:6px;z-index:10;background:var(--bg-secondary);padding:8px;border-radius:10px;box-shadow:var(--shadow)}.builder-hints{position:absolute;top:14px;left:16px;z-index:8;max-width:340px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--bg-primary) 85%,transparent);border:1px solid var(--border-color);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.builder-hints-title{font-weight:800;font-size:12px;color:var(--text-primary);margin-bottom:6px}.builder-hints-row{font-size:11px;color:var(--text-secondary);line-height:1.35}.task-group-node{width:100%;height:100%;background:color-mix(in srgb,var(--bg-primary) 90%,transparent);border:2px dashed var(--border-color);border-radius:12px;box-shadow:var(--shadow);padding:10px 12px;display:flex;flex-direction:column}.task-group-node.collapsed{border-style:solid;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.task-group-header{display:flex;align-items:center;gap:6px}.task-group-toggle,.task-group-focus{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);border-radius:6px;width:22px;height:22px;font-size:14px;cursor:pointer}.task-group-title{font-size:12px;font-weight:800;color:var(--text-primary);flex:1}.task-group-count{font-size:11px;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:10px;padding:2px 6px}.task-group-subtitle{margin-top:6px;font-size:10px;color:var(--text-muted)}.modern-task-group{border-style:solid;border-width:1px;border-color:color-mix(in srgb,var(--border-color) 85%,transparent);background:color-mix(in srgb,var(--bg-primary) 86%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modern-task-group.expanded{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent),var(--shadow)}.modern-task-group.collapsed{min-height:56px;overflow:hidden}.task-group-prefix{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.task-group-issues{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.task-group-issues.error{color:#ef4444;border:1px solid rgba(239,68,68,.45)}.task-group-issues.warning{color:#f59e0b;border:1px solid rgba(245,158,11,.45)}.modern-task-group.has-error{box-shadow:0 0 0 1px #ef444459,var(--shadow)}.modern-task-group.has-warning{box-shadow:0 0 0 1px #f59e0b59,var(--shadow)}.group-breadcrumbs{position:absolute;top:14px;right:14px;z-index:12;display:flex;gap:6px;padding:8px;border:1px solid var(--border-color);border-radius:10px;background:color-mix(in srgb,var(--bg-primary) 90%,transparent);box-shadow:var(--shadow)}.crumb{border:none;background:transparent;color:var(--text-secondary);font-size:11px;cursor:pointer}.crumb:hover{color:var(--accent)}.diagnostics-panel{position:absolute;right:14px;bottom:14px;width:360px;max-height:38vh;z-index:12;border:1px solid var(--border-color);border-radius:10px;background:color-mix(in srgb,var(--bg-primary) 92%,transparent);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column}.diagnostics-header{font-size:12px;font-weight:800;color:var(--text-primary);padding:10px 12px 6px}.diagnostics-summary{display:flex;gap:8px;padding:0 12px 8px;font-size:11px}.diag-error{color:#ef4444}.diag-warning{color:#f59e0b}.diagnostics-list{overflow:auto;border-top:1px solid var(--border-color)}.diag-item{width:100%;border:none;background:transparent;text-align:left;padding:8px 10px;cursor:pointer;display:flex;gap:8px;font-size:11px;color:var(--text-secondary)}.diag-item:hover{background:var(--hover-bg)}.diag-item.error .diag-code{color:#ef4444}.diag-item.warning .diag-code{color:#f59e0b}.diag-item.info .diag-code{color:var(--accent)}.diag-code{min-width:110px;font-weight:700}.diag-message{line-height:1.35}.control-button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);font-weight:600;font-size:16px;-webkit-user-select:none;user-select:none}.control-button:hover:not(:disabled){background:var(--hover-bg);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:var(--accent)}.control-button:active:not(:disabled){transform:translateY(0);transition-duration:.1s}.control-button:disabled{opacity:.4;cursor:not-allowed;transform:none}.layout-button{background:linear-gradient(135deg,var(--layout-color),var(--accent));color:#fff;border:none}.layout-button:hover:not(:disabled){background:linear-gradient(135deg,var(--layout-color),var(--accent));transform:translateY(-2px) scale(1.05);box-shadow:0 4px 16px var(--layout-glow)}.reset-button{background:#ef4444;color:#fff;border:none;font-size:24px;font-weight:300}.reset-button:hover:not(:disabled){background:#dc2626;box-shadow:0 4px 16px #ef44444d}.react-flow__node.layout-animating{transition:transform .8s cubic-bezier(.4,0,.2,1)}.custom-minimap{box-shadow:var(--shadow)!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important}.react-flow__minimap-mask{fill:var(--bg-primary);fill-opacity:.05}.react-flow__minimap-node{fill:var(--accent)!important;stroke:var(--accent)!important;stroke-width:2!important}.react-flow__minimap rect[stroke]{stroke:var(--accent)!important;stroke-width:2!important;fill:none!important;opacity:.6!important}.react-flow__container{height:100%;width:100%;border:none!important;outline:none!important}.react-flow__renderer{position:relative;height:100%;width:100%;border:none!important;outline:none!important}.react-flow__pane{border:none!important;outline:none!important}.react-flow__minimap-svg{border-radius:6px;overflow:hidden}.react-flow__attribution{opacity:.3;font-size:10px}@media (max-width: 1200px){.flow-controls{padding:6px;gap:5px}.control-button{width:30px;height:30px;font-size:14px}.custom-minimap{width:160px!important;height:120px!important}}@media (max-width: 1024px){.dag-container{height:calc(100vh - 60px)}.flow-controls{left:10px;bottom:10px;padding:6px;gap:4px}.control-button{width:28px;height:28px;font-size:13px}.custom-minimap{width:140px!important;height:100px!important;bottom:15px!important;right:15px!important}}@media (max-width: 768px){.dag-container{width:100%!important;margin-left:0!important}.flow-controls{left:8px;bottom:8px;padding:4px;gap:3px}.control-button{width:26px;height:26px;font-size:12px}.custom-minimap{width:120px!important;height:90px!important;bottom:10px!important;right:10px!important}.builder-hints{max-width:250px}}@media (max-width: 480px){.dag-container{height:calc(100vh - 50px)}.flow-controls{left:6px;bottom:6px;padding:3px;gap:2px;border-radius:6px}.control-button{width:24px;height:24px;font-size:11px;border-radius:4px}.custom-minimap{width:100px!important;height:75px!important;bottom:6px!important;right:6px!important}.builder-hints{display:none}}.react-flow__edge-path,.react-flow__connection-path{will-change:d}.react-flow__node{will-change:transform}.dag-container,.dag-container *{transition-property:background-color,border-color,color;transition-duration:.2s;transition-timing-function:ease-in-out}.react-flow__node,.react-flow__edge{transition-property:opacity,border-color}.dag-container::-webkit-scrollbar{width:8px;height:8px}.dag-container::-webkit-scrollbar-track{background:var(--bg-secondary)}.dag-container::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.dag-container::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.react-flow__selection{background:var(--accent-glow)!important;border:1px dashed var(--accent)!important}.react-flow__handle{width:8px;height:8px;background:var(--accent);border:2px solid var(--bg-primary);transition:all .2s ease}.react-flow__handle:hover{width:10px;height:10px;background:var(--layout-color);box-shadow:0 0 8px var(--accent-glow)}.react-flow__handle-connecting{background:var(--layout-color);box-shadow:0 0 12px var(--layout-glow)}.react-flow__handle-valid{background:var(--layout-color)}.react-flow__edgeupdater{width:16px;height:16px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:50%;cursor:move}.react-flow__edgeupdater:hover{background:var(--accent);border-color:var(--accent)}.react-flow__node.dragging{-webkit-user-select:none;user-select:none}.dag-container.loading{pointer-events:none;opacity:.6}.control-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.react-flow__node:focus,.react-flow__node:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media print{.flow-controls,.custom-minimap{display:none!important}.dag-container{height:auto!important;width:100%!important;margin:0!important}}.react-flow,.react-flow__viewport{margin:0!important;padding:0!important}.dag-container{overflow:hidden!important}.react-flow__container{position:absolute;top:0;left:0;right:0;bottom:0}.canvas-empty-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;gap:8px;z-index:1}.canvas-empty-icon{font-size:40px;opacity:.18;line-height:1}.canvas-empty-title{font-size:15px;font-weight:600;color:var(--muted, #9ca3af)}.canvas-empty-desc{font-size:12px;color:var(--muted, #9ca3af);opacity:.7;max-width:280px;text-align:center;line-height:1.5}.dag-container{width:100%;height:100%;background:var(--canvas);background-image:radial-gradient(circle,var(--grid-dot) 1.2px,transparent 1.2px);background-size:16px 16px}.dag-container .react-flow__background{opacity:0}.dag-container .react-flow__node-custom{background:transparent;border:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.dag-container .react-flow__node-custom:hover,.dag-container .react-flow__node-custom.selected{border:none;box-shadow:none;transform:none}.dag-container .react-flow__edge path{stroke:var(--edge);stroke-width:1.5}.dag-container .react-flow__minimap{right:12px!important;bottom:12px!important;width:168px!important;height:96px!important;background:color-mix(in srgb,var(--panel) 92%,transparent)!important;border:1px solid var(--border)!important;border-radius:var(--r-md)!important;box-shadow:var(--shadow-sm)!important}.canvas-toolbar{left:12px;bottom:12px}.canvas-empty-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:4;pointer-events:none;padding:20px}.canvas-empty-content{display:flex;flex-direction:column;align-items:center;gap:20px;max-width:620px;pointer-events:auto}.canvas-empty-icon{width:80px;height:80px;border-radius:20px;display:grid;place-items:center;font-family:var(--font-mono);font-weight:800;font-size:32px;color:var(--accent);background:var(--accent-soft);border:1.5px solid var(--accent-border);box-shadow:0 8px 24px var(--accent-glow, rgba(59, 130, 246, .15));transition:transform .3s ease,box-shadow .3s ease}.canvas-empty-icon:hover{transform:translateY(-4px);box-shadow:0 12px 32px var(--accent-glow, rgba(59, 130, 246, .25))}.canvas-empty-title{font-size:24px;font-weight:700;color:var(--text);letter-spacing:-.5px}.canvas-empty-desc{font-size:15px;line-height:1.6;color:var(--muted);text-align:center;max-width:520px}.canvas-empty-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:8px 0}.canvas-empty-actions .btn-primary,.canvas-empty-actions .btn-ghost{min-width:130px;height:40px;font-weight:600;border-radius:8px;transition:all .2s ease}.canvas-empty-actions .btn-primary{box-shadow:0 4px 12px #3b82f64d}.canvas-empty-actions .btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #3b82f666}.canvas-empty-guide{display:grid;grid-template-columns:1fr 1fr;gap:24px;width:100%;margin-top:12px;padding-top:20px;border-top:1px solid var(--border)}.guide-section{display:flex;flex-direction:column;gap:12px}.guide-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-2, #6b7280);opacity:.8}.guide-items{display:flex;flex-direction:column;gap:10px}.guide-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:6px;background:var(--panel, rgba(59, 130, 246, .05));transition:all .2s ease}.guide-item:hover{background:var(--panel, rgba(59, 130, 246, .1));transform:translate(4px)}.guide-keys{display:inline-flex;gap:4px;flex-shrink:0}.guide-keys kbd{min-width:32px;height:26px;padding:0 8px;border-radius:5px;border:1px solid var(--border);border-bottom-width:2px;background:var(--panel-3, white);color:var(--text-2, #374151);font-family:var(--font-mono, "Courier New", monospace);font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #00000014}.guide-text{font-size:13px;color:var(--muted);flex:1}.guide-keys-text{min-width:54px;height:22px;padding:0 8px;border-radius:5px;border:1px solid var(--border);background:var(--panel-3, white);color:var(--accent, #3b82f6);font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.03em}@media (max-width: 640px){.canvas-empty-guide{grid-template-columns:1fr;gap:16px}.canvas-empty-title{font-size:20px}.canvas-empty-desc{font-size:14px}.canvas-empty-icon{width:70px;height:70px;font-size:28px}}.app-shell{width:100vw;height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:13px;line-height:1.4;overflow:hidden;-webkit-font-smoothing:antialiased}.shell-body{flex:1;display:flex;min-height:0;overflow:hidden}.shell-left{width:260px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);overflow:hidden;display:flex;flex-direction:column;transition:width .25s cubic-bezier(.4,0,.2,1)}.shell-canvas{flex:1;min-width:0;min-height:0;background:var(--canvas);position:relative;overflow:hidden}.shell-right{width:320px;flex-shrink:0;background:var(--panel);border-left:1px solid var(--border);overflow:hidden;display:flex;flex-direction:column;transition:width .25s cubic-bezier(.4,0,.2,1)}.panel-toggle{position:absolute;top:50%;transform:translateY(-50%);z-index:40;background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center}.panel-toggle--left{left:0}.panel-toggle--right{right:0}.panel-toggle__pill{display:flex;align-items:center;justify-content:center;width:16px;height:52px;background:var(--panel);border:1px solid var(--border);color:var(--muted);box-shadow:2px 0 8px #00000014,0 1px 3px #0000000f;transition:width .18s cubic-bezier(.4,0,.2,1),background .16s ease,color .16s ease,box-shadow .16s ease}.panel-toggle--left .panel-toggle__pill{border-radius:0 6px 6px 0;border-left:none;box-shadow:2px 0 8px #0000001a,0 1px 3px #0000000f}.panel-toggle--right .panel-toggle__pill{border-radius:6px 0 0 6px;border-right:none;box-shadow:-2px 0 8px #0000001a,0 1px 3px #0000000f}.panel-toggle:hover .panel-toggle__pill{width:22px;background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),2px 0 12px #2563eb40}.panel-toggle--right:hover .panel-toggle__pill{box-shadow:0 0 0 3px var(--accent-soft),-2px 0 12px #2563eb40}.panel-toggle__pill svg{flex-shrink:0;transition:transform .22s cubic-bezier(.4,0,.2,1)}.panel-toggle--left.panel-open .panel-toggle__pill svg{transform:rotate(180deg)}.panel-toggle--left:not(.panel-open) .panel-toggle__pill svg{transform:rotate(0)}.panel-toggle--right.panel-open .panel-toggle__pill svg{transform:rotate(0)}.panel-toggle--right:not(.panel-open) .panel-toggle__pill svg{transform:rotate(180deg)}@media (max-width: 900px){.panel-toggle--right{display:none}}@media (max-width: 680px){.panel-toggle--left{display:none}}.app-watermark{position:fixed;bottom:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:0;padding:4px 12px 4px 8px;background:var(--panel, #fff);border:1px solid var(--border, #e2e8f0);border-radius:20px;box-shadow:0 2px 8px #00000012,0 1px 2px #0000000a;font-size:10.5px;line-height:1;color:var(--muted, #94a3b8);opacity:.7;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:20;white-space:nowrap;transition:opacity .2s ease,box-shadow .2s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.app-watermark:hover{opacity:1;box-shadow:0 4px 16px #0000001f,0 1px 4px #0000000f}.app-watermark__logo{display:flex;align-items:center;margin-right:7px;color:var(--accent, #1890ff);flex-shrink:0}.app-watermark__tagline{font-weight:500;color:var(--text, #0f172a);letter-spacing:-.01em}.app-watermark__divider{display:inline-block;width:1px;height:11px;background:var(--border, #e2e8f0);margin:0 8px;flex-shrink:0;border-radius:1px}.app-watermark__powered{font-weight:400;margin-right:3px}.app-watermark__brand{font-weight:700;color:var(--accent, #1890ff);text-decoration:none;pointer-events:all;letter-spacing:-.02em}.app-watermark__brand:hover{text-decoration:underline}.app-watermark__email{color:var(--accent, #1890ff);text-decoration:none;pointer-events:all;font-weight:500}.app-watermark__email:hover{text-decoration:underline}:root{--font-sans: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s8: 32px;--r-sm: 4px;--r-md: 6px;--r-lg: 8px}:root[data-theme=light]{--bg: #f8fafc;--canvas: #f1f5f9;--panel: #ffffff;--panel-2: #f8fafc;--panel-3: #f1f5f9;--border: #e2e8f0;--border-2: #cbd5e1;--text: #0f172a;--text-2: #334155;--muted: #64748b;--muted-2: #94a3b8;--hover: #f1f5f9;--selected: #eff6ff;--code-bg: #f8fafc;--accent: var(--accent-hex, #2563eb);--accent-fg: #ffffff;--accent-soft: rgba(37, 99, 235, .12);--accent-border: rgba(37, 99, 235, .35);--success: #059669;--success-soft: #ecfdf5;--success-border: #a7f3d0;--warning: #b45309;--warning-soft: #fffbeb;--warning-border: #fcd34d;--error: #dc2626;--error-soft: #fef2f2;--error-border: #fecaca;--info: #0369a1;--grid-dot: #cbd5e1;--edge: #94a3b8;--edge-strong: #475569;--shadow-sm: 0 1px 0 rgba(15,23,42,.04), 0 1px 2px rgba(15,23,42,.04);--shadow-md: 0 2px 4px rgba(15,23,42,.06), 0 4px 12px rgba(15,23,42,.05);--shadow-lg: 0 12px 32px rgba(15,23,42,.12)}:root[data-theme=dark]{--bg: #0b1220;--canvas: #0a0f1c;--panel: #0f172a;--panel-2: #111a2e;--panel-3: #162039;--border: #1e293b;--border-2: #334155;--text: #e2e8f0;--text-2: #cbd5e1;--muted: #94a3b8;--muted-2: #64748b;--hover: #182238;--selected: #15233f;--code-bg: #0a1426;--accent: var(--accent-hex, #3b82f6);--accent-fg: #ffffff;--accent-soft: rgba(59, 130, 246, .18);--accent-border: rgba(59, 130, 246, .45);--success: #10b981;--success-soft: rgba(16,185,129,.12);--success-border: rgba(16,185,129,.4);--warning: #f59e0b;--warning-soft: rgba(245,158,11,.12);--warning-border: rgba(245,158,11,.4);--error: #ef4444;--error-soft: rgba(239,68,68,.12);--error-border: rgba(239,68,68,.4);--info: #38bdf8;--grid-dot: #1e293b;--edge: #475569;--edge-strong: #94a3b8;--shadow-sm: 0 1px 0 rgba(0,0,0,.4);--shadow-md: 0 2px 4px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.3);--shadow-lg: 0 16px 40px rgba(0,0,0,.5)}.ws{font-family:var(--font-sans);background:var(--bg);color:var(--text);width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;font-size:13px;line-height:1.4;-webkit-font-smoothing:antialiased}.ws *,.ws *:before,.ws *:after{box-sizing:border-box}.mono{font-family:var(--font-mono)}.iconbtn{height:30px;min-width:30px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--r-md);background:transparent;color:var(--text-2);border:1px solid transparent;cursor:pointer;font-family:var(--font-sans);font-size:12px;transition:background 80ms,border-color 80ms,color 80ms}.iconbtn:hover{background:var(--hover);color:var(--text)}.iconbtn.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.iconbtn svg{width:14px;height:14px}.btn-primary{height:30px;padding:0 12px;background:var(--accent);color:var(--accent-fg);border:1px solid var(--accent);border-radius:var(--r-md);font-weight:500;font-size:12px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:var(--font-sans)}.btn-primary:hover{filter:brightness(1.08)}.btn-danger{height:30px;padding:0 12px;background:transparent;color:var(--error, #ef4444);border:1px solid var(--error, #ef4444);border-radius:var(--r-md);font-weight:500;font-size:12px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:var(--font-sans)}.btn-danger:hover{background:var(--error-soft, rgba(239,68,68,.1))}.btn-ghost{height:30px;padding:0 10px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:var(--r-md);font-weight:500;font-size:12px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:var(--font-sans)}.btn-ghost:hover{background:var(--hover)}.input{width:100%;height:28px;padding:0 8px;background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:12px;font-family:var(--font-sans)}.input::placeholder{color:var(--muted)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-input{height:26px;padding:0 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:var(--font-mono);font-size:11px;width:100%}.field-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-input.err{border-color:var(--error)}.badge{font-family:var(--font-mono);font-size:9px;color:var(--muted);border:1px solid var(--border);border-radius:3px;padding:0 4px;height:14px;line-height:14px;display:inline-flex;align-items:center;gap:3px}.badge.warn{color:var(--warning);border-color:var(--warning-border);background:var(--warning-soft)}.badge.err{color:var(--error);border-color:var(--error-border);background:var(--error-soft)}.badge.ok{color:var(--success);border-color:var(--success-border);background:var(--success-soft)}.chip{height:22px;padding:0 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:4px;color:var(--text-2);font-family:var(--font-sans);font-size:11px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.chip:hover{background:var(--hover)}.chip.primary{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.chip svg{width:11px;height:11px}.kbd{font-family:var(--font-mono);font-size:10px;background:var(--panel-3);border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;padding:0 5px;height:18px;display:inline-flex;align-items:center;color:var(--text-2);min-width:18px;justify-content:center}.switch{width:26px;height:14px;border-radius:999px;background:var(--border-2);position:relative;cursor:pointer;transition:background .12s}.switch:after{content:"";position:absolute;top:1px;left:1px;width:12px;height:12px;border-radius:999px;background:white;transition:left .12s;box-shadow:0 1px 2px #0003}.switch.on{background:var(--accent)}.switch.on:after{left:13px}.node-status{width:7px;height:7px;border-radius:999px;flex-shrink:0}.node-status.ok{background:var(--success)}.node-status.warn{background:var(--warning)}.node-status.err{background:var(--error);box-shadow:0 0 0 3px var(--error-soft)}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}#root{width:100%;height:100vh}:root[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f6f8fa;--text-primary: #24292e;--text-secondary: #586069;--border-color: #e1e4e8;--hover-bg: #f6f8fa}:root[data-theme=dark]{--bg-primary: #1e1e1e;--bg-secondary: #252525;--text-primary: #e4e4e4;--text-secondary: #a0a0a0;--border-color: #2d2d2d;--hover-bg: #2a2a2a}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.react-flow__attribution{background:var(--bg-primary)!important;color:var(--text-secondary)!important;border-color:var(--border-color)!important}:root[data-theme=light],:root[data-theme=dark]{--bg-primary: var(--panel);--bg-secondary: var(--panel-2);--text-primary: var(--text);--text-secondary: var(--muted);--border-color: var(--border);--hover-bg: var(--hover)}body{background:var(--bg);color:var(--text)}
