:root{--radius-sm: 3px;--radius-md: 6px;--radius-lg: 10px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 13.5px;--font-size-md: 15px;--font-size-lg: 19px;--font-size-xl: 26px;--font-size-hero: 44px;--font-family: "JetBrains Mono", "Fira Code", ui-monospace, Consolas, "PingFang SC", "Microsoft YaHei", "Segoe UI", monospace;--font-mono: var(--font-family);--topbar-height: 52px;--statusbar-height: 30px;--sidebar-width: 248px;--right-panel-width: 284px;--transition-fast: .12s ease;--transition-base: .2s cubic-bezier(.22, .61, .36, 1);--shadow-1: 0 1px 2px rgba(0, 0, 0, .18);--shadow-2: 0 6px 20px rgba(0, 0, 0, .22);--shadow-3: 0 16px 48px rgba(0, 0, 0, .32);--focus-ring: 0 0 0 2px var(--color-bg-primary), 0 0 0 4px var(--color-accent)}:root[data-theme=dark]{--color-bg-primary: #0d1117;--color-bg-secondary: #111820;--color-bg-tertiary: #1a2430;--color-bg-elevated: #151e28;--color-bg-hover: #1f2a37;--color-bg-active: #28364a;--color-bg-overlay: rgba(4, 8, 12, .66);--color-text-primary: #e6edf3;--color-text-secondary: #9db0c3;--color-text-tertiary: #6f8298;--color-text-inverse: #04161a;--color-text-disabled: #46586b;--color-border: #22303f;--color-border-hover: #33465c;--color-border-strong: #425a74;--color-accent: #2dd4bf;--color-accent-hover: #5eead4;--color-accent-active: #14b8a6;--color-accent-soft: rgba(45, 212, 191, .14);--color-accent-text: #5eead4;--color-success: #34d399;--color-warning: #fbbf24;--color-error: #f87171;--color-success-soft: rgba(52, 211, 153, .14);--color-warning-soft: rgba(251, 191, 36, .16);--color-error-soft: rgba(248, 113, 113, .16);--color-canvas: #0a0e13;--color-scrollbar: #27313d;--color-glow: rgba(45, 212, 191, .22)}:root[data-theme=light]{--color-bg-primary: #f6f8fa;--color-bg-secondary: #eef1f5;--color-bg-tertiary: #e3e8ee;--color-bg-elevated: #ffffff;--color-bg-hover: #e9eef4;--color-bg-active: #dce4ec;--color-bg-overlay: rgba(15, 23, 42, .45);--color-text-primary: #0f172a;--color-text-secondary: #475569;--color-text-tertiary: #64748b;--color-text-inverse: #ffffff;--color-text-disabled: #94a3b8;--color-border: #d7dee6;--color-border-hover: #bac6d2;--color-border-strong: #9aa8b8;--color-accent: #0e9384;--color-accent-hover: #0b7a6e;--color-accent-active: #0a5f56;--color-accent-soft: rgba(14, 147, 132, .12);--color-accent-text: #0b7a6e;--color-success: #15803d;--color-warning: #b45309;--color-error: #dc2626;--color-success-soft: rgba(21, 128, 61, .12);--color-warning-soft: rgba(180, 83, 9, .14);--color-error-soft: rgba(220, 38, 38, .12);--color-canvas: #fbfcfe;--color-scrollbar: #c3ccd6;--color-glow: rgba(14, 147, 132, .18)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.55;color:var(--color-text-primary);background:var(--color-bg-primary);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color var(--transition-base),color var(--transition-base)}a{color:var(--color-accent-text);text-decoration:none}a:hover{color:var(--color-accent-hover)}button{font-family:inherit}::selection{background:var(--color-accent-soft)}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:5px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong);background-clip:content-box}::-webkit-scrollbar-track{background:transparent}.app-root{height:100vh;display:flex;flex-direction:column;overflow:hidden}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:7px 16px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-elevated);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast);white-space:nowrap;user-select:none}.btn:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-hover)}.btn:active:not(:disabled){background:var(--color-bg-active)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse);box-shadow:0 1px 8px var(--color-glow)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:0 2px 14px var(--color-glow)}.btn-toggle-on{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-text)}.btn-toggle-on:hover:not(:disabled){background:var(--color-accent-soft);border-color:var(--color-accent-hover);color:var(--color-accent-hover)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--color-bg-hover);transform:none}.btn-danger{color:var(--color-error);border-color:var(--color-error);background:transparent}.btn-danger:hover:not(:disabled){background:var(--color-error-soft);transform:none}.btn-sm{padding:3px 10px;font-size:var(--font-size-xs);border-radius:var(--radius-sm)}.btn-block{width:100%}.input,.select{width:100%;padding:7px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-elevated);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input::placeholder{color:var(--color-text-disabled)}.input:focus,.select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--color-text-tertiary) 50%),linear-gradient(135deg,var(--color-text-tertiary) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 10px) 50%;background-size:4px 4px;background-repeat:no-repeat;padding-right:26px;cursor:pointer}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.field-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-1)}.tag{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;font-size:var(--font-size-xs);font-family:var(--font-mono);line-height:18px}.tag-success{background:var(--color-success-soft);color:var(--color-success)}.tag-warning{background:var(--color-warning-soft);color:var(--color-warning)}.tag-error{background:var(--color-error-soft);color:var(--color-error)}.tag-muted{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.divider{height:1px;background:var(--color-border);border:none;margin:var(--space-3) 0}.empty-hint{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.eyebrow{font-family:var(--font-mono);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--color-text-tertiary)}.menu-wrap{position:relative;display:inline-block}.menu{position:absolute;top:calc(100% + 6px);right:0;min-width:168px;z-index:1000;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-2);padding:var(--space-1);animation:menu-in var(--transition-fast)}.menu.left{right:auto;left:0}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:7px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;text-align:left}.menu-item:hover{background:var(--color-bg-hover)}.menu-item.active{background:var(--color-accent-soft);color:var(--color-accent-text)}.menu-item:disabled{opacity:.4;cursor:not-allowed}.menu-separator{height:1px;background:var(--color-border);margin:var(--space-1) 0}.modal-overlay{position:fixed;inset:0;z-index:2000;background:var(--color-bg-overlay);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;animation:fade-in var(--transition-base)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{min-width:420px;max-width:640px;max-height:82vh;display:flex;flex-direction:column;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);animation:modal-in var(--transition-base)}@media(max-width:480px){.modal{min-width:0;width:calc(100vw - var(--space-4) * 2);max-width:100vw}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border)}.modal-title{margin:0;font-size:var(--font-size-md);font-weight:600;letter-spacing:-.2px}.modal-body{padding:var(--space-4);overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-md);transition:background var(--transition-fast),color var(--transition-fast)}.icon-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.banner-stack{position:fixed;top:var(--topbar-height);left:0;right:0;z-index:1500}.banner{display:flex;align-items:center;gap:var(--space-3);padding:10px var(--space-4);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);animation:fade-in var(--transition-base)}.banner-warning{background:var(--color-warning-soft);color:var(--color-warning)}.banner-error{background:var(--color-error-soft);color:var(--color-error)}.banner-info{background:var(--color-accent-soft);color:var(--color-accent-text)}.banner .banner-actions{margin-left:auto;display:flex;gap:var(--space-2)}.toast-stack{position:fixed;bottom:52px;right:var(--space-4);z-index:1600;display:flex;flex-direction:column;gap:var(--space-2)}.toast{padding:10px 16px;border-radius:var(--radius-md);box-shadow:var(--shadow-2);font-size:var(--font-size-sm);cursor:pointer;animation:toast-in var(--transition-base);max-width:360px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-info{background:var(--color-bg-elevated);border:1px solid var(--color-border);color:var(--color-text-primary)}.toast-success{background:var(--color-success-soft);color:var(--color-success)}.toast-warning{background:var(--color-warning-soft);color:var(--color-warning)}.toast-error{background:var(--color-error-soft);color:var(--color-error)}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot-ok{background:var(--color-success);box-shadow:0 0 6px var(--color-success-soft)}.status-dot-err{background:var(--color-error);box-shadow:0 0 6px var(--color-error-soft)}.status-dot-warn{background:var(--color-warning);box-shadow:0 0 6px var(--color-warning-soft)}.spinner{width:15px;height:15px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.welcome{height:100vh;display:flex;flex-direction:column;background:radial-gradient(1100px 520px at 50% -10%,var(--color-accent-soft),transparent 70%),var(--color-bg-primary)}.welcome-topbar,.settings-topbar{height:var(--topbar-height);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg-elevated) 82%,transparent);backdrop-filter:blur(6px)}.brand{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text-primary);font-weight:600;font-size:var(--font-size-md);letter-spacing:.02em}.brand:hover{color:var(--color-text-primary)}.brand-logo{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);background:var(--color-accent-soft);border:1px solid var(--color-accent);color:var(--color-accent-text);font-size:var(--font-size-sm)}.brand-name{font-family:var(--font-mono);font-weight:600;letter-spacing:.06em}.topbar-actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.topbar-cluster{display:flex;align-items:center;height:30px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);overflow:visible}.topbar-cluster>*{display:inline-flex;align-items:center;justify-content:center;height:100%}.topbar-cluster>*+*{border-left:1px solid var(--color-border)}.topbar-cluster>:first-child,.topbar-cluster>:first-child .icon-btn,.topbar-cluster>:first-child .btn{border-top-left-radius:calc(var(--radius-sm) - 1px);border-bottom-left-radius:calc(var(--radius-sm) - 1px)}.topbar-cluster>:last-child,.topbar-cluster>:last-child .icon-btn,.topbar-cluster>:last-child .btn{border-top-right-radius:calc(var(--radius-sm) - 1px);border-bottom-right-radius:calc(var(--radius-sm) - 1px)}.topbar-cluster .cluster-btn,.topbar-cluster .icon-btn,.topbar-cluster .menu-wrap>.btn{height:100%;padding:0 12px;border:none;border-radius:0;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500;transition:background var(--transition-fast),color var(--transition-fast)}.topbar-cluster .cluster-btn:hover,.topbar-cluster .icon-btn:hover,.topbar-cluster .menu-wrap>.btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.topbar-cluster .cluster-btn:disabled{opacity:.4;cursor:not-allowed}.topbar-cluster .cluster-btn:disabled:hover{background:transparent;color:var(--color-text-secondary)}.topbar-cluster .icon-btn{width:32px;padding:0}.topbar-cluster .menu-wrap{display:flex;height:100%}.topbar-cluster .menu-wrap>.btn{transform:none!important}.more-caret{margin-left:4px;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.cluster-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;margin-left:6px;padding:0 5px;border-radius:999px;background:var(--color-accent);color:var(--color-text-inverse);font-size:10px;font-weight:700;line-height:1}.lang-icon{display:inline-flex}.welcome-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-6);padding:var(--space-5);overflow-y:auto}.welcome-hero{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.welcome-eyebrow{font-family:var(--font-mono);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.24em;color:var(--color-accent-text)}.welcome-title{font-size:var(--font-size-hero);margin:0;font-weight:700;letter-spacing:-.03em;line-height:1.05}.welcome-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.welcome-version{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:0;font-family:var(--font-mono)}.welcome-signal{width:min(480px,80vw);height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--color-accent),transparent);opacity:.7;position:relative;overflow:hidden;margin-top:var(--space-3)}.welcome-signal:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translate(-100%);animation:signal-sweep 2.6s ease-in-out infinite}@keyframes signal-sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.welcome-enter{margin-top:var(--space-3);padding:11px 32px;font-size:var(--font-size-md);font-weight:600;border-radius:var(--radius-md);min-width:200px}.welcome-hardware{min-width:400px;padding:var(--space-4) var(--space-5);overflow:hidden}.welcome-section-title{margin:0 0 var(--space-3);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.18em;display:flex;align-items:center;gap:var(--space-2)}.welcome-section-title:before{content:"";width:6px;height:6px;border-radius:1px;background:var(--color-accent);transform:rotate(45deg)}.hardware-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px dashed var(--color-border);font-family:var(--font-mono)}.hardware-row:last-child{border-bottom:none}.hardware-label{width:88px;font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.hardware-detail{font-size:var(--font-size-sm);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.welcome-footer{height:46px;flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:var(--space-6);border-top:1px solid var(--color-border);font-size:var(--font-size-sm);font-family:var(--font-mono)}.welcome-footer a,.welcome-footer .welcome-footer-link{color:var(--color-text-muted);text-decoration:none;background:none;border:none;padding:0;font:inherit;cursor:pointer;transition:color .15s ease}.welcome-footer a:hover,.welcome-footer .welcome-footer-link:hover{color:var(--color-accent)}.workbench{height:100vh;display:flex;flex-direction:column;background:var(--color-bg-primary);overflow:hidden}.topbar{height:var(--topbar-height);flex-shrink:0;display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-2);border-bottom:1px solid var(--color-border);background:var(--color-bg-elevated)}.project-name{margin-left:var(--space-2);padding:5px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--font-size-sm);cursor:pointer;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.project-name:hover{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.project-dirty{color:var(--color-accent);margin-left:6px;animation:blink 1.2s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.workbench-body{flex:1;display:flex;min-height:0}.sidebar{width:var(--sidebar-width);flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-3);border-right:1px solid var(--color-border);background:var(--color-bg-secondary);overflow-y:auto}.sidebar-group{display:flex;flex-direction:column;gap:var(--space-2)}.sidebar-heading{margin:0;font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.16em}.sidebar-actions{display:flex;flex-direction:column;gap:var(--space-1)}.recent-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.recent-item{display:flex;align-items:center;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.recent-item.active{background:var(--color-accent-soft)}.recent-item.active .recent-name{color:var(--color-accent-text)}.recent-name{flex:1;padding:6px 8px;border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-name:hover{color:var(--color-text-primary)}.recent-delete{width:22px;height:22px;font-size:var(--font-size-xs);opacity:0;color:var(--color-text-tertiary)}.recent-item:hover .recent-delete{opacity:1}.plugin-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.plugin-item{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:7px 8px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;text-align:left;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.plugin-item:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.plugin-item.active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-text)}.plugin-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-accent);font-size:var(--font-size-sm);flex-shrink:0}.plugin-item.active .plugin-icon{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse)}.plugin-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.central{position:relative;flex:1;min-width:0;background:var(--color-canvas);display:flex}.central-plugin-host{position:absolute;inset:0;overflow:hidden}.central:before{content:"";position:absolute;inset:10px;z-index:5;pointer-events:none;background:linear-gradient(var(--color-accent),var(--color-accent)) 0 0 / 14px 2px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) 0 0 / 2px 14px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) 100% 0 / 14px 2px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) 100% 0 / 2px 14px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) 0 100% / 14px 2px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) 0 100% / 2px 14px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) 100% 100% / 14px 2px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) 100% 100% / 2px 14px no-repeat;opacity:.85}.central:after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(180deg,transparent,transparent 49%,rgba(127,127,127,.04) 50%,transparent 51%);background-size:100% 6px}.central-dom-host{position:absolute;inset:0;overflow:hidden}.central-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.central-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-5);text-align:center}.central-empty-title{font-size:var(--font-size-xl);margin:0;letter-spacing:-.02em}.central-empty-subtitle{color:var(--color-text-secondary);margin:0;font-size:var(--font-size-sm)}.central-empty-actions{display:flex;gap:var(--space-3);margin-top:var(--space-3)}.central-dropzone{margin-top:var(--space-5);padding:var(--space-5) var(--space-6);border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-tertiary);font-size:var(--font-size-sm);font-family:var(--font-mono);transition:border-color var(--transition-fast),color var(--transition-fast)}.central-dropzone:hover{border-color:var(--color-accent);color:var(--color-accent-text)}.central-progress{position:absolute;top:14px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-2);padding:6px 16px;border-radius:999px;background:var(--color-bg-elevated);border:1px solid var(--color-accent);box-shadow:var(--shadow-1);font-size:var(--font-size-sm);z-index:6}.central-drop-hint{position:absolute;inset:14px;z-index:10;display:flex;align-items:center;justify-content:center;border:2px dashed var(--color-accent);border-radius:var(--radius-md);background:var(--color-accent-soft);color:var(--color-accent-text);font-size:var(--font-size-md);font-weight:600;pointer-events:none;backdrop-filter:blur(1px)}.right-panel{width:var(--right-panel-width);flex-shrink:0;padding:var(--space-4);border-left:1px solid var(--color-border);background:var(--color-bg-secondary);overflow-y:auto}.panel-title{margin:0 0 var(--space-4);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.16em}.right-panel-empty{padding:var(--space-4) 0;text-align:center}.right-panel-plugin{margin-top:var(--space-4);display:flex;justify-content:center}.param-panel{display:flex;flex-direction:column;gap:var(--space-2)}.field-label{font-weight:500}.param-range{display:flex;align-items:center;gap:var(--space-2)}.param-range input[type=range]{flex:1;height:18px;accent-color:var(--color-accent);cursor:pointer}.param-range input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--color-bg-tertiary)}.param-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;background:var(--color-accent);border:2px solid var(--color-bg-elevated);box-shadow:0 0 6px var(--color-glow)}.param-value{min-width:44px;text-align:right;font-size:var(--font-size-sm);font-family:var(--font-mono);color:var(--color-accent-text);background:var(--color-bg-tertiary);padding:1px 6px;border-radius:var(--radius-sm)}.param-checkbox{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm)}.param-checkbox input{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.param-file{display:flex;gap:var(--space-2)}.param-file .input{flex:1}.statusbar{height:var(--statusbar-height);flex-shrink:0;display:flex;align-items:center;padding:0 var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg-elevated);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-secondary);gap:var(--space-4)}.statusbar-center{margin:0 auto;display:flex;align-items:center;gap:var(--space-3)}.gpu-chip{padding:1px 8px;border-radius:999px;border:1px solid var(--color-border);transition:border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.gpu-chip.gpu-active{color:var(--color-accent-text);border-color:var(--color-accent);animation:gpu-pulse 1.1s ease-in-out infinite}@keyframes gpu-pulse{0%,to{box-shadow:0 0 4px var(--color-accent-soft)}50%{box-shadow:0 0 14px var(--color-accent)}}.statusbar-right{color:var(--color-text-tertiary)}.perf-dialog{max-height:480px;overflow-y:auto}.perf-overlay{display:flex;flex-direction:column;gap:var(--space-3)}.perf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.perf-section{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary)}.perf-section-title{margin:0 0 var(--space-2);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary)}.perf-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:3px 0;color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.perf-row strong{font-family:var(--font-mono);color:var(--color-text-primary)}.perf-warn{color:var(--color-warning)!important}.perf-value-ellipsis{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.perf-value-cap{text-transform:capitalize}.perf-warnings{margin-top:0;border-top:1px solid var(--color-border);padding-top:var(--space-2);display:flex;flex-direction:column;gap:2px}.perf-warning-badge{color:var(--color-warning)}.perf-entry{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono)}.perf-entry.perf-warn{color:var(--color-warning)}.perf-dot{width:7px;height:7px;border-radius:50%;background:var(--color-success);box-shadow:0 0 6px var(--color-success);flex-shrink:0}.perf-entry.perf-warn .perf-dot{background:var(--color-warning);box-shadow:0 0 6px var(--color-warning)}.plugin-dialog{display:flex;flex-direction:column;gap:var(--space-3)}.plugin-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-2)}.plugin-tab{padding:6px 14px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.plugin-tab:hover{color:var(--color-text-primary)}.plugin-tab.active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-text);font-weight:600}.plugin-list-pane{display:flex;flex-direction:column;gap:var(--space-2);min-height:180px;max-height:300px;overflow-y:auto}.plugin-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);cursor:pointer;transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.plugin-card:hover,.plugin-card.active{border-color:var(--color-accent);box-shadow:var(--shadow-1)}.plugin-card-main{display:flex;align-items:center;gap:var(--space-3);min-width:0}.plugin-card-info{min-width:0}.plugin-card-title{font-weight:600;font-size:var(--font-size-sm)}.plugin-card-meta{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.plugin-card-actions{display:flex;align-items:center;flex-shrink:0}.plugin-market-pane{display:flex;flex-direction:column;gap:var(--space-2);min-height:180px;max-height:320px;overflow-y:auto}.plugin-cat-filter{display:flex;gap:var(--space-1);flex-wrap:wrap;margin-bottom:var(--space-1)}.plugin-cat{padding:4px 10px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.plugin-cat:hover{border-color:var(--color-accent)}.plugin-cat.active{border-color:var(--color-accent);color:var(--color-accent-text);background:var(--color-accent-soft)}.plugin-card-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.plugin-badge{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:500;vertical-align:middle}.cat-scientific{background:#22d3ee29;color:#22d3ee}.cat-fun{background:#f472b629;color:#f472b6}.cat-utility{background:#a78bfa29;color:#a78bfa}.example-data-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-3)}.example-data-tags{display:flex;gap:var(--space-1);flex-wrap:wrap;margin-top:var(--space-2)}.tag-primary{background:var(--color-accent-soft);color:var(--color-accent-text);border:1px solid var(--color-accent)}.plugin-detail{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary)}.plugin-detail-title{font-weight:600}.plugin-detail-desc{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.plugin-detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-family:var(--font-mono)}.plugin-detail-formats{display:flex;gap:var(--space-1);margin-top:var(--space-2);flex-wrap:wrap}.plugin-loaded-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.plugin-loaded-list li{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm)}.file-router-options,.plugin-local-pane{display:flex;flex-direction:column;gap:var(--space-2)}.settings{height:100vh;display:flex;flex-direction:column;background:radial-gradient(1000px 480px at 50% -10%,var(--color-accent-soft),transparent 70%),var(--color-bg-primary)}.settings-body{flex:1;overflow-y:auto;max-width:780px;width:100%;margin:0 auto;padding:var(--space-6) var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.settings-title{font-size:var(--font-size-lg);margin:0;letter-spacing:-.02em}.settings-section{padding:var(--space-5)}.settings-section-title{margin:0 0 var(--space-3);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.16em}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) 0}.settings-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.settings-control{width:220px}.settings-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-family:var(--font-mono)}.settings-return{align-self:flex-start}.share-project{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.share-section-title{margin:var(--space-3) 0 var(--space-2);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.14em}.share-options{display:flex;gap:var(--space-4);margin-bottom:var(--space-3)}.share-option{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-sm)}.share-option input{accent-color:var(--color-accent)}.share-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.share-link-row{display:flex;gap:var(--space-2)}.share-link-row .input{flex:1;font-size:var(--font-size-xs);font-family:var(--font-mono)}.share-loading{height:100vh;display:flex;align-items:center;justify-content:center;gap:var(--space-3);color:var(--color-text-secondary)}.error-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);height:100%;padding:var(--space-5);text-align:center}.error-fallback-title{font-size:var(--font-size-md);color:var(--color-error)}.route-loading{min-height:100vh;display:flex;align-items:center;justify-content:center}.workbench-loading{flex:1;min-width:0;display:flex;align-items:center;justify-content:center}.modal-sm{min-width:320px;max-width:380px}.plugin-view{height:100vh;display:flex;flex-direction:column}.plugin-view-body{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.project-files{display:flex;flex-direction:column;gap:var(--space-3);min-height:180px;max-height:420px}.project-files-toolbar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.project-files-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.project-files-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto;flex:1}.project-file-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary)}.project-file-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-accent);font-size:var(--font-size-sm);flex-shrink:0}.project-file-info{flex:1;min-width:0}.project-file-name{font-size:var(--font-size-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-file-meta{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.project-file-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.project-file-actions .btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:900px){.sidebar{width:220px}.right-panel{width:240px}.welcome-title{font-size:32px}}@media(max-width:720px){.sidebar{position:absolute;left:0;z-index:40;height:100%;box-shadow:var(--shadow-2)}.right-panel{position:absolute;right:0;z-index:40;height:100%;box-shadow:var(--shadow-2)}.workbench-body{position:relative}.welcome-hardware{min-width:0;width:100%}}.block-workbench{display:flex;flex:1;min-height:0}.block-workbench-left{width:216px;flex-shrink:0;border-right:1px solid var(--color-border);background:var(--color-bg-secondary);display:flex;flex-direction:column;overflow:hidden}.block-workbench-center{flex:1;min-width:0;display:flex;flex-direction:column}.block-workbench-canvas{flex:1;min-height:0;position:relative}.block-workbench-right{width:260px;flex-shrink:0;border-left:1px solid var(--color-border);background:var(--color-bg-secondary);overflow-y:auto}.block-canvas{position:relative;width:100%;height:100%;overflow:hidden;background:var(--color-canvas);cursor:grab;touch-action:none}.block-canvas:active{cursor:grabbing}.block-canvas-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.block-connection{fill:none;stroke:var(--color-accent);stroke-width:1.5;opacity:.65}.block-node{position:absolute;top:0;left:0;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-1);cursor:move;user-select:none}.block-node.is-selected{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent),var(--shadow-2)}.block-node-header{display:flex;align-items:center;gap:6px;padding:7px 10px;border-top:3px solid transparent;border-radius:var(--radius-md) var(--radius-md) 0 0;font-size:var(--font-size-sm);font-weight:500}.block-node-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.block-node-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-node-params{padding:2px 10px}.block-node-param-row{display:flex;align-items:baseline;gap:6px;height:18px;line-height:18px;overflow:hidden}.block-node-param-key{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary);flex-shrink:0}.block-node-param-value{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-node-state{margin-left:auto;width:8px;height:8px;border-radius:50%;flex-shrink:0}.block-node-state.is-done{background:var(--color-success)}.block-node-state.is-computing{background:var(--color-warning)}.block-node-state.is-error{background:var(--color-error)}.block-port{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--color-bg-elevated);border:2px solid var(--color-accent);cursor:crosshair}.block-port:hover{background:var(--color-accent)}.block-palette{height:100%;overflow-y:auto;padding:var(--space-3)}.block-palette-category{margin-bottom:var(--space-3)}.block-palette-cat-title{font-family:var(--font-mono);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-tertiary);margin-bottom:var(--space-1)}.block-palette-item{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;text-align:left}.block-palette-item:hover{background:var(--color-bg-hover)}.block-palette-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.block-palette-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-toolbar{display:flex;gap:var(--space-2);padding:var(--space-2);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.block-param-editor{padding:var(--space-3)}.block-param-title{font-size:var(--font-size-md);font-weight:500}.block-param-id{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-bottom:var(--space-3)}.block-param-field{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.block-param-label{width:88px;flex-shrink:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);font-family:var(--font-mono)}.block-preview{height:220px;flex-shrink:0;border-top:1px solid var(--color-border);display:flex;flex-direction:column;background:var(--color-bg-secondary)}.block-preview-title{padding:6px 12px;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em}.block-preview-host{position:relative;flex:1;min-height:0}.block-preview-dom{position:absolute;inset:0;pointer-events:none}.block-preview-canvas{position:absolute;inset:0;width:100%;height:100%}.block-preview-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.block-preview-chips{display:flex;flex-wrap:wrap;gap:4px;padding:0 12px 6px}.block-preview-chip{font-size:var(--font-size-xs);font-family:var(--font-mono);padding:2px 8px;border:1px solid var(--color-border);border-radius:999px;background:transparent;color:var(--color-text-secondary);cursor:pointer}.block-preview-chip:hover{color:var(--color-text);border-color:var(--color-text-tertiary)}.block-preview-chip.is-active{background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-accent)}.block-preview-scalar{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px}.block-preview-scalar-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em}.block-preview-scalar-value{font-family:var(--font-mono);font-size:var(--font-size-lg);color:var(--color-text)}.dt-preview{position:absolute;inset:0;display:flex;flex-direction:column}.dt-preview-meta{padding:4px 12px;font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-family:var(--font-mono)}.dt-preview-prov{opacity:.7}.dt-preview-scroll{flex:1;min-height:0;overflow:auto;padding:0 12px}.dt-preview-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:var(--font-size-xs)}.dt-preview-table th,.dt-preview-table td{padding:4px 8px;text-align:right;border-bottom:1px solid var(--color-border);white-space:nowrap}.dt-preview-table th{color:var(--color-text-secondary);font-weight:600;position:sticky;top:0;background:var(--color-bg-secondary)}.dt-preview-table td{color:var(--color-text)}.dt-preview-note{padding:4px 12px;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.mode-switch{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;padding:0}.mode-switch .cluster-btn{border:none;border-radius:0}.mode-switch .cluster-btn+.cluster-btn{border-left:1px solid var(--color-border)}.data-dialog-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.data-dialog-tab{padding:6px 14px;border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;border-bottom:2px solid transparent}.data-dialog-tab.is-active{color:var(--color-accent-text);border-bottom-color:var(--color-accent)}.data-pipeline-option{padding:var(--space-4)}.data-pipeline-desc{color:var(--color-text-secondary);margin-bottom:var(--space-3)}.block-toolbar-wrap{border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.block-diagnostics{padding:6px 12px;border-top:1px solid var(--color-error-soft);background:var(--color-error-soft);display:flex;flex-direction:column;gap:2px;max-height:96px;overflow-y:auto}.block-diagnostic{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-error)}.editor-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-text-secondary);background:var(--color-bg-primary)}.editor-placeholder-icon{font-size:40px;line-height:1}.editor-placeholder-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary)}.editor-placeholder-hint{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.block-editor{display:flex;flex:1;min-height:0;flex-direction:column;position:relative;isolation:isolate;background-color:var(--color-bg-primary);background-image:radial-gradient(circle at 1px 1px,rgba(125,140,160,.07) 1px,transparent 0);background-size:22px 22px}:root[data-theme=dark] .block-editor{background-color:#0a0e13;background-image:radial-gradient(circle at 1px 1px,rgba(125,160,200,.05) 1px,transparent 0)}.block-editor-toolbar{display:flex;align-items:center;gap:10px;padding:10px 16px;margin:12px 12px 0;background:color-mix(in srgb,var(--color-bg-secondary) 88%,transparent);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 1px 2px #0000000f,0 8px 24px -8px #0000002e;position:relative;z-index:5}:root[data-theme=dark] .block-editor-toolbar{background:#0f141bb8}.be-run-btn{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 14px;border:none;border-radius:9px;background:linear-gradient(135deg,#14b8a6,#0e9384 60%,#0a7e72);color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.01em;cursor:pointer;box-shadow:0 1px 2px #14b8a62e,0 4px 12px -2px #14b8a673,inset 0 1px #ffffff2e;transition:transform .12s ease,box-shadow .2s ease,filter .2s ease}.be-run-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 4px #14b8a638,0 8px 18px -2px #14b8a68c,inset 0 1px #ffffff38}.be-run-btn:active:not(:disabled){transform:translateY(0);filter:brightness(.96)}.be-run-btn:disabled{cursor:not-allowed;filter:grayscale(.3) brightness(.9);opacity:.65}.be-run-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:10px;background:#fff3;border-radius:5px}.be-toolbar-spacer{flex:1}.be-status-pill{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 12px;border-radius:999px;font-size:11.5px;font-weight:500;letter-spacing:.01em;background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border);transition:all .2s ease}.be-status-pill.is-idle{background:color-mix(in srgb,var(--color-bg-tertiary) 80%,transparent);color:var(--color-text-tertiary)}.be-status-pill.is-running{background:#2dd4bf1f;color:#5eead4;border-color:#2dd4bf66}.be-status-pill.is-error{background:#f871711f;color:#fca5a5;border-color:#f8717166}.be-status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.be-status-pill.is-idle .be-status-dot{box-shadow:none;opacity:.5}.be-status-pill.is-running .be-status-dot{animation:be-pulse 1.2s ease-in-out infinite}@keyframes be-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}.block-editor-toggle{display:inline-flex;height:30px;border:1px solid var(--color-border);border-radius:8px;overflow:hidden;background:var(--color-bg-tertiary);box-shadow:inset 0 1px #ffffff0a}.block-editor-toggle .btn{border:none;border-radius:0;height:100%;padding:0 14px;background:transparent;color:var(--color-text-secondary);font-size:11.5px;font-weight:500;letter-spacing:.02em;transition:background .15s ease,color .15s ease}.block-editor-toggle .btn+.btn{border-left:1px solid var(--color-border)}.block-editor-toggle .btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.block-editor-toggle .btn.btn-toggle-on{background:var(--color-accent-soft);color:var(--color-accent-text);font-weight:600}.block-editor-main{display:flex;flex:1;min-height:0;gap:12px;padding:8px 12px 12px}.block-editor-workspace{flex:1;min-width:0;height:100%;border-radius:12px;overflow:hidden;border:1px solid var(--color-border);background:var(--color-bg-secondary);box-shadow:0 1px 2px #0000000f,0 12px 32px -16px #00000047}.block-editor-workspace .blocklyText{font-family:Inter,PingFang SC,Microsoft YaHei,Segoe UI,system-ui,sans-serif}.block-editor-workspace .blocklyToolboxDiv{background:transparent!important;border-right:1px solid var(--color-border);padding:10px 6px}.block-editor-workspace .blocklyTreeRow{border-radius:7px!important;margin:1px 4px;padding:0 10px!important;height:30px!important;line-height:30px!important;cursor:pointer;transition:background .12s ease,transform .12s ease}.block-editor-workspace .blocklyTreeRow:hover{background:var(--color-bg-hover)!important;transform:translate(2px)}.block-editor-workspace .blocklyTreeSelected{background:var(--color-accent-soft)!important;color:var(--color-accent-text)!important;font-weight:600}.block-editor-workspace .blocklyTreeLabel{font-family:Inter,PingFang SC,sans-serif!important;font-size:11.5px!important;font-weight:500}.block-editor-workspace .blocklyFlyout{border-right:1px solid var(--color-border)!important}.block-editor-code{width:360px;flex-shrink:0;display:flex;flex-direction:column;background:var(--color-bg-secondary);border-radius:12px;border:1px solid var(--color-border);overflow:hidden;box-shadow:0 1px 2px #0000000f,0 12px 32px -16px #00000047}.block-editor-code-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--color-border);background:var(--color-bg-tertiary)}.be-code-lang{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent-text)}.be-code-refresh{border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;padding:4px 10px;border-radius:5px;font-size:11px;transition:all .15s ease}.be-code-refresh:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.block-editor-code pre{flex:1;min-height:0;margin:0;padding:16px;overflow:auto;font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.6;color:var(--color-text-primary);white-space:pre;background:var(--color-bg-primary)}.block-editor-right{width:308px;flex-shrink:0;display:flex;flex-direction:column;gap:12px;min-height:0}.block-editor-preview{flex:0 0 auto;height:240px;position:relative;border-radius:12px;border:1px solid var(--color-border);background:radial-gradient(circle at 30% 30%,rgba(45,212,191,.1),transparent 55%),radial-gradient(circle at 70% 70%,rgba(99,102,241,.08),transparent 55%),var(--color-bg-secondary);overflow:hidden;box-shadow:0 1px 2px #0000000f,0 12px 32px -16px #00000047}.block-editor-preview-label{position:absolute;top:10px;left:12px;display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary);z-index:1;pointer-events:none;padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--color-bg-primary) 70%,transparent);backdrop-filter:blur(6px)}.block-editor-preview-label:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 6px var(--color-accent)}.block-editor-preview-dom{position:absolute;inset:0}.block-editor-preview-canvas{position:absolute;inset:0;width:100%;height:100%}.editor-panel{display:flex;flex-direction:column;min-height:0;flex:1;border-radius:12px;border:1px solid var(--color-border);background:var(--color-bg-secondary);overflow:hidden;box-shadow:0 1px 2px #0000000f,0 12px 32px -16px #00000047}.editor-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 14px;border-bottom:1px solid var(--color-border);background:var(--color-bg-tertiary)}.editor-panel-title{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary)}.editor-panel-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;font-size:10px;font-weight:600;border-radius:999px;background:var(--color-accent-soft);color:var(--color-accent-text)}.editor-panel-actions{display:inline-flex;align-items:center;gap:4px}.editor-panel-action{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:transparent;color:var(--color-text-tertiary);cursor:pointer;border-radius:5px;font-size:12px;transition:all .15s ease}.editor-panel-action:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.editor-panel-body{flex:1;min-height:0;overflow-y:auto;padding:6px 0}.editor-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:28px 14px;font-size:11.5px;color:var(--color-text-tertiary);text-align:center}.editor-panel-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--color-bg-tertiary);color:var(--color-text-tertiary);font-size:16px;border:1px solid var(--color-border)}.editor-var-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);padding:7px 14px;font-size:11.5px;border-bottom:1px solid color-mix(in srgb,var(--color-border) 60%,transparent);transition:background .12s ease}.editor-var-row:last-child{border-bottom:none}.editor-var-row:hover{background:var(--color-bg-hover)}.editor-var-name{display:inline-flex;align-items:center;gap:8px;color:var(--color-text-primary);font-family:JetBrains Mono,monospace;font-weight:500}.editor-var-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;font-size:9px;font-weight:700;letter-spacing:-.02em}.editor-var-icon.is-scalar{background:#2dd4bf24;color:#5eead4}.editor-var-icon.is-table{background:#6366f124;color:#a5b4fc}.editor-var-icon.is-view{background:#f472b624;color:#f9a8d4}.editor-var-icon.is-unknown{background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.editor-var-value{color:var(--color-text-secondary);font-family:JetBrains Mono,monospace;font-size:11px;padding:3px 9px;background:var(--color-bg-tertiary);border-radius:5px;border:1px solid var(--color-border)}.editor-var-value.is-table{background:#6366f11a;color:#a5b4fc;border-color:#6366f140}.editor-var-value.is-view{background:#f472b61a;color:#f9a8d4;border-color:#f472b640}.editor-console-line{display:flex;align-items:flex-start;gap:8px;font-family:JetBrains Mono,monospace;font-size:11.5px;line-height:1.5;padding:6px 14px;white-space:pre-wrap;word-break:break-all;border-bottom:1px solid color-mix(in srgb,var(--color-border) 60%,transparent)}.editor-console-line:last-child{border-bottom:none}.editor-console-glyph{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;font-size:10px;font-weight:700}.editor-console-text{flex:1;min-width:0}.editor-console-line.is-stdout .editor-console-glyph{background:var(--color-accent-soft);color:var(--color-accent-text)}.editor-console-line.is-stdout{color:var(--color-text-primary)}.editor-console-line.is-stderr{background:#f8717114;color:#fca5a5}.editor-console-line.is-stderr .editor-console-glyph{background:#f871712e;color:#fca5a5}.editor-console-line.is-info{color:var(--color-accent-text)}.editor-console-line.is-info .editor-console-glyph{background:var(--color-accent-soft);color:var(--color-accent-text)}.code-editor-monaco{flex:1;min-width:0;min-height:0;border-radius:12px;border:1px solid var(--color-border);overflow:hidden;box-shadow:0 1px 2px #0000000f,0 12px 32px -16px #00000047}.be-code-lang-toolbar{padding:5px 12px;border-radius:999px;background:var(--color-bg-tertiary);font-size:10px}.be-status-pill.is-loading .be-status-dot{background:var(--color-accent);animation:be-pulse 1.2s ease-in-out infinite}@keyframes be-pulse{0%,to{opacity:1}50%{opacity:.35}}.editor-console-wrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:8px}.editor-console-wrap>.editor-panel-body{flex:1 1 auto;min-height:0;overflow:auto}.code-editor-repl{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-tertiary)}.code-editor-repl-prompt{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--color-accent-text);user-select:none}.code-editor-repl input{flex:1;min-width:0;border:none;background:transparent;color:var(--color-text-primary);font-family:var(--font-mono);font-size:12px;outline:none}.code-editor-repl input::placeholder{color:var(--color-text-tertiary)}.code-editor-repl-go{border:none;background:var(--color-accent-soft);color:var(--color-accent-text);width:24px;height:24px;border-radius:6px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}.code-editor-repl-go:hover{background:var(--color-accent);color:var(--color-accent-contrast)}
