: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;--space-7: 44px;--space-8: 56px;--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-sans: "Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Consolas, "PingFang SC", "Microsoft YaHei", monospace;--font-family: var(--font-sans);--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);--ease-out: cubic-bezier(.22, .61, .36, 1);--ease-spring: cubic-bezier(.34, 1.4, .5, 1)}: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: #778ba3;--color-text-inverse: #04161a;--color-text-disabled: #50647a;--color-border: #22303f;--color-border-hover: #33465c;--color-border-strong: #4c6480;--color-accent: #2dd4bf;--color-accent-hover: #5eead4;--color-accent-active: #14b8a6;--color-accent-soft: rgba(45, 212, 191, .14);--color-accent-text: #5eead4;--cat-scientific: #22d3ee;--cat-scientific-soft: rgba(34, 211, 238, .16);--cat-fun: #f472b6;--cat-fun-soft: rgba(244, 114, 182, .16);--cat-utility: #a78bfa;--cat-utility-soft: rgba(167, 139, 250, .16);--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: #626f84;--color-text-inverse: #ffffff;--color-text-disabled: #77879d;--color-border: #d7dee6;--color-border-hover: #bac6d2;--color-border-strong: #7f8fa1;--color-accent: #0b7a6e;--color-accent-hover: #0a6d62;--color-accent-active: #0a5f56;--color-accent-soft: rgba(14, 147, 132, .12);--color-accent-text: #0b7a6e;--cat-scientific: #0e7490;--cat-scientific-soft: rgba(14, 116, 144, .12);--cat-fun: #be185d;--cat-fun-soft: rgba(190, 24, 93, .12);--cat-utility: #6d28d9;--cat-utility-soft: rgba(109, 40, 217, .12);--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;white-space:nowrap;user-select:none;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.btn:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-hover);transform:translateY(-1px);will-change:transform}.btn:active:not(:disabled){background:var(--color-bg-active);transform:translateY(0) scale(.97);will-change:transform}.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)}.btn-danger{color:var(--color-error);border-color:var(--color-error);background:transparent}.btn-danger:hover:not(:disabled){background:var(--color-error-soft)}.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)}.qty-input{display:inline-flex;gap:var(--space-1);align-items:center;min-width:0}.qty-input .qty-input-value{width:110px;flex:0 1 auto}.qty-input .qty-input-unit{width:92px;flex:0 1 auto;font-family:var(--font-mono)}.qty-input-invalid .qty-input-unit{border-color:var(--color-error);color:var(--color-error)}.card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-1);transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-fast)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:var(--color-border-hover)}.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{width:var(--modal-width, auto);min-width:min(var(--modal-min-width, 420px),calc(100vw - var(--space-4) * 2));max-width:min(var(--modal-max-width, 640px),calc(100vw - var(--space-4) * 2));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;max-width:calc(100vw - var(--space-4) * 2)}}@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),transform var(--transition-fast)}.icon-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.icon-btn:active:not(:disabled){transform:scale(.9)}.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)}}.cross-site-switcher{position:fixed;right:16px;bottom:16px;z-index:1400;display:flex;align-items:center;gap:4px;padding:4px;border-radius:999px;background-color:var(--color-bg-elevated);border:1px solid var(--color-border);box-shadow:0 4px 16px #0000002e}.csw-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-tertiary);padding:0 6px;user-select:none}.csw-link{display:inline-flex;align-items:center;padding:5px 12px;border-radius:999px;font-size:13px;font-weight:500;color:var(--color-text-secondary);text-decoration:none;transition:color .2s,background-color .2s}.csw-link:hover{color:var(--color-accent-text);background-color:var(--color-bg-hover)}.csw-link.is-current{color:var(--color-accent-text);background-color:var(--color-accent-soft);cursor:default}@media(max-width:640px){.csw-label{display:none}.cross-site-switcher{right:10px;bottom:10px}}.ai-overlay{position:fixed;top:calc(var(--topbar-height) + 8px);right:16px;bottom:56px;width:384px;max-width:calc(100vw - 32px);z-index:1700;pointer-events:none}.ai-overlay .ai-panel{pointer-events:auto;width:100%;height:100%;min-height:0;box-shadow:0 12px 32px -8px #00000059}.ai-panel-head-actions{display:flex;align-items:center;gap:6px}.ai-panel-close{width:24px;height:24px}@media(max-width:520px){.ai-overlay{right:8px;left:8px;width:auto;bottom:96px}}html.theme-transition body,html.theme-transition .topbar,html.theme-transition .tool-topbar,html.theme-transition .statusbar,html.theme-transition .sidebar,html.theme-transition .right-panel,html.theme-transition .card,html.theme-transition .plugin-card,html.theme-transition .btn,html.theme-transition .btn-primary,html.theme-transition .input,html.theme-transition .select,html.theme-transition .modal,html.theme-transition .modal-header,html.theme-transition .modal-body,html.theme-transition .modal-footer,html.theme-transition .menu,html.theme-transition .tag,html.theme-transition .banner,html.theme-transition .toast,html.theme-transition .icon-btn,html.theme-transition .menu-item,html.theme-transition .menu-separator,html.theme-transition .topbar-cluster,html.theme-transition .csw-link,html.theme-transition .cross-site-switcher{transition:background-color var(--transition-base),color var(--transition-base),border-color var(--transition-base),fill var(--transition-base),box-shadow var(--transition-base)!important}@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-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;white-space:nowrap;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)}.topbar-divider{width:1px;height:18px;margin:0 2px;flex-shrink:0;background:var(--color-border)}.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:safe 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,var(--color-accent-soft),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-group{margin-top:var(--space-2)}.plugin-group-header{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:4px 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-tertiary);font-size:var(--font-size-xs);letter-spacing:.04em;cursor:pointer;text-align:left;transition:background var(--transition-fast),color var(--transition-fast)}.plugin-group-header:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.plugin-group-chevron{display:inline-block;font-size:10px;transition:transform var(--transition-fast)}.plugin-group-chevron.is-collapsed{transform:rotate(-90deg)}.plugin-group-name{flex:1;font-weight:600}.plugin-group-count{font-size:10px;color:var(--color-text-tertiary);background:var(--color-bg-hover);border-radius:999px;padding:0 6px;line-height:16px}.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-mark{width:72px;height:72px;margin-bottom:var(--space-2);fill:none;stroke:var(--color-accent);stroke-width:2.5;stroke-linecap:round;opacity:.9}.central-empty-mark-ring{stroke-width:1.6;animation:empty-ring-pulse 2.4s ease-in-out infinite;transform-origin:center}@keyframes empty-ring-pulse{0%,to{opacity:.25;transform:scale(1)}50%{opacity:.85;transform:scale(1.12)}}.central-empty-mark-core{fill:var(--color-accent);stroke:none}.central-empty-tip{margin:var(--space-2) 0 0;font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-tertiary)}.central-empty-tip kbd{padding:1px 6px;border:1px solid var(--color-border-strong);border-bottom-width:2px;border-radius:var(--radius-sm);background:var(--color-bg-tertiary);font-family:var(--font-mono);font-size:10px;color:var(--color-text-secondary)}.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-zoom-badge{position:absolute;right:14px;bottom:14px;padding:4px 10px;border-radius:999px;background:var(--color-bg-elevated);border:1px solid var(--color-accent);box-shadow:var(--shadow-1);color:var(--color-accent-text);font-size:var(--font-size-sm);font-family:Consolas,monospace;cursor:pointer;z-index:6}.central-zoom-badge:hover{filter:brightness(1.15)}.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)}.param-group{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);align-items:flex-end}.param-group>.field{flex:0 0 auto;margin-bottom:var(--space-2)}.param-group>.field.field-inline{width:6.5em}.param-group>.field.field-inline:has(input[type=number]){flex:1 1 0;width:auto;min-width:5.5em}.param-panel input[type=number]{appearance:textfield;-moz-appearance:textfield}.param-panel input[type=number]::-webkit-outer-spin-button,.param-panel input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.param-group .field.field-inline .input{width:100%}.param-group .field-inline .field-label{font-size:var(--font-size-xs)}.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)}.statusbar-left.statusbar-error{color:var(--color-error);font-weight:600}.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-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-2);transform:translateY(-2px)}.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:var(--cat-scientific-soft);color:var(--cat-scientific)}.cat-fun{background:var(--cat-fun-soft);color:var(--cat-fun)}.cat-utility{background:var(--cat-utility-soft);color:var(--cat-utility)}.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)}.example-group{display:flex;flex-direction:column;gap:var(--space-2)}.example-group+.example-group{margin-top:var(--space-4)}.example-group-head{display:flex;align-items:center;gap:var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--color-border)}.example-group-title{font-size:var(--font-size-sm);font-weight:600;letter-spacing:.02em;color:var(--color-text-primary)}.example-group-count{padding:0 6px;border-radius:999px;background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:18px}.example-layout{display:flex;gap:var(--space-3);align-items:stretch;min-height:320px}.example-cat-list{display:flex;flex-direction:column;gap:var(--space-1);flex-shrink:0;width:150px;max-height:340px;overflow-y:auto;padding-right:2px}.example-cat{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:7px 10px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.example-cat:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.example-cat.is-active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-text);font-weight:600}.example-cat-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.example-cat-count{flex-shrink:0;padding:0 6px;border-radius:999px;background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:18px}.example-cat.is-active .example-cat-count{background:var(--color-accent-soft);color:var(--color-accent-text)}.example-list-pane{flex:1;min-width:0;max-height:340px}.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-topbar-left{display:flex;align-items:center;gap:var(--space-3)}.settings-back{display:inline-flex;align-items:center;gap:var(--space-1);padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:500;transition:background var(--transition-fast),border-color var(--transition-fast)}.settings-back:hover{background:var(--color-bg-hover);border-color:var(--color-border-strong, var(--color-border))}.settings-back-arrow{font-size:var(--font-size-md);line-height:1}.settings-topbar-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary);letter-spacing:.02em;padding-left:var(--space-4);border-left:1px solid var(--color-border);white-space:nowrap}.settings-layout{flex:1;display:flex;min-height:0}.settings-sidebar{flex-shrink:0;width:200px;padding:var(--space-8) var(--space-3) var(--space-5) var(--space-5);border-right:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-1);background:color-mix(in srgb,var(--color-bg-elevated) 40%,transparent)}.settings-nav-item{display:block;width:100%;text-align:left;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.settings-nav-item:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.settings-nav-item.active{background:var(--color-accent-soft);color:var(--color-text-primary);font-weight:600}.settings-content{flex:1;overflow-y:auto;min-width:0}.settings-content-inner{max-width:780px;width:100%;margin:0 auto;padding:var(--space-8) var(--space-5) var(--space-8);display:flex;flex-direction:column;gap:var(--space-4)}.settings-title{font-size:var(--font-size-lg);margin:0 0 var(--space-1);letter-spacing:-.02em}@media(max-width:640px){.settings-layout{flex-direction:column}.settings-sidebar{width:auto;flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--color-border);padding:var(--space-3)}.settings-nav-item{width:auto}}.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)}.citation-preview{margin:0 0 var(--space-3) 0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);background:var(--color-bg-secondary);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--font-size-sm);white-space:pre-wrap;word-break:break-all;overflow-x:auto}.about-links{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.about-link{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--font-size-sm);text-decoration:none;word-break:break-all;transition:color var(--transition-fast)}.about-link:hover{color:var(--color-accent-hover);text-decoration:underline}.about-status{max-width:58ch;line-height:1.6}.about-team{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-3);margin-top:var(--space-3)}.about-member{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.about-member-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.about-member-handle{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-primary)}.about-member-links{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}.about-member-links a{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--font-size-xs);text-decoration:none;transition:color var(--transition-fast)}.about-member-links a:hover{color:var(--color-accent-hover);text-decoration:underline}.about-member-intro{margin-top:auto;line-height:1.6}.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-mode-picker{display:flex;gap:var(--space-1);margin-bottom:var(--space-3)}.share-snapshot-progress{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-tertiary, #888);margin-bottom:var(--space-3)}.share-snapshot-progress .stage.active{color:var(--color-accent, #1a56c4);font-weight:600}.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-export-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.share-hint{margin:calc(-1 * var(--space-2)) 0 var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.analysis-body{max-height:72vh;overflow-y:auto;display:flex;flex-direction:column}.analysis-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.analysis-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);min-width:56px}.analysis-note{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.analysis-error{margin:0 0 var(--space-2);font-size:var(--font-size-xs);color:var(--color-error)}.analysis-warning{margin:0 0 var(--space-2);padding:var(--space-3);font-size:var(--font-size-sm);line-height:1.5;color:var(--color-warning-strong, var(--color-warning));background:var(--color-warning-soft, var(--color-accent-soft));border:1px solid var(--color-warning, var(--color-border));border-radius:var(--radius-md)}.analysis-preview{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.analysis-svg{max-height:360px;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2)}.analysis-svg svg{max-width:100%;height:auto}:root[data-theme=dark] .analysis-svg,:root[data-theme=dark] .figures-preview-svg{background:#fff}.analysis-actions{display:flex;gap:var(--space-2)}.analysis-output{margin:0 0 var(--space-2);padding:var(--space-2) var(--space-3);font-family:var(--font-mono);font-size:var(--font-size-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);white-space:pre-wrap;color:var(--color-text-secondary)}.lab-page{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.lab-page .analysis-body,.tool-shell .analysis-body{max-height:none;overflow:visible}.infer-device-badge{font-family:var(--font-mono);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;padding:3px 10px;border-radius:999px;border:1px solid var(--color-border)}.infer-device-badge.is-webgpu{color:var(--color-accent-text);border-color:var(--color-accent);background:var(--color-accent-soft)}.infer-device-badge.is-cpu{color:var(--color-text-secondary)}.infer-device-warning{font-size:var(--font-size-xs);color:var(--color-warning)}.infer-textarea{font-family:var(--font-mono);font-size:11px;line-height:1.5;resize:vertical;margin-bottom:var(--space-2)}.infer-progress{flex:1;min-width:120px;height:6px;border-radius:999px;background:var(--color-bg-hover);overflow:hidden}.infer-progress-bar{height:100%;background:var(--color-accent);transition:width .12s linear}.infer-table{border-collapse:collapse;font-family:var(--font-mono);font-size:var(--font-size-xs);margin-bottom:var(--space-2)}.infer-table th,.infer-table td{padding:4px 12px;text-align:left;border-bottom:1px solid var(--color-border)}.infer-table th{color:var(--color-text-tertiary);font-weight:600}.infer-table tr.is-top td{color:var(--color-accent);font-weight:700}.share-loading{height:100vh;display:flex;align-items:center;justify-content:center;gap:var(--space-3);color:var(--color-text-secondary)}.tour-layer{position:fixed;inset:0;z-index:2500;pointer-events:none}.tour-spot{position:fixed;border-radius:var(--radius-md);box-shadow:0 0 0 9999px var(--color-bg-overlay);outline:2px solid var(--color-accent);transition:top .25s ease,left .25s ease,width .25s ease,height .25s ease}.tour-spot:after{content:"";position:absolute;inset:-5px;border:2px solid var(--color-accent);border-radius:calc(var(--radius-md) + 5px);animation:tour-pulse 1.6s ease-out infinite}@keyframes tour-pulse{0%{opacity:.95}to{opacity:0}}.tour-tip{position:fixed;pointer-events:auto;padding:var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);animation:tour-tip-in .2s ease}@keyframes tour-tip-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.tour-tip-center{top:50%;left:50%;translate:-50% -50%}.tour-tip-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.tour-tip-title{font-weight:600;font-size:var(--font-size-md);color:var(--color-text-primary)}.tour-tip-count{flex-shrink:0;padding:0 6px;border-radius:999px;background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:18px}.tour-tip-body{margin:0 0 var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.55}.tour-tip-hint{display:inline-flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-2);padding:2px 8px;border-radius:999px;background:var(--color-accent-soft);color:var(--color-accent-text);font-size:var(--font-size-xs)}.tour-tip-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.tour-backdrop{position:fixed;inset:0;background:var(--color-bg-overlay);animation:tour-fade .25s ease}@keyframes tour-fade{0%{opacity:0}to{opacity:1}}.tour-tip-hero{width:min(460px,calc(100vw - 48px));padding:var(--space-5);border-top:3px solid var(--color-accent);box-shadow:var(--shadow-3),0 0 48px var(--color-accent-soft)}.tour-tip-hero .tour-tip-title{font-size:var(--font-size-lg)}.tour-tip-hero .tour-tip-body{font-size:var(--font-size-md)}.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)}.error-fallback-code{font-family:var(--font-mono, monospace);font-size:var(--font-size-xs, 11px);opacity:.7;user-select:all}.error-fallback-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center}.error-fallback-detail{max-width:min(720px,90vw);max-height:240px;overflow:auto;margin:0;padding:var(--space-3);font-family:var(--font-mono, monospace);font-size:var(--font-size-xs, 11px);text-align:left;white-space:pre-wrap;word-break:break-word;background:var(--color-surface-alt, rgba(127, 127, 127, .08));border-radius:var(--radius-sm, 6px)}.sweep-field-error{flex-basis:100%;margin:2px 0 0;font-size:var(--font-size-xs, 11px);line-height:1.4;color:var(--color-error)}.route-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4)}.route-loading:after{content:"";width:200px;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--color-bg-tertiary) 25%,var(--color-bg-hover) 50%,var(--color-bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}.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-warning{font-size:var(--font-size-xs);color:var(--color-warning)}.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){.topbar{height:auto;min-height:var(--topbar-height);flex-wrap:wrap;padding:var(--space-1) var(--space-2);row-gap:var(--space-1)}.topbar-divider{display:none}.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%}}.runs-dialog{display:flex;flex-direction:column;gap:var(--space-4)}.runs-empty{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.runs-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.runs-table th,.runs-table td{padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--color-border);text-align:left;white-space:nowrap}.runs-table th{color:var(--color-text-tertiary);font-weight:500;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em}.runs-table tbody tr:hover{background:var(--color-bg-hover)}.runs-table tr.row-selected{background:var(--color-accent-soft)}.runs-table .delta-up{color:var(--color-success)}.runs-table .delta-down{color:var(--color-error)}.runs-actions{display:flex;align-items:center;gap:var(--space-3)}.runs-hint{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.runs-diff{border-top:1px solid var(--color-border);padding-top:var(--space-3)}.runs-diff h3{margin:0 0 var(--space-2);font-size:var(--font-size-base)}.runs-diff-meta{margin:0 0 var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.runs-diff-list{margin:0 0 var(--space-2);padding-left:var(--space-5);font-size:var(--font-size-sm)}.lineage-dialog{display:flex;flex-direction:column;gap:var(--space-3)}.lineage-empty{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.lineage-legend{display:flex;align-items:center;gap:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.lineage-legend-file:before,.lineage-legend-run:before,.lineage-legend-failed:before{content:"";display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:3px;vertical-align:-1px;border:1px solid var(--color-accent);background:var(--color-accent-soft)}.lineage-legend-run:before{border-color:var(--color-border-strong);background:var(--color-bg-tertiary)}.lineage-legend-failed:before{border-color:var(--color-error);background:var(--color-error-soft)}.lineage-legend-meta{margin-left:auto;color:var(--color-text-tertiary)}.lineage-scroll{overflow:auto;max-height:60vh;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);padding:var(--space-3)}.lineage-svg{display:block}.lineage-edge{fill:none;stroke:var(--color-border-strong);stroke-width:1.2}.lineage-node rect{fill:var(--color-bg-tertiary);stroke:var(--color-border-strong);stroke-width:1}.lineage-node text{fill:var(--color-text-primary);font-size:var(--font-size-xs);font-family:var(--font-mono)}.lineage-node-file rect{fill:var(--color-accent-soft);stroke:var(--color-accent)}.lineage-node-failed rect{stroke:var(--color-error)}.lineage-node:hover rect{stroke-width:1.6}.chunk-panel{display:flex;flex-direction:column;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);padding:var(--space-3)}.chunk-panel-head{display:flex;align-items:center;gap:var(--space-3)}.chunk-panel-title{font-size:var(--font-size-sm);color:var(--color-text-primary)}.chunk-panel-meta{font-size:var(--font-size-xs);color:var(--color-text-secondary);flex:1}.chunk-table-wrap{overflow:auto;max-height:220px;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.chunk-table{width:100%;border-collapse:collapse;font-size:var(--font-size-xs);font-family:var(--font-mono)}.chunk-table th,.chunk-table td{padding:2px 8px;border-bottom:1px solid var(--color-border);text-align:right;white-space:nowrap}.chunk-table th{position:sticky;top:0;background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-weight:500}.chunk-table td:first-child,.chunk-table th:first-child{text-align:left}.chunk-panel-foot{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.figures-page{display:flex;flex-direction:column;gap:var(--space-4);min-height:100vh;padding:var(--space-4) var(--space-5);max-width:1400px;margin:0 auto}.figures-header{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.figures-title{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary)}.figures-sheet-select{width:auto;max-width:220px}.figures-main{display:grid;grid-template-columns:320px 1fr;gap:var(--space-4);align-items:start}@media(max-width:900px){.figures-main{grid-template-columns:1fr}}.figures-side{display:flex;flex-direction:column;gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);padding:var(--space-3)}.figures-side-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.figures-subtitle{margin:0;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary)}.figures-panel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);max-height:360px;overflow-y:auto}.figures-panel-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-tertiary)}.figures-panel-tag{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent);font-weight:700;font-size:var(--font-size-xs);flex-shrink:0}.figures-panel-info{flex:1;min-width:0}.figures-panel-name{font-size:var(--font-size-xs);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.figures-panel-meta{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:1px}.figures-panel-actions{display:flex;gap:var(--space-1);flex-shrink:0}.figures-stage{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.figures-preview{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);padding:var(--space-3);overflow:auto}.figures-preview-svg svg{max-width:100%;height:auto;display:block;margin:0 auto}.figures-caption{resize:vertical}.figures-export{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.figures-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.figures-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.figures-field-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.figures-color{height:34px;padding:2px}.figures-editor{display:flex;flex-direction:column;gap:var(--space-3)}.figures-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.figures-field-small input{max-width:110px}.figures-data{font-family:var(--font-mono);font-size:var(--font-size-xs);resize:vertical}@media(max-width:560px){.figures-editor-grid{grid-template-columns:1fr}}.submit-panel{display:flex;flex-direction:column;gap:var(--space-3)}.submit-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary)}.submit-font-embed{width:18px;height:18px;accent-color:var(--color-accent)}.submit-summary{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.submit-group-title{margin:0 0 var(--space-1);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary)}.submit-list{list-style:none;margin:0 0 var(--space-2);padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.submit-item{padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary)}.submit-item-ok{border-color:var(--color-success-soft)}.submit-item-fail{border-color:var(--color-error-soft)}.submit-item-head{display:flex;align-items:center;gap:var(--space-2)}.submit-item-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary)}.submit-item-body{margin-top:var(--space-1);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}.submit-item-message{margin:0;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.submit-item-fix{margin:0;font-size:var(--font-size-xs);color:var(--color-warning)}.submit-caption-gen,.supplement-form{display:flex;flex-direction:column;gap:var(--space-3)}.supplement-intro{margin:0;font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.5}.supplement-check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-primary)}.supplement-check input{accent-color:var(--color-accent)}.supplement-hint{margin:0;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.nb-page{display:flex;flex-direction:column;gap:var(--space-4);min-height:100vh;padding:var(--space-4) var(--space-5);max-width:980px;margin:0 auto}.nb-header{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.nb-cells{display:flex;flex-direction:column;gap:var(--space-3)}.nb-cell{display:flex;flex-direction:column;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);padding:var(--space-3)}.nb-cell-running{border-color:var(--color-accent)}.nb-cell-toolbar{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap}.nb-cell-meta{flex:1;text-align:right;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.nb-ok{color:var(--color-success, #2a9d5c)}.nb-fail{color:var(--color-error)}.nb-source{width:100%;font-size:var(--font-size-sm);resize:vertical}.nb-source-code{font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.5}.nb-md{font-size:var(--font-size-sm);line-height:1.6;cursor:text;min-height:24px}.nb-md h1,.nb-md h2,.nb-md h3,.nb-md h4{margin:var(--space-2) 0 var(--space-1)}.nb-md pre{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2);overflow-x:auto}.nb-md code,.nb-md blockquote{font-family:var(--font-mono)}.nb-md blockquote{margin:var(--space-2) 0;padding:var(--space-1) var(--space-3);border-left:3px solid var(--color-border-strong);color:var(--color-text-secondary)}.nb-cell-outputs{display:flex;flex-direction:column;gap:var(--space-2)}.nb-out{margin:0;padding:var(--space-2);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-xs);white-space:pre-wrap;overflow-x:auto;background:var(--color-bg-tertiary);border:1px solid var(--color-border)}.nb-out-stderr,.nb-out-error{border-color:var(--color-error);color:var(--color-error)}.nb-out-vars{display:flex;flex-wrap:wrap;gap:var(--space-2)}.nb-var{display:inline-flex;align-items:center;gap:4px;padding:2px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.research-toolbar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.research-toolbar .input{max-width:220px}.research-num{max-width:80px!important}.research-check{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-sm);white-space:nowrap}.research-results{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.research-summary{white-space:pre-wrap}.research-charts{display:flex;flex-wrap:wrap;gap:var(--space-3)}.research-chart-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2);background:var(--color-bg-secondary)}.research-chart-card .analysis-svg{max-width:100%}.engine-picker{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-2) 0}.engine-choice{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);padding:2px var(--space-3);font-size:var(--font-size-sm);cursor:pointer}.engine-choice-active{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-bg-tertiary)}.sweep-editor,.sweep-view,.sweep-results{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.sweep-row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:flex-end}.sql-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--space-3);align-items:start}@media(max-width:900px){.sql-layout{grid-template-columns:1fr}}.sql-sidebar{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary)}.sql-status-chip{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.sql-status-ready{color:var(--color-accent)}.sql-status-error{color:var(--color-error)}.sql-side-title{margin:var(--space-2) 0 0;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.sql-side-note{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.sql-table-list,.sql-history{display:flex;flex-direction:column;gap:var(--space-1);max-height:280px;overflow-y:auto}.sql-table-item{border-bottom:1px solid var(--color-border);padding-bottom:var(--space-1)}.sql-table-name{width:100%;padding:2px 4px;border:none;background:none;text-align:left;font-family:var(--font-mono, monospace);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);cursor:pointer}.sql-table-name:hover{color:var(--color-accent)}.sql-col-list{margin:2px 0 0;padding:0 0 0 12px;list-style:none}.sql-col-name{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;padding:1px 4px;border:none;background:none;text-align:left;font-family:var(--font-mono, monospace);font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer}.sql-col-name:hover{color:var(--color-accent)}.sql-col-type{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.sql-history-item{padding:3px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none;text-align:left;font-family:var(--font-mono, monospace);font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sql-history-item:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.sql-main{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.sql-editor{width:100%;min-height:160px;resize:vertical;font-family:var(--font-mono, monospace);font-size:var(--font-size-sm);line-height:1.5;white-space:pre}.sql-actions{display:flex;gap:var(--space-2)}.sql-run-btn{border-color:var(--color-accent);color:var(--color-accent)}.sql-error{margin:0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-sm);white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.sql-result{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.sql-result-meta{display:flex;gap:var(--space-2);align-items:baseline;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.sql-preview-note{color:var(--color-text-tertiary)}.theme-palette-swatch{margin-left:8px}.sql-result-scroll{max-height:360px;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.sql-result-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.sql-result-table th,.sql-result-table td{padding:4px 10px;border-bottom:1px solid var(--color-border);text-align:left;white-space:nowrap}.sql-result-table thead th{position:sticky;top:0;background:var(--color-bg-secondary);font-weight:600;z-index:1}.sql-save-row{display:flex;gap:var(--space-2);align-items:center}.sql-save-name{max-width:320px}.sweep-row .figures-label{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-xs)}.sweep-axis{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center;border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-2)}.sweep-list-input{flex:1;min-width:180px}.sweep-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.sweep-result-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.sweep-table-wrap{max-height:420px;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.sweep-table{border-collapse:collapse;width:100%;font-size:var(--font-size-xs)}.sweep-table th,.sweep-table td{border-bottom:1px solid var(--color-border);padding:3px var(--space-2);text-align:left;white-space:nowrap}.sweep-table thead th{position:sticky;top:0;background:var(--color-bg-tertiary);z-index:1}.sweep-heat{background:var(--color-bg-secondary);border-radius:var(--radius-md)}.report-main{display:grid;grid-template-columns:380px 1fr;gap:var(--space-3);flex:1;min-height:0}.report-side{overflow-y:auto;border-right:1px solid var(--color-border);padding:var(--space-3)}.report-meta{display:flex;flex-direction:column;gap:var(--space-2);margin:var(--space-3) 0}.report-meta .figures-label{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-xs)}.report-section-list{list-style:none;margin:var(--space-2) 0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.report-section-item{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2);background:var(--color-bg-secondary)}.report-section-head{display:flex;align-items:center;gap:var(--space-2)}.report-section-buttons{margin-left:auto;display:flex;gap:2px}.report-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.report-field-grid .input{width:100%}.report-add-select{max-width:150px}.report-preview-wrap{min-height:0;padding:var(--space-3)}.report-preview{width:100%;height:100%;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.model-cols{align-items:flex-start}.model-predictors{display:flex;flex-wrap:wrap;gap:var(--space-2);max-height:120px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2)}.profile-summary{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary)}.profile-score{font-size:var(--font-size-lg);font-weight:700;color:var(--color-accent)}.profile-issue-list,.profile-top{list-style:none;margin:var(--space-2) 0;padding:0;display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm)}.profile-badge{display:inline-block;padding:0 6px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);text-transform:uppercase;margin-right:4px}.profile-badge-high{background:#dc3c3c2e;color:var(--color-error)}.profile-badge-medium{background:#c88c142e}.profile-badge-low{background:#3c8c5a2e}.profile-corr-cell{text-align:right;font-variant-numeric:tabular-nums}.profile-corr-dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}.profile-columns{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-3)}.profile-column-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);background:var(--color-bg-secondary)}.profile-stat-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px var(--space-2);font-size:var(--font-size-xs);margin:var(--space-2) 0}.profile-stat-grid em{color:var(--color-text-tertiary);font-style:normal;margin-right:2px}.profile-hist{margin:var(--space-2) 0 0}.repro-runs{margin-bottom:var(--space-2)}.repro-run-list{max-height:180px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2);display:flex;flex-direction:column;gap:2px}.repro-run-row{gap:var(--space-2);font-size:var(--font-size-xs)}.repro-import{cursor:pointer}.repro-cats{display:flex;flex-wrap:wrap;gap:var(--space-1, 4px);margin:var(--space-2) 0}.repro-upgrade-hint{color:#c88c14}.repro-deps{margin:var(--space-2) 0}.repro-drift-suggestion{color:var(--color-text-tertiary, #888);font-size:var(--font-size-xs, 12px);margin-top:2px}.runs-diff-kind{color:var(--color-text-tertiary, #888);font-size:var(--font-size-xs, 12px);margin-left:4px}.repro-status{margin:var(--space-2) 0;text-transform:uppercase}.repro-status-pass{color:var(--color-success, #2a9d5c)}.repro-status-fail{color:var(--color-error)}.repro-status-warn{color:#c88c14}.repro-drift-fail td,.repro-sev-fail{color:var(--color-error)}.mcmc-diag-bad{border:1px solid var(--color-error);border-radius:var(--radius-md);padding:var(--space-2)}.figures-panel-select{flex:1;text-align:left;background:none;border:none;color:inherit;cursor:pointer;padding:0}.figures-panel-active{outline:1px solid var(--color-accent)}.welcome-panels{display:flex;align-items:stretch;justify-content:center;gap:var(--space-4);width:min(1240px,96vw)}.welcome-modes{flex:1 1 620px;min-width:0;padding:var(--space-4) var(--space-5)}.welcome-panels .welcome-hardware{flex:0 1 400px}.central-empty-modes{width:min(860px,100%);margin-top:var(--space-2)}.wb-modes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.wb-mode-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-primary);font:inherit;cursor:pointer;text-align:left;min-width:0;transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.wb-mode-card:hover{border-color:var(--color-accent);background:var(--color-bg-tertiary);transform:translateY(-1px);box-shadow:var(--shadow-1)}.wb-mode-card:active{transform:translateY(0);box-shadow:none}.wb-mode-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.wb-mode-icon{display:inline-flex;flex-shrink:0;color:var(--color-accent)}.wb-mode-icon svg{width:28px;height:28px}.wb-mode-body{display:flex;flex-direction:column;gap:2px;min-width:0}.wb-mode-title{font-size:var(--font-size-base);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wb-mode-desc{font-size:var(--font-size-sm);color:var(--color-text-tertiary);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:900px){.welcome-panels{flex-direction:column;width:min(720px,96vw)}.welcome-panels .welcome-modes,.welcome-panels .welcome-hardware{flex:none;width:100%}}.tool-shell{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg-primary)}.tool-topbar{flex-shrink:0;height:var(--topbar-height);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)}.tool-topbar-main{display:flex;align-items:center;gap:var(--space-2);min-width:0}.tool-back{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.tool-title-icon{display:inline-flex;align-items:center;color:var(--color-accent);flex-shrink:0}.tool-title{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-topbar-extra{display:flex;align-items:center;gap:var(--space-2);margin-left:var(--space-2);flex-wrap:wrap}.tool-topbar-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.tool-body{flex:1;min-height:0;overflow-y:auto}.tool-content{display:flex;flex-direction:column;gap:var(--space-4);min-height:100%;max-width:1400px;margin:0 auto;padding:var(--space-4) var(--space-5)}.tool-content:has(.nb-cells){max-width:980px}.tool-content>.empty-state{margin:auto}.skeleton{display:block;border-radius:var(--radius-sm);background:var(--color-bg-tertiary);animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton-btn{width:88px;height:28px}.skeleton-title{width:170px;height:18px}.skeleton-line{width:100%;height:13px}.skeleton-line-lg{width:260px;height:20px}.skeleton-line-md{width:55%}.tool-skeleton-row{display:flex;align-items:center;gap:var(--space-3)}.tool-skeleton-name{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-4);text-align:center;color:var(--color-text-secondary)}.empty-state-icon{display:inline-flex;color:var(--color-text-tertiary);margin-bottom:var(--space-1)}.empty-state-title{margin:0;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary)}.empty-state-desc{margin:0;max-width:420px;font-size:var(--font-size-sm);line-height:1.6}.empty-state-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-top:var(--space-2)}.empty-state-actions .btn{display:inline-flex;align-items:center;gap:5px}.sidebar-plugin-empty{padding:var(--space-3) var(--space-2);gap:4px}.sidebar-plugin-empty .empty-state-title{font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-tertiary)}.confirm-dialog-message{line-height:1.6;color:var(--color-text-secondary)}.confirm-dialog-message strong{color:var(--color-text-primary)}.menu-filter{display:flex;align-items:center;gap:6px;padding:4px 6px;margin:calc(-1 * var(--space-1)) calc(-1 * var(--space-1)) 4px;position:sticky;top:calc(-1 * var(--space-1));z-index:1;background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);color:var(--color-text-tertiary)}.menu-filter-input{flex:1;min-width:0;border:none!important;background:transparent!important;padding:4px 2px!important;font-size:var(--font-size-sm);box-shadow:none!important}.menu-filter-input:focus{outline:none}.menu-empty{padding:var(--space-3) var(--space-2);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.menu-group-label{padding:6px 10px 3px;font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-tertiary)}.menu-item-rich{gap:10px;padding:7px 10px}.menu-item-kbd,.menu-item-rich.menu-item-kbd{background:var(--color-accent-soft);color:var(--color-accent-text)}.menu-item-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--color-bg-tertiary);color:var(--color-accent)}.menu-item-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.menu-item-label{font-size:var(--font-size-sm);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-item-desc{font-size:var(--font-size-xs);color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-item-badge{flex-shrink:0;align-self:flex-start}.menu-item-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:500;background:var(--color-accent-soft);color:var(--color-accent-text)}.launcher-menu{width:380px;max-width:92vw;max-height:calc(100vh - 84px);overflow-y:auto}.launcher-trigger-inner{display:inline-flex;align-items:center;gap:5px}.topbar-cluster.mode-switch .mode-btn{height:100%;padding:0 13px;border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500;white-space:nowrap;cursor:pointer;position:relative;transition:background var(--transition-fast),color var(--transition-fast)}.topbar-cluster.mode-switch .mode-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.topbar-cluster.mode-switch .mode-btn.is-on{background:var(--color-accent-soft);color:var(--color-accent-text)}.topbar-cluster.mode-switch .mode-btn.is-on:after{content:"";position:absolute;left:9px;right:9px;bottom:0;height:2px;border-radius:1px;background:var(--color-accent)}.topbar-cluster .cluster-btn.icon-only{width:32px;padding:0;gap:0;position:relative}.topbar-cluster .icon-btn.is-active,.topbar-cluster .cluster-btn.icon-only.is-active{background:var(--color-accent-soft);color:var(--color-accent-text)}.perf-indicator-dot{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--color-success);box-shadow:0 0 5px var(--color-success)}.perf-entry.perf-warn{color:var(--color-warning)}.perf-entry.perf-warn .perf-indicator-dot{background:var(--color-warning);box-shadow:0 0 5px var(--color-warning);animation:blink 1s ease-in-out infinite}.topbar-overflow{display:none;width:34px;height:30px;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0}.topbar-overflow:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.welcome-cta-row{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap}.welcome-cta-row .welcome-enter{margin-top:0}.welcome-cta-row .btn{display:inline-flex;align-items:center;gap:6px}.welcome-start{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4);width:min(1240px,96vw)}.start-card{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}button.start-card:hover{border-color:var(--color-accent);background:var(--color-bg-tertiary);transform:translateY(-1px);box-shadow:var(--shadow-1)}.start-card[aria-disabled=true]{opacity:.6}.start-card-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border-radius:var(--radius-md);background:var(--color-accent-soft);color:var(--color-accent)}.start-card-body{display:flex;flex-direction:column;gap:4px;min-width:0}.start-card-title{font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary)}.start-card-desc{font-size:var(--font-size-sm);color:var(--color-text-tertiary);line-height:1.5}.start-recent-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.start-recent-item{display:inline-flex;align-items:center;gap:3px;padding:3px 5px 3px 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);max-width:240px;transition:border-color var(--transition-fast),color var(--transition-fast)}.start-recent-item:hover{border-color:var(--color-accent);color:var(--color-accent-text)}.start-recent-open{padding:0;border:none;background:none;color:inherit;font:inherit;cursor:pointer;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.start-recent-delete{display:inline-flex;align-items:center;justify-content:center;flex:none;width:16px;height:16px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--color-text-tertiary);cursor:pointer}.start-recent-delete:hover{color:#e5484d;background:#e5484d26}.template-panel-desc{margin:0 0 var(--space-3);color:var(--color-text-tertiary);font-size:var(--font-size-sm);line-height:1.5}.template-panel-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.template-subject-chips{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.template-subject-chips .chip{padding:3px 12px;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);white-space:nowrap;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.template-subject-chips .chip:hover{border-color:var(--color-accent);color:var(--color-accent-text)}.template-subject-chips .chip.is-active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-text)}.template-search{margin-left:auto;flex:0 1 240px;min-width:160px}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-3)}.template-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);min-width:0}.template-card-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.template-card-minutes{display:inline-flex;align-items:center;gap:4px;color:var(--color-text-tertiary);font-size:var(--font-size-xs);white-space:nowrap}.template-card-title{margin:0;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);overflow-wrap:anywhere}.template-card-summary{margin:0;font-size:var(--font-size-sm);color:var(--color-text-tertiary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.template-card-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--color-text-secondary)}.template-card-tool{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-sm);background:var(--color-bg-tertiary);color:var(--color-accent)}.template-card-foot{display:flex;justify-content:flex-end;margin-top:auto}.template-tour{position:fixed;top:calc(var(--topbar-height, 48px) + 12px);right:16px;z-index:1800;width:min(340px,calc(100vw - 32px));display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);animation:tour-tip-in .2s ease}.template-tour-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.template-tour-brand{font-size:var(--font-size-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-tour-step-title{margin:0 0 4px;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary)}.template-tour-step-body{margin:0;font-size:var(--font-size-sm);line-height:1.6;color:var(--color-text-secondary)}.template-tour-goto{margin-top:var(--space-2)}.template-tour-foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);border-top:1px solid var(--color-border);padding-top:var(--space-2)}.template-tour-progress{font-size:var(--font-size-xs);color:var(--color-text-tertiary);white-space:nowrap}.template-tour-dots{display:inline-flex;gap:4px}.template-tour-dot{width:6px;height:6px;border-radius:50%;background:var(--color-border-strong)}.template-tour-dot.is-active{background:var(--color-accent)}.template-tour-actions{display:inline-flex;gap:6px;margin-left:auto}.welcome-hardware.has-fail{border-color:var(--color-warning)}.env-strip{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:2px 0;color:var(--color-text-secondary)}.env-dots{display:inline-flex;gap:6px;flex-shrink:0}.env-summary{flex:1;font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.env-rows{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:7px}.welcome-tools{width:min(1240px,96vw);padding:var(--space-4) var(--space-5)}.welcome-tools-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.welcome-tools-head .welcome-section-title{margin:0}.welcome-tools-filter{width:240px;max-width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);margin-bottom:0;padding:2px 10px}.tool-grid-group+.tool-grid-group{margin-top:var(--space-4)}.tool-grid-label{margin:0 0 var(--space-2);font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--color-text-tertiary)}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:var(--space-2)}.tool-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.tool-card:hover{border-color:var(--color-accent);background:var(--color-bg-tertiary);transform:translateY(-1px);box-shadow:var(--shadow-1)}.tool-card:active{transform:translateY(0)}.tool-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.tool-card-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:var(--radius-md);background:var(--color-accent-soft);color:var(--color-accent)}.tool-card-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.tool-card-title{font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-card-desc{font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tool-card>svg{flex-shrink:0;color:var(--color-text-tertiary)}.tool-grid-empty{margin:var(--space-4) 0;text-align:center;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}@media(max-width:1180px){.topbar-hide-narrow{display:none!important}.topbar-overflow{display:inline-flex}.project-name{max-width:150px}}@media(max-width:900px){.welcome-start{grid-template-columns:1fr;width:min(720px,96vw)}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media(max-width:720px){.tool-topbar{height:auto;min-height:var(--topbar-height);flex-wrap:wrap;padding:var(--space-1) var(--space-2);row-gap:var(--space-1)}.tool-topbar-extra{margin-left:0}.tool-content{padding:var(--space-3)}.tool-grid{grid-template-columns:1fr}.welcome-tools-filter{width:100%}}.virtual-table-scroll{overflow:auto}.virtual-table{table-layout:fixed}.storage-usage-bar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--color-accent-soft);margin:var(--space-2) 0}.storage-usage-idb{height:100%;background:var(--color-accent);transition:width var(--transition-fast)}.course-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.course-list-item{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated)}.course-assignment-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);margin-bottom:var(--space-3)}.course-badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:var(--font-size-xs);border:1px solid var(--color-border);color:var(--color-text-secondary)}.course-overdue{color:var(--color-error);border-color:var(--color-error)}.course-matrix{border-collapse:collapse;font-size:var(--font-size-xs);margin-bottom:var(--space-2)}.course-matrix th,.course-matrix td{padding:4px 10px;text-align:left;border-bottom:1px solid var(--color-border)}.course-matrix th{color:var(--color-text-tertiary);font-weight:600}.course-cell{min-width:34px;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid transparent;font-family:var(--font-mono);font-size:10px;cursor:default}.course-cell.course-state-pass{color:var(--color-success);background:var(--color-success-soft)}.course-cell.course-state-drift{color:var(--color-error);background:var(--color-error-soft)}.course-cell.course-state-missing{color:var(--color-text-tertiary);background:var(--color-bg-hover)}.course-shell{display:flex;flex-direction:column;gap:var(--space-4)}.course-shell.course-signin{align-items:center;justify-content:flex-start;padding-top:var(--space-6)}.course-signin-card{width:100%;max-width:460px;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-elevated);box-shadow:0 8px 28px -12px #00000059}.course-signin-title{margin:0;font-size:var(--font-size-xl);font-weight:700;color:var(--color-text-primary)}.course-signin-desc{margin:0;font-size:var(--font-size-sm);line-height:1.55;color:var(--color-text-secondary)}.course-field{display:flex;flex-direction:column;gap:var(--space-2)}.course-field-label{font-size:var(--font-size-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary)}.course-role-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.course-role-option{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-secondary);cursor:pointer}.course-role-option:hover{border-color:var(--color-accent)}.course-role-option.is-active{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-text-primary)}.course-role-name{font-size:var(--font-size-md);font-weight:600;color:inherit}.course-role-hint{font-size:var(--font-size-xs);line-height:1.4;color:var(--color-text-tertiary)}.course-signin-cta{align-self:stretch;justify-content:center;padding:var(--space-3);font-size:var(--font-size-md)}.course-signin-back{align-self:center;color:var(--color-text-secondary)}.course-identitybar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.course-identity-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:4px 12px;border:1px solid var(--color-border);border-radius:999px;font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-elevated)}.course-chip-role{padding:1px 8px;border-radius:999px;font-size:var(--font-size-xs);color:var(--color-bg-primary)}.course-chip-teacher,.course-chip-student{background:var(--color-accent)}.course-change-btn{color:var(--color-text-secondary)}.course-warn{color:var(--color-warning, var(--color-error))}.course-openbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.course-open-title{margin:0}.course-section{display:flex;flex-direction:column;gap:var(--space-2)}.course-section .share-section-title{margin:0}.course-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.course-card-badges{display:inline-flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-left:auto}.course-card-head strong{font-size:var(--font-size-md)}.course-assignment-form .input:first-child{flex:1 1 220px}.course-assignment-form .input[type=datetime-local]{max-width:200px}.course-assignment-desc{max-width:720px}.course-reasons{color:var(--color-warning, var(--color-text-secondary))}.course-actions,.course-foot-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.course-foot-actions{margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.course-meta{font-family:var(--font-mono);font-size:var(--font-size-xs)}.course-danger{color:var(--color-error)!important;border-color:var(--color-error)!important}.clean-stepper{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3)}.clean-step-dot{width:28px;height:28px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast)}.clean-step-dot.is-done{color:var(--color-accent-text);border-color:var(--color-accent)}.clean-step-dot.is-active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-text);font-weight:700}.clean-step-list{list-style:none;margin:0 0 var(--space-3);padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.clean-step-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:3px var(--space-2);border-left:2px solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.clean-step-list li.is-current{border-left-color:var(--color-accent);color:var(--color-text-primary)}.clean-preview{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);margin-bottom:var(--space-3)}.clean-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3)}.clean-mini-table{overflow-x:auto}.clean-mini-table h5{margin:0 0 var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.clean-mini-table table{border-collapse:collapse;font-family:var(--font-mono);font-size:11px}.clean-mini-table th,.clean-mini-table td{padding:2px 10px;text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap}.clean-add{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px dashed var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3)}.clean-script{font-family:var(--font-mono);font-size:11px;line-height:1.5;resize:vertical;min-height:260px}.clean-done{display:flex;flex-direction:column;gap:var(--space-2)}.gallery-body{display:flex;flex-direction:column;gap:var(--space-3)}.gallery-tabs{display:flex;gap:6px;border-bottom:1px solid var(--color-border);padding-bottom:8px}.gallery-tab{padding:5px 14px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.gallery-tab:hover{color:var(--color-text-primary)}.gallery-tab.is-active{background:var(--color-accent-soft);color:var(--color-accent-text);border-color:var(--color-accent)}.gallery-privacy{margin:0;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.gallery-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.gallery-filters .input{width:auto;min-width:130px}.gallery-filters .analysis-label{margin:0}.gallery-search{flex:1 1 200px;min-width:160px}.gallery-list-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.gallery-show-td{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-3)}.gallery-card{display:flex;min-width:0;padding:0;overflow:hidden}.gallery-card-hit{display:flex;flex-direction:column;gap:var(--space-2);width:100%;padding:var(--space-3);border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.gallery-cover{width:100%;height:110px;border-radius:var(--radius-sm);display:block}.gallery-cover-bg{fill:var(--color-bg-tertiary)}.gallery-card-tags{display:flex;flex-wrap:wrap;gap:6px}.gallery-card-title{margin:0;font-size:var(--font-size-base);font-weight:600;overflow-wrap:anywhere}.gallery-card-summary{margin:0;font-size:var(--font-size-sm);color:var(--color-text-tertiary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.gallery-card-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto}.gallery-repro-locked{color:var(--color-success);border-color:var(--color-success)}.gallery-repro-drifted{color:var(--color-warning);border-color:var(--color-warning)}.gallery-detail{display:flex;flex-direction:column;gap:var(--space-2)}.gallery-detail .gallery-cover{height:140px}.gallery-detail-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px 16px;margin:0}.gallery-detail-meta dt{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.gallery-detail-meta dd{margin:0 0 4px;font-size:var(--font-size-sm);overflow-wrap:anywhere}.gallery-detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--space-3)}.gallery-share-form{display:flex;flex-direction:column;gap:var(--space-2)}.gallery-share-form .input{width:100%}.tool-content{gap:var(--space-5)}.tool-content .analysis-body{max-height:none;overflow:visible}.tool-content .share-section-title{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-1) 0 var(--space-3);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.16em}.tool-content .share-section-title:before{content:"";flex-shrink:0;width:3px;height:13px;border-radius:2px;background:var(--color-accent);opacity:.85}.tool-content .share-section-title:first-child{margin-top:0}.tool-content .analysis-row{align-items:center;gap:var(--space-2);margin:0;padding:var(--space-2);background:color-mix(in srgb,var(--color-bg-elevated) 60%,transparent);border:1px solid var(--color-border);border-radius:var(--radius-md)}.tool-content .analysis-row>.input,.tool-content .analysis-row>select,.tool-content .analysis-row>input{flex:1 1 12ch;min-width:9ch;max-width:46ch;height:34px;box-sizing:border-box}.tool-content .analysis-row>.btn{flex:0 0 auto;height:34px;box-sizing:border-box}.tool-content .input,.tool-content select,.tool-content textarea{min-height:34px;box-sizing:border-box}.tool-content .btn{min-height:34px}.tool-content .analysis-output{margin:0;background:var(--color-bg-elevated);color:var(--color-text-secondary);line-height:1.55}.tool-content .research-charts{gap:var(--space-3)}.tool-content .research-chart-card{background:var(--color-bg-elevated);box-shadow:var(--shadow-1)}.tool-content .sweep-table th,.tool-content .sweep-table td{padding:6px var(--space-2)}.tool-content .sweep-table tbody tr:hover{background:var(--color-bg-hover)}.tool-content .sweep-actions,.tool-content .analysis-actions{gap:var(--space-2);margin-bottom:0}.tool-content a:focus-visible,.tool-content button:focus-visible,.tool-content select:focus-visible,.tool-content textarea:focus-visible,.tool-content input:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.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-delete{display:none;align-items:center;justify-content:center;flex:none;width:16px;height:16px;margin-left:auto;padding:0;border:none;border-radius:50%;background:transparent;color:var(--color-text-tertiary);cursor:pointer}.block-node:hover .block-node-delete,.block-node.is-selected .block-node-delete{display:inline-flex}.block-node-delete:hover{color:#e5484d;background:#e5484d26}.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)}.be-switch-preview{position:absolute;inset:0;margin:auto;width:min(680px,calc(100% - 48px));height:min(430px,calc(100% - 64px));z-index:60;display:flex;flex-direction:column;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 12px 40px #00000059;overflow:hidden;animation:beSwitchIn .14s ease-out}@keyframes beSwitchIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.be-switch-preview-head{display:flex;align-items:baseline;gap:10px;padding:10px 14px;border-bottom:1px solid var(--color-border)}.be-switch-preview-title{font-weight:600;font-size:13px}.be-switch-preview-sub{font-size:11px;opacity:.7;text-transform:uppercase;letter-spacing:.4px}.be-switch-preview-close{margin-left:auto;background:none;border:none;cursor:pointer;font-size:13px;opacity:.6;line-height:1}.be-switch-editor{flex:1;min-height:0}.be-switch-preview-foot{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--color-border)}.be-switch-preview-note{flex:1;font-size:11px;opacity:.7}.be-switch-btn{border:1px solid var(--color-border);background:var(--color-bg-secondary);color:inherit;padding:5px 12px;border-radius:6px;font-size:12px;cursor:pointer}.be-switch-btn:hover{opacity:.9}.be-switch-btn-discard{border-color:#c83c3c99;color:#e05c5c}.be-switch-btn-apply{background:var(--color-accent);color:var(--color-accent-contrast);border-color:var(--color-accent)}.be-switch-undo{position:absolute;left:50%;bottom:22px;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:999px;box-shadow:0 6px 20px #00000040;font-size:12px}.be-switch-undo-text{opacity:.85}.be-switch-undo-btn{background:var(--color-accent);color:var(--color-accent-contrast);border:none;border-radius:999px;padding:4px 12px;font-size:12px;cursor:pointer}.be-switch-undo-x{background:none;border:none;cursor:pointer;opacity:.5;font-size:12px;line-height:1}.block-editor-right.is-panel-hidden,.block-workbench-left.is-panel-hidden{display:none}.block-workbench-left>.block-palette{flex:1;min-height:0;height:auto}.flow-legend{margin-top:auto;border-top:1px solid var(--color-border);padding:10px 12px;background:var(--color-bg-secondary);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.flow-legend-stats{display:flex;gap:var(--space-3);margin-bottom:8px}.flow-legend-stat{display:inline-flex;align-items:baseline;gap:4px}.flow-legend-stat-num{font-family:var(--font-mono);font-weight:700;font-size:var(--font-size-sm);color:var(--color-accent)}.flow-legend-title{margin-bottom:6px;font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--color-text-tertiary)}.flow-legend-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}.flow-legend-item{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flow-legend-dot{width:9px;height:9px;border-radius:2px;flex-shrink:0}.ai-panel{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:10px;min-height:0;padding:12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-secondary);overflow:hidden}.ai-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ai-panel-title{font-weight:700;font-size:var(--font-size-sm);color:var(--color-text-primary)}.ai-mode-pill{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:2px 8px;border-radius:999px;border:1px solid var(--color-border)}.ai-mode-pill.is-offline{color:var(--color-accent-text);border-color:var(--color-accent)}.ai-mode-pill.is-online{color:#f59e0b;border-color:#f59e0b}.ai-panel-policy{display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:8px;background:var(--color-bg-primary);font-size:var(--font-size-xs)}.ai-policy-row{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary)}.ai-policy-note{margin:0;color:var(--color-text-tertiary);font-size:10px;line-height:1.4}.ai-mode-seg{display:flex;padding:2px;gap:2px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-elevated)}.ai-mode-seg-btn{flex:1;padding:5px 0;border:none;border-radius:6px;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease}.ai-mode-seg-btn:hover{color:var(--color-text-primary)}.ai-mode-seg-btn.is-active{background:var(--color-accent-soft);color:var(--color-accent-text);box-shadow:inset 0 0 0 1px var(--color-accent)}.ai-service{border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-elevated);overflow:hidden}.ai-service-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;border:none;background:transparent;color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;text-align:left}.ai-service-toggle:hover{background:var(--color-bg-hover)}.ai-service-state{margin-left:auto;font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#ef4444}.ai-service-state.is-ready{color:#22c55e}.ai-service-caret{flex-shrink:0;color:var(--color-text-tertiary);transition:transform .18s ease}.ai-service-caret.is-open{transform:rotate(180deg)}.ai-service-form{display:flex;flex-direction:column;gap:8px;padding:8px;border-top:1px solid var(--color-border)}.ai-field{display:flex;flex-direction:column;gap:3px;font-size:10px;color:var(--color-text-secondary)}.ai-field .input{width:100%;font-size:var(--font-size-xs);font-family:var(--font-mono)}.ai-service-form .btn{align-self:flex-end}.ai-chat{flex:1;min-height:80px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:2px}.ai-chat-empty{color:var(--color-text-tertiary);font-size:var(--font-size-xs);margin:auto 0;text-align:center}.ai-msg{max-width:92%;padding:7px 10px;border-radius:10px;font-size:var(--font-size-xs);line-height:1.45;white-space:pre-wrap;word-break:break-word}.ai-msg-user{align-self:flex-end;background:var(--color-accent-soft);color:var(--color-text-primary);border-bottom-right-radius:3px}.ai-msg-assistant{align-self:flex-start;background:var(--color-bg-primary);border:1px solid var(--color-border);color:var(--color-text-secondary);border-bottom-left-radius:3px}.ai-msg-meta{margin-top:4px;font-family:var(--font-mono);font-size:9px;color:var(--color-text-tertiary)}.ai-msg-note{font-size:8px;color:var(--color-fg-muted, var(--color-text-tertiary));font-style:italic;opacity:.85}.ai-draft{display:flex;flex-direction:column;gap:6px}.ai-draft-label{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-tertiary)}.ai-draft-code{width:100%;resize:vertical;min-height:120px;font-family:var(--font-mono);font-size:11px;line-height:1.5;tab-size:4;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;padding:8px}.ai-draft-actions{display:flex;flex-wrap:wrap;gap:6px}.ai-advice{padding:8px 10px;border-radius:8px;border:1px solid rgba(239,68,68,.45);background:#ef444414}.ai-advice-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#ef4444;margin-bottom:4px}.ai-advice-text{margin:0;font-size:var(--font-size-xs);line-height:1.5;color:var(--color-text-secondary)}.ai-panel-input{display:flex;gap:6px;align-items:center}.ai-panel-input .input{flex:1;min-width:0}@keyframes pop-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes card-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}@keyframes menu-item-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}@keyframes route-stage-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-180% 0}to{background-position:180% 0}}@keyframes status-pulse{0%{box-shadow:0 0 color-mix(in srgb,currentColor 55%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes icon-pop{0%{transform:scale(.9)}60%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes toast-out{to{opacity:0;transform:translate(28px) scale(.96)}}@keyframes banner-out{to{opacity:0;transform:translateY(-10px)}}.anim-fade-up{animation:fade-up .42s var(--ease-spring) backwards}.anim-fade-down{animation:fade-down .42s var(--ease-spring) backwards}.anim-pop{animation:pop-in .3s var(--ease-spring) backwards}.anim-scale-in{animation:scale-in .3s var(--ease-spring) backwards}.anim-slide-in-right{animation:slide-in-right .36s var(--ease-spring) backwards}.anim-slide-in-left{animation:slide-in-left .36s var(--ease-spring) backwards}.route-stage{animation:route-stage-in .32s var(--ease-out) backwards}.card{animation:card-in .34s var(--ease-spring) backwards}.plugin-card{animation:card-in .3s var(--ease-spring) backwards}.menu-item{animation:menu-item-in .16s ease backwards}.sidebar{animation:slide-in-left .34s var(--ease-out) backwards}.right-panel{animation:slide-in-right .34s var(--ease-out) backwards}.status-dot,.perf-dot{animation:status-pulse 2.4s ease-out infinite}.status-dot-ok,.perf-dot{color:var(--color-success)}.status-dot-warn{color:var(--color-warning)}.status-dot-err{color:var(--color-error)}.welcome-eyebrow{animation:fade-up .5s var(--ease-spring) backwards;animation-delay:.04s}.welcome-title{animation:fade-up .5s var(--ease-spring) backwards;animation-delay:.1s}.welcome-subtitle{animation:fade-up .5s var(--ease-spring) backwards;animation-delay:.16s}.welcome-version{animation:fade-up .5s var(--ease-spring) backwards;animation-delay:.22s}.welcome-signal{animation:fade-up .5s var(--ease-spring) backwards;animation-delay:.28s}.welcome-enter{animation:fade-up .5s var(--ease-spring) backwards;animation-delay:.34s}.welcome-hardware{animation:card-in .5s var(--ease-spring) backwards;animation-delay:.4s}.toast.leaving{animation:toast-out .22s ease forwards;pointer-events:none}.banner.leaving{animation:banner-out .22s ease forwards;pointer-events:none}.menu-item,.tag{transition:background-color var(--transition-fast),color var(--transition-fast)}:focus-visible{transition:box-shadow var(--transition-fast)}@media(prefers-reduced-motion:reduce){.anim-fade-up,.anim-fade-down,.anim-pop,.anim-scale-in,.anim-slide-in-right,.anim-slide-in-left,.route-stage,.card,.plugin-card,.menu-item,.sidebar,.right-panel,.status-dot,.perf-dot,.welcome-eyebrow,.welcome-title,.welcome-subtitle,.welcome-version,.welcome-signal,.welcome-enter,.welcome-hardware{animation:none!important}.toast.leaving,.banner.leaving{animation:none!important;opacity:0}}.tool-topbar .figures-sheet-select{min-height:30px}.tool-topbar-extra .btn{white-space:nowrap}.figures-panel-item{transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.figures-panel-item:hover{border-color:var(--color-accent);box-shadow:0 1px 4px #00000014}.figures-panel-item:focus-within{border-color:var(--color-accent);outline:2px solid var(--color-accent-soft);outline-offset:1px}.figures-panel-actions .btn{padding:3px 8px;font-size:var(--font-size-xs)}.figures-preview{background:repeating-conic-gradient(var(--color-bg-tertiary) 0% 25%,color-mix(in srgb,var(--color-bg-tertiary) 55%,transparent) 0% 50%) 0 0 / 18px 18px}.figures-preview-svg{background:var(--color-bg-primary);border-radius:var(--radius-sm);box-shadow:0 1px 3px #0000001a}.figures-editor-grid{row-gap:var(--space-3)}.figures-color{width:100%;min-height:34px;cursor:pointer}.figures-field-hint{line-height:1.5;color:var(--color-text-secondary)}.figures-data{line-height:1.6}.figures-export .btn{min-height:30px}.gallery-card-hit{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.gallery-card:hover .gallery-card-hit{transform:translateY(-2px);box-shadow:0 6px 16px #0000001f}.gallery-card:focus-within .gallery-card-hit{outline:2px solid var(--color-accent);outline-offset:-2px;border-radius:var(--radius-md)}.gallery-card-title{line-height:1.35}.gallery-card-tags{margin-top:0}.gallery-filters{row-gap:8px}.gallery-filters .input,.gallery-filters .analysis-label{margin-bottom:0;align-self:center}@media(max-width:620px){.gallery-filters{flex-direction:column;align-items:stretch}.gallery-filters .input,.gallery-search{width:100%;min-width:0;flex:none}.gallery-tabs{overflow-x:auto}}.figures-side .empty-state{padding:var(--space-3);text-align:center}
