/* Lyfilm Boom Desk · 原型样式（建立在 Shy-玻璃 token 之上，前缀 bd-） */
@property --bd-a { syntax: '<angle>'; initial-value: 0deg; inherits: false; }

:root, [data-theme="light"] {
  --bd-bg: #eceff3;
  --bd-dot: rgba(20, 25, 35, .15);
  --bd-node: #ffffff;
  --bd-node-2: #f3f5f8;
  --bd-line: rgba(20, 25, 35, .09);
  --bd-surface: rgba(255, 255, 255, .80);
  --bd-surface-2: rgba(255, 255, 255, .97);
  --bd-hover: rgba(20, 25, 35, .05);
  --bd-active: rgba(20, 25, 35, .08);
  --bd-field: rgba(20, 25, 35, .045);
  --bd-seg-on: #ffffff;
  --bd-edge: rgba(20, 25, 35, .26);
  --bd-text: var(--ink);
  --bd-text-2: var(--ink-2);
  --bd-text-3: #606a78;
  --bd-accent: var(--canvas-select);
  --bd-good: var(--status-good);
  --bd-bad: var(--status-bad);
  --bd-warn: var(--status-warn);
  --bd-primary: var(--ink);
  --bd-on-primary: var(--ink-inverse);
  --bd-agent-bg: rgba(255, 255, 255, .76);
  --bd-agent-line: rgba(255, 255, 255, .85);
  --bd-composer: rgba(255, 255, 255, .78);
  --bd-shadow: 0 1px 2px rgba(20, 25, 35, .05), 0 10px 28px -14px rgba(20, 25, 35, .28);
  --bd-shadow-pop: 0 2px 6px rgba(20, 25, 35, .06), 0 24px 56px -18px rgba(18, 26, 49, .34);
  --bd-r-node: 16px;
  --bd-r-panel: 22px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bd-bg: #0b0e14;
    --bd-dot: rgba(255, 255, 255, .09);
    --bd-node: #151a23;
    --bd-node-2: #1a1f29;
    --bd-line: rgba(255, 255, 255, .075);
    --bd-surface: rgba(21, 26, 35, .80);
    --bd-surface-2: rgba(25, 30, 40, .97);
    --bd-hover: rgba(255, 255, 255, .06);
    --bd-active: rgba(255, 255, 255, .1);
    --bd-field: rgba(255, 255, 255, .055);
    --bd-seg-on: rgba(255, 255, 255, .13);
    --bd-edge: rgba(255, 255, 255, .22);
    --bd-text-3: #929baa;
    --bd-agent-bg: rgba(15, 19, 28, .74);
    --bd-agent-line: rgba(255, 255, 255, .13);
    --bd-composer: rgba(255, 255, 255, .055);
    --bd-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 30px -14px rgba(0, 0, 0, .7);
    --bd-shadow-pop: 0 2px 8px rgba(0, 0, 0, .35), 0 28px 60px -18px rgba(0, 0, 0, .8);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bd-bg: #0b0e14;
  --bd-dot: rgba(255, 255, 255, .09);
  --bd-node: #151a23;
  --bd-node-2: #1a1f29;
  --bd-line: rgba(255, 255, 255, .075);
  --bd-surface: rgba(21, 26, 35, .80);
  --bd-surface-2: rgba(25, 30, 40, .97);
  --bd-hover: rgba(255, 255, 255, .06);
  --bd-active: rgba(255, 255, 255, .1);
  --bd-field: rgba(255, 255, 255, .055);
  --bd-seg-on: rgba(255, 255, 255, .13);
  --bd-edge: rgba(255, 255, 255, .22);
  --bd-text-3: #929baa;
  --bd-agent-bg: rgba(15, 19, 28, .74);
  --bd-agent-line: rgba(255, 255, 255, .13);
  --bd-composer: rgba(255, 255, 255, .055);
  --bd-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 30px -14px rgba(0, 0, 0, .7);
  --bd-shadow-pop: 0 2px 8px rgba(0, 0, 0, .35), 0 28px 60px -18px rgba(0, 0, 0, .8);
  color-scheme: dark;
}

body { background: var(--bd-bg); }
.bd-app, .bd-home, .bd-pop, .bd-tip, .bd-toasts, .bd-lb { font-family: var(--font-sans); -webkit-font-smoothing: antialiased; }
/* 原型自己的按钮重置用 :where() 降到零特异性，设计系统组件（sg-*）自己的颜色和字号不会被覆盖 */
:where(.bd-app, .bd-home, .bd-pop, .bd-lb, .bd-toasts) button { font: inherit; color: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
:where(.bd-app, .bd-pop, .bd-home) button:disabled { cursor: not-allowed; }
/* 键盘焦点：设计系统双环（内 focus-halo、外 focus-ring）；文本输入点进去不画框，由所在面板的描边提示 */
.bd-app :focus-visible, .bd-home :focus-visible, .bd-pop :focus-visible, .bd-lb :focus-visible { outline: none; box-shadow: 0 0 0 2px var(--focus-halo), 0 0 0 4px var(--focus-ring); }
.bd-prompt:focus-visible, .bd-ntext.is-edit:focus-visible, .bd-nrename:focus-visible, .bd-app textarea:focus-visible, .bd-home textarea:focus-visible, .bd-app input:focus-visible { box-shadow: none; outline: none; }
.bd-ic { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.bd-nplay .bd-ic, .bd-ref-play .bd-ic, .bd-asset-b .bd-ic, .bd-naudio-ic .bd-ic, .bd-go-btn.is-stop .bd-ic, .bd-voice-play .bd-ic, .bd-lb-ctl .bd-ic { fill: currentColor; }
.bd-num { font-variant-numeric: tabular-nums; }
.bd-sp, .bd-bar-sp { flex: 1; }

/* ---------- 画布 ---------- */
.bd-app { position: fixed; inset: 0; overflow: hidden; background: var(--bd-bg); color: var(--bd-text); font-size: 14px; }
.bd-stage { position: absolute; inset: 0; overflow: hidden; touch-action: none; user-select: none; -webkit-user-select: none;
  background-image: radial-gradient(circle, var(--bd-dot) 1px, transparent 1.3px); background-size: var(--dot) var(--dot); }
.bd-stage.is-space, .is-hand .bd-stage { cursor: grab; }
.bd-stage.is-panning { cursor: grabbing; }
.is-picking .bd-stage { cursor: copy; }
.bd-world { position: absolute; left: 0; top: 0; transform-origin: 0 0; }
.bd-edges { position: absolute; left: 0; top: 0; overflow: visible; }
.bd-edge-line { fill: none; stroke: var(--bd-edge); stroke-width: 1.6; vector-effect: non-scaling-stroke; transition: stroke var(--duration-quick); }
.bd-edge-hit { fill: none; stroke: transparent; stroke-width: 16; vector-effect: non-scaling-stroke; pointer-events: stroke; cursor: pointer; }
.bd-edge:hover .bd-edge-line, .bd-edge.is-on .bd-edge-line { stroke: var(--bd-text-2); }
.bd-edge.is-sel .bd-edge-line { stroke: var(--bd-accent); stroke-width: 2.2; }
.bd-edge.is-flow .bd-edge-line { stroke: var(--bd-accent); stroke-dasharray: 6 6; animation: bd-flow .9s linear infinite; }
.bd-edge.is-off .bd-edge-line { stroke-dasharray: 2 5; opacity: .55; }
.bd-wire { fill: none; stroke: var(--bd-accent); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-dasharray: 6 5; animation: bd-flow .6s linear infinite; }
@keyframes bd-flow { to { stroke-dashoffset: -12; } }

.bd-node { position: absolute; }
.bd-nlabel { position: absolute; left: 2px; right: 0; bottom: 100%; margin-bottom: .6em; display: flex; align-items: center; gap: .45em; color: var(--bd-text-2); white-space: nowrap; line-height: 1.2; }
.bd-nlabel-t { overflow: hidden; text-overflow: ellipsis; font-weight: 500; }
.bd-nlabel-s { margin-left: auto; color: var(--bd-accent); font-weight: 500; }
.bd-nlabel-s.is-bad { color: var(--bd-bad); }
.bd-nlabel-s.is-warn { color: var(--bd-warn); }
.bd-nrename { font: inherit; color: var(--bd-text); background: var(--bd-node); border: 1px solid var(--bd-accent); border-radius: 6px; padding: 0 4px; min-width: 0; width: 70%; outline: none; }
.bd-ncard { position: relative; width: 100%; height: 100%; border-radius: var(--bd-r-node); background: var(--bd-node); border: 1px solid var(--bd-line); overflow: hidden; box-shadow: var(--bd-shadow); transition: box-shadow var(--duration-quick), border-color var(--duration-quick); }
.bd-node .sg-beam { border-radius: var(--bd-r-node); }
.bd-node.is-sel .bd-ncard { border-color: var(--bd-accent); box-shadow: 0 0 0 1px var(--bd-accent), 0 0 0 6px color-mix(in srgb, var(--bd-accent) 16%, transparent), var(--bd-shadow); }
.bd-node.is-hot .bd-ncard { border-color: var(--bd-accent); box-shadow: 0 0 0 2px var(--bd-accent), 0 0 30px color-mix(in srgb, var(--bd-accent) 40%, transparent); }
.bd-node.is-dim { opacity: .32; }
.bd-nimg { display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; -webkit-user-drag: none; }
.bd-nempty { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: var(--bd-text-3); background: var(--bd-node-2); font-size: 12.5px; }
.bd-nplay { position: absolute; left: 50%; top: 50%; width: 42px; height: 42px; margin: -21px 0 0 -21px; border-radius: 50%; display: grid; place-items: center; background: rgba(8, 10, 16, .38); color: #fff; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); opacity: 0; transition: opacity var(--duration-quick); pointer-events: none; }
.bd-node:hover .bd-nplay { opacity: 1; }
.bd-ndur { position: absolute; left: 10px; bottom: 10px; padding: 2px 7px; border-radius: 7px; background: rgba(8, 10, 16, .5); color: #fff; font: 500 11px/1.4 var(--font-mono); }
.bd-nver { position: absolute; right: 8px; bottom: 8px; display: flex; align-items: center; gap: 2px; padding: 2px; border-radius: 9px; background: rgba(8, 10, 16, .55); color: #fff; font: 500 11px var(--font-mono); opacity: 0; transition: opacity var(--duration-quick); }
.bd-node:hover .bd-nver, .bd-node.is-sel .bd-nver { opacity: 1; }
.bd-nver button { width: 22px; height: 22px; border: 0; border-radius: 7px; background: transparent; display: grid; place-items: center; color: #fff !important; }
.bd-nver button:hover { background: rgba(255, 255, 255, .16); }
.bd-ntext { position: absolute; inset: 0; padding: 14px 16px; font-size: 13.5px; line-height: 1.7; white-space: pre-wrap; word-break: break-word; overflow: hidden; color: var(--bd-text);
  -webkit-mask-image: linear-gradient(#000 76%, transparent); mask-image: linear-gradient(#000 76%, transparent); }
.bd-ntext.is-empty { display: grid; place-items: center; color: var(--bd-text-3); -webkit-mask-image: none; mask-image: none; }
.bd-ntext.is-edit { overflow: auto; outline: none; cursor: text; -webkit-mask-image: none; mask-image: none; user-select: text; -webkit-user-select: text; }
.bd-naudio { position: absolute; inset: 0; display: flex; align-items: center; gap: 12px; padding: 0 16px; }
.bd-naudio-ic { width: 34px; height: 34px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--bd-field); color: var(--bd-text); }
.bd-wave { flex: 1; height: 42px; display: flex; align-items: center; gap: 2px; }
.bd-wave i { flex: 1; border-radius: 2px; background: var(--bd-text-2); opacity: .5; }
.bd-naudio.is-empty .bd-wave i { opacity: .16; }
.bd-naudio-d { font: 500 11px var(--font-mono); color: var(--bd-text-2); }
.bd-nrun { position: absolute; inset: 0; display: grid; place-items: center; background: color-mix(in srgb, var(--bd-node-2) 62%, transparent); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); overflow: hidden; }
.bd-nrun::before { content: ''; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 35%, color-mix(in srgb, var(--bd-accent) 14%, transparent) 50%, transparent 65%); transform: translateX(-100%); animation: bd-shimmer 1.8s var(--ease-in-out) infinite; }
@keyframes bd-shimmer { to { transform: translateX(100%); } }
.bd-ring { width: 46px; height: 46px; border-radius: 50%; background: conic-gradient(var(--bd-accent) calc(var(--p) * 1turn), color-mix(in srgb, var(--bd-text) 12%, transparent) 0);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2.5px)); mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2.5px)); grid-area: 1 / 1; }
.bd-nrun-t { grid-area: 1 / 1; font: 600 11px var(--font-mono); color: var(--bd-text); }
.bd-nerr { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; background: color-mix(in srgb, var(--bd-node-2) 88%, transparent); color: var(--bd-bad); text-align: center; padding: 10px; }
.bd-nerr-t { font-size: 13px; font-weight: 600; color: var(--bd-text); }
.bd-nerr-r { font-size: 12px; color: var(--bd-text-3); margin-bottom: 4px; }
.bd-btn-s { display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 11px; border: 0; border-radius: 9px; background: var(--bd-primary); color: var(--bd-on-primary) !important; font-size: 12.5px; font-weight: 600; }

/* 连接点：每侧一个，浮在卡片外侧（参照 TapNow）。命中区在卡片外，+ 平时缩在卡片背后，悬停 / 选中 / 拉线时弹出；碰到后吸附跟手（脚本） */
.bd-hdl { position: absolute; top: 50%; z-index: 3; width: 0; height: 0; --tuck: calc(12px * var(--ps)); }
.bd-hdl.is-in { left: 0; }
.bd-hdl.is-out { right: 0; --tuck: calc(-12px * var(--ps)); }
.bd-hdl-hit { position: absolute; top: calc(-24px * var(--ps)); width: calc(48px * var(--ps)); height: calc(48px * var(--ps)); padding: 0; border: 0; border-radius: 50%; background: transparent; display: grid; place-items: center; cursor: crosshair; pointer-events: none; }
/* 只有悬停、选中或拉线中的节点，命中区才接收指针：相邻节点的命中区挨得很近时，不会挡住对方的 + */
.bd-node:hover .bd-hdl-hit, .bd-node.is-sel .bd-hdl-hit, .bd-node.is-wiring .bd-hdl-hit, .bd-hdl.is-mag .bd-hdl-hit { pointer-events: auto; }
.bd-hdl.is-in .bd-hdl-hit { right: calc(2px * var(--ps)); }
.bd-hdl.is-out .bd-hdl-hit { left: calc(2px * var(--ps)); }
.bd-hdl-mag { display: grid; place-items: center; padding: calc(6px * var(--ps)); border-radius: 50%; will-change: transform; }
.bd-hdl-plus { width: calc(22px * var(--ps)); height: calc(22px * var(--ps)); box-sizing: border-box; display: grid; place-items: center; border-radius: 50%;
  border: calc(1.5px * var(--ps)) solid color-mix(in srgb, var(--bd-text) 40%, transparent); background: var(--bd-node); color: var(--bd-text-2);
  opacity: 0; transform: translateX(var(--tuck));
  transition: transform var(--duration-base) var(--ease-spring-bouncy), opacity var(--duration-quick) var(--ease-liquid), border-color var(--duration-quick), color var(--duration-quick), box-shadow var(--duration-quick); }
.bd-hdl-plus .bd-ic { width: calc(12px * var(--ps)); height: calc(12px * var(--ps)); stroke-width: 2; }
.bd-node:hover .bd-hdl-plus, .bd-node.is-sel .bd-hdl-plus, .bd-node.is-wiring .bd-hdl-plus, .bd-hdl.is-mag .bd-hdl-plus { opacity: 1; transform: none; }
.bd-hdl.is-mag .bd-hdl-plus, .bd-hdl-hit:hover .bd-hdl-plus { border-color: var(--bd-text); color: var(--bd-text); box-shadow: var(--bd-shadow); }
.bd-node.is-wiring .bd-hdl-plus { border-color: var(--bd-accent); color: var(--bd-accent); box-shadow: 0 0 0 calc(4px * var(--ps)) color-mix(in srgb, var(--bd-accent) 22%, transparent); }
.is-wiring .bd-node:not(.is-wiring):not(.is-sel) .bd-hdl-plus { opacity: 0; }
/* 多选时只给指针下的节点显示连接点，避免一排 + 挤在一起 */
.is-multi .bd-node.is-sel:not(:hover) .bd-hdl-plus { opacity: 0; transform: translateX(var(--tuck)); }
.is-multi .bd-node.is-sel:not(:hover) .bd-hdl-hit { pointer-events: none; }
/* 调整大小：选中单个节点时四角出现手柄，双击手柄恢复默认大小 */
.bd-rsz { position: absolute; z-index: 4; width: calc(10px * var(--ps)); height: calc(10px * var(--ps)); box-sizing: border-box; transform: translate(-50%, -50%);
  border-radius: calc(3px * var(--ps)); background: var(--bd-node); border: calc(1.5px * var(--ps)) solid var(--bd-accent); box-shadow: 0 1px 3px rgba(0, 0, 0, .25); }
.bd-rsz::before { content: ''; position: absolute; inset: calc(-7px * var(--ps)); }
.bd-rsz.is-nw { left: 0; top: 0; cursor: nwse-resize; }
.bd-rsz.is-ne { left: 100%; top: 0; cursor: nesw-resize; }
.bd-rsz.is-sw { left: 0; top: 100%; cursor: nesw-resize; }
.bd-rsz.is-se { left: 100%; top: 100%; cursor: nwse-resize; }
.bd-size-tag { position: absolute; transform: translateX(-100%); padding: 3px 8px; border-radius: 8px; background: var(--ink); color: var(--ink-inverse); font: 500 11px var(--font-mono); pointer-events: none; white-space: nowrap; }

/* ---------- 浮层：通用 ---------- */
.bd-ui { z-index: 10; }
.bd-iconbtn { width: 36px; height: 36px; flex: none; display: grid; place-items: center; padding: 0; border-radius: 12px; border: 1px solid var(--bd-line); background: var(--bd-surface); color: var(--bd-text-2) !important; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); transition: background var(--duration-quick); }
.bd-iconbtn:hover:not(:disabled) { background: var(--bd-surface-2); color: var(--bd-text) !important; }
.bd-iconbtn.is-s { width: 30px; height: 30px; border: 0; background: transparent; border-radius: 9px; backdrop-filter: none; -webkit-backdrop-filter: none; }
.bd-iconbtn.is-s:hover:not(:disabled) { background: var(--bd-hover); }
.bd-iconbtn:disabled { opacity: .35; }
.bd-top { position: absolute; top: 14px; left: 14px; display: flex; align-items: center; gap: 10px; padding: 5px 14px 5px 5px; border-radius: 16px; background: var(--bd-surface); border: 1px solid var(--bd-line); backdrop-filter: blur(24px) saturate(150%); -webkit-backdrop-filter: blur(24px) saturate(150%); }
.bd-top-home { width: 36px; height: 36px; padding: 0; display: grid; place-items: center; border: 0; border-radius: 11px; background: transparent; }
.bd-top-home:hover { background: var(--bd-hover); }
.bd-top-proj { display: flex; align-items: center; gap: 10px; min-width: 0; }
.bd-top-name { font-weight: 500; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 260px; }
.bd-top-save { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--bd-text-3); white-space: nowrap; }
.bd-top-save i { width: 6px; height: 6px; border-radius: 50%; background: var(--bd-good); }
.bd-top-r { position: absolute; top: 14px; right: 14px; display: flex; align-items: center; gap: 8px; }
.bd-credits { height: 36px; display: inline-flex; align-items: center; gap: 7px; padding: 0 13px; border-radius: 12px; border: 1px solid var(--bd-line); background: var(--bd-surface); color: var(--bd-text) !important; font-weight: 600; font-size: 13.5px; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.bd-credits .bd-ic { color: var(--bd-text-2); }
button.bd-credits:hover { background: var(--bd-surface-2); }
.bd-avatar { width: 36px; height: 36px; flex: none; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: linear-gradient(135deg, var(--pulse-indigo), var(--pulse-magenta)); color: #fff !important; font-weight: 600; font-size: 14px; }
/* 设计系统 ToolDock / CanvasControls 的摆放容器 */
.bd-docks { position: absolute; left: 14px; top: 76px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.bd-viewctl { position: absolute; left: 14px; bottom: 14px; display: flex; gap: 8px; }

.bd-pop { position: fixed; z-index: 1000; padding: 6px; border-radius: 18px; background: var(--bd-surface-2); border: 1px solid var(--bd-line); box-shadow: var(--bd-shadow-pop); color: var(--bd-text);
  backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); opacity: 0; transform: translateY(4px) scale(.985); transition: opacity var(--duration-quick), transform var(--duration-base) var(--ease-liquid); font-size: 14px; }
.bd-pop.is-in { opacity: 1; transform: none; }
.bd-menu { display: flex; flex-direction: column; gap: 1px; }
.bd-menu-h { padding: 8px 10px 4px; font-size: 11.5px; color: var(--bd-text-3); }
.bd-menu-sep { height: 1px; margin: 4px 8px; background: var(--bd-line); }
.bd-mi { width: 100%; display: flex; align-items: center; gap: 10px; min-height: 38px; padding: 4px 10px; border: 0; border-radius: 11px; background: transparent; text-align: left; font-size: 13.5px; }
.bd-mi:hover:not(:disabled), .bd-mi.is-on { background: var(--bd-hover); }
.bd-mi.is-on { background: var(--bd-active); }
.bd-mi:disabled { opacity: .38; }
.bd-mi-ic { width: 28px; flex: none; display: grid; place-items: center; color: var(--bd-text-2); }
.bd-mi-ic img { width: 28px; height: 28px; border-radius: 7px; object-fit: cover; }
.bd-mi-t { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bd-mi-h { color: var(--bd-text-3); font: 500 11px var(--font-mono); }
.bd-tile { width: 30px; height: 30px; flex: none; display: grid; place-items: center; border-radius: 9px; background: var(--bd-field); color: var(--bd-text); }
.bd-addmenu .bd-mi { min-height: 42px; }
.bd-addpos { position: absolute; width: 208px; padding: 6px; border-radius: 18px; background: var(--bd-surface-2); border: 1px solid var(--bd-line); box-shadow: var(--bd-shadow-pop); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); animation: bd-pop-in var(--duration-base) var(--ease-liquid); }
@keyframes bd-pop-in { from { opacity: 0; transform: translateY(4px) scale(.98); } }
.bd-tip { position: fixed; z-index: 2000; max-width: 260px; padding: 6px 9px; border-radius: 8px; background: var(--ink); color: var(--ink-inverse); font-size: 12px; line-height: 1.45; pointer-events: none; opacity: 0; transition: opacity 120ms; }
.bd-tip.is-in { opacity: 1; }
.bd-toasts { position: fixed; left: 50%; top: 70px; transform: translateX(-50%); z-index: 1500; display: flex; flex-direction: column; align-items: center; gap: 8px; pointer-events: none; }
.bd-toast { pointer-events: auto; display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 6px 16px; border-radius: 14px; background: var(--ink); color: var(--ink-inverse); font-size: 13px; box-shadow: var(--bd-shadow-pop); animation: bd-toast-in var(--duration-smooth) var(--ease-spring-soft); white-space: nowrap; }
.bd-toast:has(.bd-toast-act) { padding-right: 6px; }
.bd-toast.is-bad .bd-ic { color: var(--on-nebula-bad); }
.bd-toast-act { height: 28px; padding: 0 11px; border: 0; border-radius: 9px; background: color-mix(in srgb, var(--ink-inverse) 16%, transparent); font-weight: 600; }
@keyframes bd-toast-in { from { opacity: 0; transform: translateY(-8px) scale(.97); } }
.bd-link { display: inline-flex; align-items: center; gap: 4px; padding: 4px 0; border: 0; background: none; color: var(--bd-accent) !important; font-size: 13px; font-weight: 500; }
.bd-link:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 节点工具条 / 多选 / 选取：工具条与批量条挂载设计系统 NodeToolbar、BulkBar ---------- */
.bd-nodebar { z-index: 22; }
.bd-bulk-pos { position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%); max-width: calc(100% - 32px); z-index: 22; }
.bd-pickbar { position: absolute; top: 72px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; padding: 6px 6px 6px 16px; border-radius: 999px; background: var(--bd-accent); color: #fff; font-size: 13px; font-weight: 500; box-shadow: var(--bd-shadow-pop); white-space: nowrap; }
.bd-pickbar button { height: 28px; padding: 0 12px; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .22); color: #fff !important; font-weight: 600; font-size: 12.5px; }
.bd-edge-x { position: absolute; width: 24px; height: 24px; margin: -12px 0 0 -12px; display: grid; place-items: center; padding: 0; border-radius: 50%; border: 1px solid var(--bd-line); background: var(--bd-surface-2); color: var(--bd-text-2) !important; box-shadow: var(--bd-shadow); }
.bd-edge-x:hover { color: var(--bd-bad) !important; }
.bd-marquee { position: absolute; border: 1px solid var(--bd-accent); border-radius: 4px; background: color-mix(in srgb, var(--bd-accent) 10%, transparent); pointer-events: none; }
.bd-empty { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; gap: 14px; color: var(--bd-text-3); pointer-events: none; text-align: center; }
.bd-empty-add { pointer-events: auto; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 18px; border: 1px solid var(--bd-line); background: var(--bd-surface); color: var(--bd-text) !important; box-shadow: var(--bd-shadow); transition: transform var(--duration-base) var(--ease-spring-bouncy); }
.bd-empty-add:hover { transform: scale(1.06); }
.bd-empty-t { font-size: 13.5px; }

/* ---------- 生成面板 ---------- */
.bd-panel-pos { position: absolute; z-index: 20; animation: bd-pop-in var(--duration-base) var(--ease-liquid); }
.bd-panel:focus-within { border-color: color-mix(in srgb, var(--bd-text) 24%, var(--bd-line)); }
.bd-panel { display: flex; flex-direction: column; gap: 10px; padding: 12px; border-radius: var(--bd-r-panel); background: var(--bd-surface); border: 1px solid var(--bd-line); box-shadow: var(--bd-shadow-pop);
  backdrop-filter: blur(28px) saturate(160%); -webkit-backdrop-filter: blur(28px) saturate(160%); }
.bd-refs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.bd-ref { position: relative; width: 50px; height: 50px; flex: none; }
.bd-ref-body { width: 100%; height: 100%; padding: 0; overflow: hidden; border-radius: 12px; border: 1px solid var(--bd-line); background: var(--bd-node-2); }
.bd-ref-body img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bd-ref-ph { width: 100%; height: 100%; display: grid; place-items: center; color: var(--bd-text-3); }
.bd-ref-play { position: absolute; right: 4px; top: 4px; width: 16px; height: 16px; display: grid; place-items: center; border-radius: 50%; background: rgba(8, 10, 16, .55); color: #fff; }
.bd-ref-badge { position: absolute; left: 4px; bottom: 4px; height: 16px; padding: 0 5px; border-radius: 6px; background: rgba(8, 10, 16, .6); color: #fff; font-size: 10px; font-weight: 600; line-height: 16px; pointer-events: none; }
.bd-ref-x { position: absolute; right: -6px; top: -6px; width: 18px; height: 18px; display: grid; place-items: center; padding: 0; border-radius: 50%; border: 1px solid var(--bd-line); background: var(--bd-surface-2); color: var(--bd-text-2) !important; opacity: 0; transition: opacity var(--duration-quick); }
.bd-ref:hover .bd-ref-x, .bd-ref:focus-within .bd-ref-x { opacity: 1; }
.bd-ref.is-dim { opacity: .42; }
.bd-ref-add { width: 50px; height: 50px; flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 0; border-radius: 12px; border: 1.5px dashed color-mix(in srgb, var(--bd-text) 22%, transparent); background: transparent; color: var(--bd-text-2) !important; font-size: 10.5px; transition: border-color var(--duration-quick), color var(--duration-quick); }
.bd-ref-add:hover { border-color: var(--bd-accent); color: var(--bd-accent) !important; }
.bd-swap { width: 28px; height: 28px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: var(--bd-field); color: var(--bd-text-2) !important; }
.bd-swap:hover:not(:disabled) { background: var(--bd-active); color: var(--bd-text) !important; }
.bd-swap:disabled { opacity: .35; }
.bd-refs-n { font: 500 11px var(--font-mono); color: var(--bd-text-3); }
.bd-tchip { display: inline-flex; align-items: center; gap: 6px; height: 30px; max-width: 220px; padding: 0 5px 0 10px; border-radius: 10px; background: var(--bd-field); font-size: 12.5px; color: var(--bd-text); }
.bd-tchip .bd-ic { color: var(--bd-text-2); }
.bd-tchip-l { font-weight: 600; white-space: nowrap; }
.bd-tchip-t { color: var(--bd-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bd-tchip-x { width: 20px; height: 20px; flex: none; display: grid; place-items: center; padding: 0; border: 0; border-radius: 6px; background: transparent; color: var(--bd-text-3) !important; }
.bd-tchip-x:hover { background: var(--bd-hover); color: var(--bd-text) !important; }
.bd-prompt-wrap { position: relative; }
.bd-prompt { min-height: 46px; max-height: 136px; overflow-y: auto; padding: 2px 4px; font-size: 14px; line-height: 1.65; color: var(--bd-text); white-space: pre-wrap; word-break: break-word; outline: none; cursor: text; user-select: text; -webkit-user-select: text; }
.bd-prompt:empty::before { content: attr(data-ph); color: var(--bd-text-3); pointer-events: none; }
.bd-mention { display: inline-block; padding: 0 6px; margin: 0 1px; border-radius: 6px; background: color-mix(in srgb, var(--bd-accent) 15%, transparent); color: var(--bd-accent); font-weight: 600; font-size: 13px; line-height: 1.55; white-space: nowrap; }
.bd-mention.is-broken { background: var(--bd-field); color: var(--bd-text-3); text-decoration: line-through; }
.bd-mention-menu { width: 220px; }
.bd-bar { display: flex; align-items: center; gap: 4px; min-height: 40px; min-width: 0; }
.bd-bar > .bd-chip { flex: 0 1 auto; min-width: 0; }
.bd-chip-model > span:not(.bd-brand) { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.bd-bar-note { font-size: 12px; color: var(--bd-text-3); padding-left: 4px; }
.bd-chip { height: 34px; max-width: 270px; display: inline-flex; align-items: center; gap: 7px; padding: 0 10px; border: 0; border-radius: 11px; background: transparent; color: var(--bd-text) !important; font-size: 13px; font-weight: 500; white-space: nowrap; transition: background var(--duration-quick); }
.bd-chip:hover, .bd-chip.is-open { background: var(--bd-hover); }
.bd-chip.is-open { background: var(--bd-active); }
.bd-chip-model { padding-left: 6px; }
.bd-chip-sum { overflow: hidden; text-overflow: ellipsis; color: var(--bd-text-2); }
.bd-chip-snd, .bd-chev { color: var(--bd-text-3); }
.bd-chip-n { font: 500 12.5px var(--font-mono) !important; color: var(--bd-text-2) !important; }
.bd-chip.is-ghost { color: var(--bd-text-2) !important; }
.bd-go { display: flex; align-items: center; gap: 2px; height: 38px; padding: 0 3px 0 12px; border-radius: 999px; background: var(--bd-field); flex: none; }
.bd-go-cost { display: inline-flex; align-items: center; gap: 4px; padding-right: 6px; font-size: 13.5px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--bd-text); white-space: nowrap; }
.bd-go-cost .bd-ic { width: 13px; height: 13px; color: var(--bd-text-2); }
.bd-go-cost:empty { padding-right: 0; }
.bd-approx { color: var(--bd-text-3); font-weight: 500; }
.bd-go-pct { font-family: var(--font-mono); font-size: 12px; color: var(--bd-accent); }
.bd-go.is-short .bd-go-cost, .bd-go.is-short .bd-go-cost .bd-ic { color: var(--bd-bad); }
.bd-go-btn { position: relative; width: 32px; height: 32px; flex: none; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: var(--bd-primary); color: var(--bd-on-primary) !important; transition: transform var(--duration-base) var(--ease-spring-bouncy), opacity var(--duration-quick); }
.bd-go-btn .bd-ic { stroke-width: 2; }
.bd-go-btn:hover:not(:disabled) { transform: scale(1.07); }
.bd-go-btn:disabled { opacity: .3; }
.bd-go-btn.is-stop { background: var(--bd-surface-2); color: var(--bd-text) !important; }
.bd-go-btn.is-busy { background: var(--bd-surface-2); cursor: default; }
.bd-go-btn.is-busy::after { content: ''; position: absolute; inset: -1px; border-radius: 50%; background: conic-gradient(var(--bd-accent) calc(var(--p, 0) * 1turn), transparent 0); -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2.5px), #000 calc(100% - 2px)); mask: radial-gradient(farthest-side, transparent calc(100% - 2.5px), #000 calc(100% - 2px)); }
.bd-go-cost.is-muted, .bd-nlabel-s.is-muted { color: var(--bd-text-3); font-weight: 500; }

/* 模型菜单 */
.bd-models { max-height: min(440px, 62vh); overflow-y: auto; }
.bd-model { width: 100%; display: flex; align-items: center; gap: 12px; padding: 8px 10px; border: 0; border-radius: 13px; background: transparent; text-align: left; }
.bd-model:hover:not(:disabled) { background: var(--bd-hover); }
.bd-model.is-on { background: var(--bd-active); }
.bd-model:disabled { opacity: .45; }
.bd-model-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bd-model-n { font-size: 14px; font-weight: 500; color: var(--bd-text); }
.bd-model-l { font-size: 12px; color: var(--bd-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bd-model-l.is-warn { color: var(--bd-warn); }
.bd-model-e { font-size: 11.5px; color: var(--bd-text-3); white-space: nowrap; }
.bd-model-ck { color: var(--bd-accent); }
.bd-brand { flex: none; display: inline-grid; place-items: center; border-radius: 29%; background: color-mix(in srgb, var(--bd-brand-c) 13%, var(--bd-node)); color: var(--bd-brand-c); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bd-brand-c) 18%, transparent); }
.bd-brand svg { fill: currentColor; }
.bd-brand-mono { font-family: var(--font-display); font-weight: 700; line-height: 1; color: var(--bd-text); }
:root[data-theme="dark"] .bd-brand { background: color-mix(in srgb, var(--bd-brand-c) 20%, var(--bd-node)); color: color-mix(in srgb, var(--bd-brand-c) 72%, #fff); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .bd-brand { background: color-mix(in srgb, var(--bd-brand-c) 20%, var(--bd-node)); color: color-mix(in srgb, var(--bd-brand-c) 72%, #fff); } }
.bd-brand[data-brand="openai"], .bd-brand[data-brand="vidu"], .bd-brand[data-brand="suno"] { --bd-brand-c: #8a919c; }

/* 参数弹层 */
.bd-params { display: flex; flex-direction: column; gap: 14px; padding: 10px 8px 8px; }
.bd-param-l { margin: 0 2px 7px; font-size: 12px; color: var(--bd-text-2); }
.bd-param.is-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.bd-param.is-row .bd-param-l { margin: 0 2px; }
.bd-seg { display: flex; gap: 2px; padding: 3px; border-radius: 12px; background: var(--bd-field); }
.bd-seg-i { flex: 1; height: 32px; padding: 0 8px; border: 0; border-radius: 9px; background: transparent; color: var(--bd-text-2) !important; font-size: 13px; font-weight: 500; white-space: nowrap; transition: background var(--duration-quick), color var(--duration-quick); }
.bd-seg-i:hover:not(.is-on) { color: var(--bd-text) !important; }
.bd-seg-i.is-on { background: var(--bd-seg-on); color: var(--bd-text) !important; box-shadow: 0 1px 2px rgba(0, 0, 0, .08), 0 0 0 .5px var(--bd-line); }
.bd-seg.is-many { flex-wrap: wrap; }
.bd-seg.is-many .bd-seg-i { flex: 1 0 auto; }
.bd-dur { overflow-x: auto; scrollbar-width: none; scroll-behavior: smooth; }
.bd-dur::-webkit-scrollbar { display: none; }
.bd-dur .bd-seg-i { flex: 1 0 44px; padding: 0; }
.bd-ratios { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; }
.bd-ratio { height: 52px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 0; border: 0; border-radius: 10px; background: var(--bd-field); color: var(--bd-text-2) !important; font-size: 11px; font-weight: 500; }
.bd-ratio:hover:not(.is-on) { color: var(--bd-text) !important; background: var(--bd-hover); }
.bd-ratio.is-on { background: var(--bd-seg-on); color: var(--bd-text) !important; box-shadow: inset 0 0 0 1.5px var(--bd-accent); }
.bd-ratio-g { height: 18px; display: grid; place-items: center; }
.bd-ratio-g i { display: block; border: 1.5px solid currentColor; border-radius: 3px; }
.bd-voices { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.bd-voice { height: 38px; display: flex; align-items: center; justify-content: space-between; padding: 0 6px 0 12px; border: 0; border-radius: 10px; background: var(--bd-field); color: var(--bd-text-2) !important; font-size: 13px; }
.bd-voice.is-on { background: var(--bd-seg-on); color: var(--bd-text) !important; box-shadow: inset 0 0 0 1.5px var(--bd-accent); }
.bd-voice-play { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--bd-hover); }

/* 成片面板 */
.bd-cut-head { display: flex; align-items: baseline; justify-content: space-between; padding: 0 2px; }
.bd-cut-t { font-size: 13px; font-weight: 600; }
.bd-cut-d { font: 500 12px var(--font-mono); color: var(--bd-text-2); }
.bd-clips { display: flex; align-items: flex-start; gap: 8px; overflow-x: auto; padding: 2px 0 2px; }
.bd-clip { flex: none; width: 96px; }
.bd-clip-img { position: relative; width: 96px; height: 54px; display: grid; place-items: center; overflow: hidden; border-radius: 10px; background: var(--bd-node-2); color: var(--bd-text-3); }
.bd-clip-img img { width: 100%; height: 100%; object-fit: cover; }
.bd-clip-i { position: absolute; left: 5px; top: 5px; width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; background: rgba(8, 10, 16, .6); color: #fff; font-size: 10px; font-weight: 600; }
.bd-clip.is-miss .bd-clip-img { opacity: .55; outline: 1.5px dashed var(--bd-warn); outline-offset: -1.5px; }
.bd-clip-ops { display: flex; justify-content: center; gap: 2px; margin-top: 4px; opacity: 0; transition: opacity var(--duration-quick); }
.bd-clip:hover .bd-clip-ops, .bd-clip:focus-within .bd-clip-ops { opacity: 1; }
.bd-clip-ops button { width: 24px; height: 22px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 7px; background: var(--bd-field); color: var(--bd-text-2) !important; }
.bd-clip-ops button:disabled { opacity: .35; }
.bd-clip-add { width: 54px; height: 54px; }
.bd-cut-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.bd-cut-row .bd-param-l { margin: 0 2px 0 2px; }
.bd-cut-row .bd-seg { flex: 1; min-width: 230px; }

/* 积分与账户 */
.bd-wallet { padding: 12px 12px 6px; }
.bd-wallet-l { font-size: 12px; color: var(--bd-text-3); }
.bd-wallet-n { margin: 2px 0 12px; font: 300 36px/1.1 var(--font-display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.bd-wallet-row { display: flex; justify-content: space-between; padding: 6px 0; border-top: 1px solid var(--bd-line); font-size: 13px; color: var(--bd-text-2); }
.bd-wallet .bd-link { margin-top: 6px; }

/* 素材 / 记录 */
.bd-drawer { position: absolute; left: 72px; top: 66px; bottom: 66px; width: 304px; display: flex; flex-direction: column; overflow: hidden; border-radius: 20px; background: var(--bd-surface-2); border: 1px solid var(--bd-line); box-shadow: var(--bd-shadow-pop); animation: bd-drawer-in var(--duration-smooth) var(--ease-spring-soft); z-index: 25; }
@keyframes bd-drawer-in { from { opacity: 0; transform: translateX(-10px); } }
.bd-drawer-h { display: flex; align-items: center; gap: 8px; padding: 10px 8px 6px 10px; }
.bd-drawer-tabs { flex: 1; display: flex; gap: 2px; padding: 3px; border-radius: 12px; background: var(--bd-field); }
.bd-drawer-tabs button { flex: 1; height: 30px; border: 0; border-radius: 9px; background: transparent; color: var(--bd-text-2) !important; font-size: 13px; font-weight: 500; }
.bd-drawer-tabs button[aria-selected="true"] { background: var(--bd-seg-on); color: var(--bd-text) !important; box-shadow: 0 1px 2px rgba(0, 0, 0, .08); }
.bd-assets { flex: 1; overflow-y: auto; display: grid; grid-template-columns: repeat(3, 1fr); align-content: start; gap: 6px; padding: 8px 12px 12px; }
.bd-asset { position: relative; aspect-ratio: 1; padding: 0; overflow: hidden; border: 0; border-radius: 10px; background: var(--bd-field); }
.bd-asset img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--duration-base) var(--ease-liquid); }
.bd-asset:hover img { transform: scale(1.05); }
.bd-asset-a { width: 100%; height: 100%; display: grid; place-items: center; color: var(--bd-text-2); }
.bd-asset-b { position: absolute; right: 5px; bottom: 5px; width: 16px; height: 16px; display: grid; place-items: center; border-radius: 50%; background: rgba(8, 10, 16, .55); color: #fff; }
.bd-drawer-empty { grid-column: 1 / -1; padding: 40px 0; text-align: center; color: var(--bd-text-3); font-size: 13px; }
.bd-records { flex: 1; overflow-y: auto; display: flex; flex-direction: column; padding: 4px 8px 10px; }
.bd-rec { display: flex; align-items: center; gap: 10px; padding: 8px; border: 0; border-radius: 12px; background: transparent; text-align: left; }
.bd-rec:hover { background: var(--bd-hover); }
.bd-rec-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13px; }
.bd-rec-t > span:first-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bd-rec-s { font-size: 11.5px; color: var(--bd-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bd-rec-c { display: flex; flex-direction: column; align-items: flex-end; font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.bd-rec-c.is-refunded, .bd-rec-c.is-stopped { color: var(--bd-good); }
.bd-rec-st { font-size: 11px; font-weight: 400; color: var(--bd-text-3); }

/* 预览 */
.bd-lb { position: fixed; inset: 0; z-index: 900; display: flex; flex-direction: column; background: rgba(6, 8, 12, .88); backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px); color: #eef1f6; animation: bd-pop-in var(--duration-base) var(--ease-liquid); }
.bd-lb-top { display: flex; align-items: center; gap: 8px; padding: 14px 16px; font-size: 14px; font-weight: 500; }
.bd-lb-sp { flex: 1; }
.bd-lb .bd-iconbtn { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .1); color: #eef1f6 !important; }
.bd-lb-stage { flex: 1; min-height: 0; display: grid; place-items: center; padding: 8px 24px; }
.bd-lb-media { position: relative; max-width: min(1100px, 92vw); max-height: 100%; width: 100%; overflow: hidden; border-radius: 14px; background: #000; box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .8); }
.bd-lb-media img { width: 100%; height: 100%; object-fit: cover; display: block; transform-origin: 40% 50%; }
.bd-lb-media.is-playing img { animation: bd-kb var(--d) linear infinite alternate; }
@keyframes bd-kb { from { transform: scale(1); } to { transform: scale(1.12) translate(-2%, -1%); } }
.bd-lb-ctl { display: flex; align-items: center; gap: 12px; width: min(1100px, 92vw); margin: 4px auto 0; }
.bd-lb-bar { flex: 1; height: 4px; border-radius: 2px; background: rgba(255, 255, 255, .16); overflow: hidden; }
.bd-lb-bar i { display: block; height: 100%; background: #fff; }
.bd-lb-time { font: 500 12px var(--font-mono); color: rgba(238, 241, 246, .7); }
.bd-lb-strip { display: flex; justify-content: center; gap: 8px; padding: 14px 16px 18px; }
.bd-lb-strip button { width: 72px; height: 44px; padding: 0; overflow: hidden; border-radius: 9px; border: 2px solid transparent; background: #000; opacity: .55; }
.bd-lb-strip button.is-on { border-color: #fff; opacity: 1; }
.bd-lb-strip img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Agent：悬浮毛玻璃窗口 + 四周柔光 ---------- */
.bd-orb { position: absolute; right: 18px; bottom: 18px; z-index: 50; width: 56px; height: 56px; display: grid; place-items: center; padding: 0; border-radius: 50%;
  border: 1px solid rgba(151, 160, 255, .35); background: radial-gradient(circle at 32% 26%, var(--nebula-indigo), var(--nebula-deep) 72%); color: var(--glow-indigo) !important;
  box-shadow: 0 10px 28px -10px rgba(20, 26, 52, .7), 0 0 30px -6px color-mix(in srgb, var(--glow-indigo) 38%, transparent);
  transition: transform var(--duration-base) var(--ease-spring-bouncy); }
.bd-orb:hover { transform: scale(1.07); }
.bd-orb.is-busy { animation: bd-orb-pulse 1.8s var(--ease-in-out) infinite; }
@keyframes bd-orb-pulse { 50% { box-shadow: 0 10px 28px -10px rgba(20, 26, 52, .7), 0 0 40px -2px color-mix(in srgb, var(--glow-indigo) 50%, transparent), 0 0 56px -12px color-mix(in srgb, var(--glow-teal) 40%, transparent); } }
.bd-agent { position: absolute; right: 14px; top: 62px; bottom: 14px; z-index: 40; width: 420px; animation: bd-agent-in var(--duration-smooth) var(--ease-spring-soft); }
@keyframes bd-agent-in { from { opacity: 0; transform: translateY(14px) scale(.97); } }
/* 外圈柔光：只用冷色（靛蓝、青，带一点雾紫），贴着窗口边缘，空闲时很淡、慢转，执行时略亮 */
.bd-agent-glow { position: absolute; inset: -3px; border-radius: 30px; z-index: 0; pointer-events: none;
  background: conic-gradient(from var(--bd-a), var(--glow-indigo), var(--glow-teal), color-mix(in srgb, var(--glow-magenta) 60%, var(--glow-indigo)), var(--glow-indigo));
  filter: blur(20px); opacity: .32; animation: bd-glow-spin 20s linear infinite; }
.bd-agent.is-busy .bd-agent-glow { opacity: .48; animation-duration: 8s; }
@keyframes bd-glow-spin { to { --bd-a: 360deg; } }
.bd-agent-in { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; overflow: hidden; border-radius: 26px; background: var(--bd-agent-bg); border: 1px solid var(--bd-agent-line);
  backdrop-filter: blur(40px) saturate(150%); -webkit-backdrop-filter: blur(40px) saturate(150%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 24px 60px -24px rgba(10, 14, 28, .5); }
.bd-agent-in::before { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none;
  background: conic-gradient(from var(--bd-a), color-mix(in srgb, var(--glow-indigo) 75%, transparent), color-mix(in srgb, var(--glow-teal) 60%, transparent), transparent 55%, color-mix(in srgb, var(--glow-indigo) 75%, transparent));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); animation: bd-glow-spin 20s linear infinite; opacity: .42; }
.bd-agent.is-busy .bd-agent-in::before { animation-duration: 8s; opacity: .62; }
.bd-agent-h { display: flex; align-items: center; gap: 8px; height: 54px; flex: none; padding: 0 10px 0 14px; user-select: none; -webkit-user-select: none; }
.bd-agent-orb { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle at 32% 26%, var(--nebula-indigo), var(--nebula-deep) 72%); color: var(--glow-indigo); }
.bd-agent-t { font-size: 14.5px; font-weight: 600; }
.bd-agent-live { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px; border-radius: 999px; background: var(--bd-field); font-size: 12px; color: var(--bd-text-2); font-variant-numeric: tabular-nums; }
.bd-agent-list { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 14px; padding: 4px 16px 14px; }
.bd-agent-empty { margin: auto 0; display: flex; flex-direction: column; align-items: stretch; gap: 18px; padding-bottom: 10px; }
.bd-agent-hi { text-align: center; font: 300 28px/1.2 var(--font-display); letter-spacing: -.01em; }
.bd-agent-sugs { display: flex; flex-direction: column; gap: 8px; }
.bd-sug { padding: 10px 14px; border-radius: 13px; border: 1px solid var(--bd-line); background: var(--bd-field); color: var(--bd-text) !important; font-size: 13px; text-align: left; transition: background var(--duration-quick), border-color var(--duration-quick); }
.bd-sug:hover { background: var(--bd-hover); border-color: color-mix(in srgb, var(--bd-accent) 50%, transparent); }
.bd-msg { font-size: 13.5px; line-height: 1.65; animation: bd-pop-in var(--duration-base) var(--ease-liquid); }
.bd-msg p { margin: 0 0 8px; }
.bd-msg.is-user { align-self: flex-end; max-width: 86%; padding: 9px 13px; border-radius: 16px 16px 5px 16px; background: var(--bd-primary); color: var(--bd-on-primary); }
.bd-msg.is-agent { align-self: stretch; }
.bd-msg.is-undone { opacity: .45; }
.bd-thinking { display: flex; gap: 5px; padding: 8px 2px; }
.bd-thinking span { width: 6px; height: 6px; border-radius: 50%; background: var(--bd-text-2); animation: bd-dot 1.1s var(--ease-in-out) infinite; }
.bd-thinking span:nth-child(2) { animation-delay: .15s; }
.bd-thinking span:nth-child(3) { animation-delay: .3s; }
@keyframes bd-dot { 50% { opacity: .25; transform: translateY(-3px); } }
.bd-steps { display: flex; flex-direction: column; gap: 1px; padding: 5px; border-radius: 14px; background: var(--bd-field); }
.bd-step { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 10px; font-size: 13px; }
.bd-step-ic { width: 20px; height: 20px; flex: none; display: grid; place-items: center; border-radius: 50%; color: var(--bd-text-3); }
.bd-step.is-done .bd-step-ic { background: color-mix(in srgb, var(--bd-good) 18%, transparent); color: var(--bd-good); }
.bd-step.is-error .bd-step-ic { color: var(--bd-bad); }
.bd-step.is-wait .bd-step-t, .bd-step.is-stopped .bd-step-t { color: var(--bd-text-2); }
.bd-step.is-stopped { opacity: .6; }
.bd-step-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .6; }
.bd-spin { width: 14px; height: 14px; border-radius: 50%; border: 2px solid color-mix(in srgb, var(--bd-accent) 25%, transparent); border-top-color: var(--bd-accent); animation: bd-rot .8s linear infinite; }
@keyframes bd-rot { to { transform: rotate(1turn); } }
.bd-step-c { margin-left: auto; display: inline-flex; align-items: center; gap: 3px; font-size: 12px; color: var(--bd-text-2); font-variant-numeric: tabular-nums; }
.bd-msg-end { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; margin-top: 10px; font-size: 12.5px; color: var(--bd-text-2); }
.bd-msg-acts { display: flex; gap: 14px; }
.bd-composer { flex: none; margin: 0 10px 10px; padding: 10px 8px 8px 12px; border-radius: 20px; background: var(--bd-composer); border: 1px solid var(--bd-line); }
.bd-composer textarea:focus-visible, .bd-home-box textarea:focus-visible { outline: none; }
.bd-composer:focus-within { border-color: color-mix(in srgb, var(--bd-accent) 45%, var(--bd-line)); }
.bd-home-box:focus-within { border-color: color-mix(in srgb, var(--bd-accent) 40%, var(--bd-line)); }
.bd-composer textarea { display: block; width: 100%; min-height: 46px; max-height: 140px; padding: 0 4px 0 0; border: 0; background: transparent; resize: none; outline: none; color: var(--bd-text); font: 14px/1.6 var(--font-sans); }
.bd-composer textarea::placeholder, .bd-home-box textarea::placeholder { color: var(--bd-text-3); }
.bd-ctx { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 6px; padding: 3px 8px; border-radius: 8px; background: var(--bd-field); font-size: 12px; color: var(--bd-text-2); }
.bd-composer-bar { display: flex; align-items: center; gap: 6px; margin-top: 4px; }

/* ---------- 首页 ---------- */
.bd-home { position: fixed; inset: 0; overflow-y: auto; background: var(--bd-bg); color: var(--bd-text); }
.bd-home-glow { position: fixed; inset: 0; pointer-events: none;
  background: radial-gradient(640px 320px at 50% 16%, color-mix(in srgb, var(--glow-indigo) 22%, transparent), transparent 70%),
    radial-gradient(520px 280px at 28% 30%, color-mix(in srgb, var(--glow-magenta) 13%, transparent), transparent 70%),
    radial-gradient(520px 280px at 74% 28%, color-mix(in srgb, var(--glow-teal) 14%, transparent), transparent 70%); }
.bd-home-top { position: relative; display: flex; align-items: center; gap: 10px; padding: 18px 24px; }
.bd-brand-row { display: flex; align-items: center; gap: 10px; min-width: 0; }
.bd-wordmark { font-family: var(--font-display); font-size: 17px; font-weight: 500; letter-spacing: -.01em; white-space: nowrap; }
.bd-wordmark b { font-weight: 700; }
.bd-credits.is-static { cursor: default; }
.bd-home-main { position: relative; max-width: 760px; margin: 0 auto; padding: 10vh 20px 64px; }
.bd-home-h { margin: 0 0 28px; text-align: center; font-family: var(--font-display); font-size: 44px; line-height: 1.15; font-weight: 300; letter-spacing: -.02em; }
.bd-home-box { padding: 16px 14px 12px 18px; border-radius: 26px; background: var(--bd-surface); border: 1px solid var(--bd-line); box-shadow: var(--bd-shadow-pop); backdrop-filter: blur(30px) saturate(150%); -webkit-backdrop-filter: blur(30px) saturate(150%); }
.bd-home-box textarea { display: block; width: 100%; min-height: 80px; border: 0; background: transparent; resize: none; outline: none; color: var(--bd-text); font: 16px/1.6 var(--font-sans); }
.bd-home-sugs { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 16px; }
.bd-home-sugs .bd-sug { border-radius: 999px; padding: 8px 14px; }
.bd-home-rec { margin-top: 64px; }
.bd-home-rec-h { margin-bottom: 12px; font-size: 13px; color: var(--bd-text-2); }
.bd-proj-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.bd-proj { display: flex; flex-direction: column; gap: 3px; padding: 0; border: 0; background: transparent; text-align: left; }
.bd-proj-img { aspect-ratio: 16 / 9; display: grid; place-items: center; overflow: hidden; margin-bottom: 8px; border-radius: 16px; border: 1px solid var(--bd-line); background: var(--bd-surface); color: var(--bd-text-3); transition: transform var(--duration-base) var(--ease-liquid), box-shadow var(--duration-base); }
.bd-proj-img img { width: 100%; height: 100%; object-fit: cover; }
.bd-proj:hover .bd-proj-img { transform: translateY(-2px); box-shadow: var(--bd-shadow-pop); }
.bd-proj-t { font-size: 14px; font-weight: 500; }
.bd-proj-s { font-size: 12px; color: var(--bd-text-3); }

/* ---------- 窄屏 ---------- */
@media (max-width: 640px) {
  .bd-top { top: 10px; left: 10px; padding-right: 10px; }
  .bd-top-save { display: none; }
  .bd-top-name { max-width: 34vw; }
  .bd-top-r { top: 10px; right: 10px; gap: 6px; }
  .bd-top-r .bd-iconbtn { display: none; }
  .bd-docks { left: 10px; top: 64px; }
  .bd-viewctl { left: 10px; bottom: 10px; }
  .bd-viewctl > :last-child { display: none; }
  .bd-panel-pos.is-sheet { z-index: 45; }
  .bd-panel-pos.is-sheet .bd-panel { border-radius: 20px; }
  .bd-chip { max-width: 150px; }
  .bd-bar > .bd-chip-model { flex: 0 0 auto; max-width: 124px; }
  .bd-bar > .bd-chip:not(.bd-chip-model):not(.bd-chip-n) { flex: 1 1 auto; }
  .bd-go { padding-left: 10px; }
  .bd-orb { right: 12px; bottom: 12px; width: 52px; height: 52px; }
  .bd-agent.is-sheet { left: 8px; right: 8px; top: auto; bottom: 8px; width: auto; height: 74vh; }
  .bd-drawer { left: 8px; right: 8px; width: auto; top: 60px; bottom: 8px; }
  .bd-bulk-pos { bottom: 74px; max-width: calc(100vw - 16px); }
  .bd-home-top { padding: 14px 16px; }
  .bd-wordmark { font-size: 15px; }
  .bd-home-main { padding-top: 6vh; }
  .bd-home-h { font-size: 30px; margin-bottom: 20px; }
  .bd-ratios { grid-template-columns: repeat(4, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .bd-agent-glow, .bd-agent-in::before, .bd-orb.is-busy, .bd-edge.is-flow .bd-edge-line, .bd-wire, .bd-nrun::before, .bd-lb-media.is-playing img { animation: none !important; }
  .bd-panel-pos, .bd-pop, .bd-msg, .bd-agent, .bd-toast, .bd-drawer, .bd-hdl-plus, .bd-hdl-mag { animation: none !important; transition: none !important; }
}

/* Production additions retain the supplied prototype's tokens and components. */
.sg-wordmark-button{display:flex;align-items:center;gap:10px;background:none;border:0;color:inherit;cursor:pointer;padding:0}
.sg-page{max-width:1180px;margin:64px auto;padding:0 40px 80px}.sg-page h1,.sg-auth h1{font-size:36px;letter-spacing:-.03em;font-weight:600;margin:0 0 32px}.sg-page h2{font-size:20px;font-weight:600;margin:36px 0 18px}.sg-page-heading,.sg-filter-row,.sg-project-actions,.sg-account-actions,.sg-check-row{display:flex;align-items:center;gap:14px}.sg-page-heading{justify-content:space-between;margin-bottom:30px}.sg-page-heading h1{margin:0}.sg-filter-row{margin:0 0 26px}.sg-form{display:flex;flex-direction:column;gap:20px}.sg-form label{display:flex;flex-direction:column;gap:9px}.sg-form input,.sg-form select,.sg-filter-row input,.sg-filter-row select{font:inherit;color:var(--ink-1,#26303d);background:var(--glass-bg,rgba(255,255,255,.7));border:1px solid var(--line,rgba(100,116,139,.22));border-radius:12px;padding:13px 15px;min-width:0;outline:none}.sg-form input:focus,.sg-filter-row input:focus{border-color:var(--ink-2,#64748b)}.sg-filter-row input{flex:1}.sg-auth{max-width:460px;margin:90px auto 70px;padding:0 24px}.sg-auth .bd-home-box{padding:28px}.sg-submit{font:inherit;border:0;border-radius:999px;background:var(--ink-1,#202632);color:var(--surface,#fff);padding:12px 23px;cursor:pointer;white-space:nowrap}.sg-submit:disabled{opacity:.45;cursor:default}.sg-tabs{display:flex;gap:8px;margin-bottom:4px}.sg-tabs button{flex:1;border:0;background:none;color:inherit;font:inherit;padding:10px 16px;border-radius:999px;cursor:pointer}.sg-tabs button.is-active{background:var(--ink-1,#202632);color:var(--surface,#fff)}.sg-inline-error{font-size:13px;color:var(--danger,#b42337);line-height:1.6;overflow-wrap:anywhere}.sg-inline-error .bd-link{margin-left:10px}.sg-legal-links{display:flex;justify-content:center;flex-wrap:wrap;gap:20px;font-size:12px;margin-top:22px}.sg-legal-links a{color:inherit;opacity:.7}.sg-loading{min-height:100dvh;display:flex;flex-direction:column;gap:20px;justify-content:center;align-items:center}.sg-project-card{position:relative;min-width:0}.sg-project-card .bd-proj{width:100%;text-align:left}.sg-project-actions{padding:10px 4px;gap:16px}.sg-project-actions input{accent-color:var(--canvas-select,#727bff)}.bd-proj-grid.is-list{display:flex;flex-direction:column;gap:8px}.bd-proj-grid.is-list .sg-project-card{display:flex;align-items:center;gap:24px}.bd-proj-grid.is-list .bd-proj{display:flex;align-items:center;gap:20px;flex:1}.bd-proj-grid.is-list .bd-proj-img{width:100px;height:60px;flex:none}.sg-trash-link{margin-top:40px}.sg-empty{padding:70px 0;text-align:center;opacity:.65}.sg-account{max-width:800px}.sg-account .sg-form{max-width:480px}.sg-check-row{flex-direction:row!important}.sg-check-row input{width:18px;height:18px}.sg-ledger-row{display:grid;grid-template-columns:150px 1fr 80px 80px;gap:16px;padding:14px 0;border-bottom:1px solid var(--line,rgba(100,116,139,.18));font-size:13px}.sg-account-actions{flex-wrap:wrap;margin-top:40px}.sg-selection-bar{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);display:flex;gap:20px;background:var(--ink-1,#202632);color:var(--surface,#fff);padding:14px 24px;border-radius:999px}.sg-selection-bar button{background:none;color:inherit;border:0;font:inherit;cursor:pointer}.bd-home-rec-h{display:flex;justify-content:space-between;align-items:center}.bd-flow{position:absolute!important;inset:0}.react-flow__node-prototype{background:none!important;border:0!important;box-shadow:none!important}.react-flow__node .bd-node{position:absolute;left:0!important;top:0!important}.react-flow__node:focus-visible{outline:0}.react-flow__pane{cursor:inherit!important}.react-flow__minimap{border-radius:16px;overflow:hidden;background:var(--bd-node)!important;box-shadow:0 10px 35px #0002}.bd-wire-overlay{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.bd-audio-player{width:calc(100% - 20px);height:42px;margin:22px 10px;max-width:100%}.sg-canvas-extras{position:absolute;left:260px;bottom:20px;display:flex;gap:4px}.sg-shortcuts{position:absolute;left:22px;bottom:76px;width:min(430px,calc(100vw - 44px));padding:22px;border-radius:22px;background:var(--glass-bg,rgba(255,255,255,.9));backdrop-filter:blur(28px);box-shadow:0 16px 48px #0002;z-index:80}.sg-shortcuts h3{margin:0 0 20px;font-weight:600}.sg-shortcuts>button{float:right}.sg-shortcuts>div{display:flex;justify-content:space-between;gap:20px;padding:8px 0;font-size:13px}.sg-shortcuts kbd{font:inherit;font-variant-numeric:tabular-nums;opacity:.7}.sg-notice{position:absolute;top:66px;left:50%;transform:translateX(-50%);border-radius:999px;padding:10px 18px;background:var(--ink-1,#202632);color:var(--surface,#fff);z-index:100;font-size:13px;display:flex;gap:16px}.sg-notice button{background:none;border:0;color:inherit;cursor:pointer;text-decoration:underline;font:inherit}.sg-inline-error{padding:4px 0}.bd-step{background:none;border:0;color:inherit;text-align:left;width:100%;font:inherit;cursor:pointer}.bd-nimg:is(video){object-fit:cover}.bd-naudio{overflow:hidden}.is-performance .bd-ui,.is-performance .bd-pop{backdrop-filter:none!important}.is-performance .bd-agent-glow,.is-performance .sg-beam{animation:none!important}[data-theme=dark] .sg-form input,[data-theme=dark] .sg-form select,[data-theme=dark] .sg-filter-row input,[data-theme=dark] .sg-filter-row select{background:rgba(24,30,41,.8);color:#e8edf5;border-color:rgba(180,195,220,.2)}[data-theme=dark] .sg-submit,[data-theme=dark] .sg-tabs button.is-active{background:#e8edf5;color:#111722}[data-theme=dark] .sg-shortcuts{background:rgba(23,29,40,.94)}[data-theme=dark] .sg-inline-error{color:#ff9aab}
@media(max-width:700px){.sg-page{margin:34px auto;padding:0 18px 60px}.sg-page h1,.sg-auth h1{font-size:28px}.sg-page-heading{gap:12px}.sg-page-heading .sg-submit{padding:10px 15px}.sg-filter-row{flex-wrap:wrap}.sg-filter-row input{flex-basis:100%}.sg-auth{margin-top:50px}.sg-ledger-row{grid-template-columns:1fr 1fr 50px;gap:10px}.sg-ledger-row>span:last-child{display:none}.bd-home-top{gap:8px}.bd-home-top .bd-wordmark{font-size:14px}.bd-home-top .bd-chip{padding:7px 9px}.sg-canvas-extras{left:16px;bottom:74px}.bd-proj-grid.is-list .sg-project-card{flex-direction:column;align-items:stretch;gap:4px}.sg-account-actions{gap:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
.sg-drawer-filters{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px}.sg-drawer-filters .sg-tabs{width:100%}.sg-drawer-filters input:not([type=checkbox]),.sg-drawer-filters select{background:transparent;color:inherit;border:1px solid var(--line,rgba(100,116,139,.25));border-radius:9px;padding:8px 10px;font:inherit;font-size:12px;min-width:0;flex:1}.sg-drawer-filters input[type=search]{flex-basis:100%}.sg-folder-form{display:flex;gap:8px;flex-basis:100%}.sg-drawer-footer{padding:14px 16px;background:var(--glass-bg,rgba(255,255,255,.9));border-top:1px solid var(--line,#ddd)}.sg-drawer-footer p{font-size:13px}.sg-record-wrap{position:relative}.sg-record-options{display:flex;gap:10px;padding:0 16px 10px}.sg-record-error{font-size:11px;padding:0 16px;color:var(--danger,#b42337)}.sg-asset-name{position:absolute;bottom:0;left:0;right:0;padding:5px;background:#0008;color:#fff;font-size:10px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bd-asset video,.bd-lb-strip video{width:100%;height:100%;object-fit:cover}.sg-agent-replies p{overflow-wrap:anywhere;white-space:pre-wrap}.bd-records{overflow:auto}.bd-drawer{display:flex;flex-direction:column;max-height:calc(100dvh - 94px)}.bd-assets,.bd-records{flex:1;min-height:0;overflow:auto}.sg-selection-bar{z-index:40}
.sg-tool-menu{position:absolute;z-index:75;width:228px;border-radius:18px;padding:7px;background:var(--glass-bg,rgba(255,255,255,.92));backdrop-filter:blur(28px);box-shadow:0 14px 42px #0003;max-height:360px;overflow:auto}.sg-edit-panel{position:absolute;z-index:55;border-radius:22px;padding:18px 22px;background:var(--glass-bg,rgba(255,255,255,.92));backdrop-filter:blur(28px);box-shadow:0 14px 42px #0002}.sg-edit-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.sg-edit-fields{display:flex;gap:14px;flex-wrap:wrap}.sg-edit-fields label{display:flex;flex-direction:column;gap:7px;flex:1;min-width:80px;font-size:12px}.sg-edit-fields input,.sg-edit-panel textarea{font:inherit;background:transparent;color:inherit;border:1px solid var(--line,#bcc4d1);border-radius:10px;padding:10px;min-width:0;width:100%}.sg-edit-panel textarea{min-height:80px;resize:vertical;outline:none}.sg-edit-panel .bd-composer-bar{margin-top:16px}[data-lod=medium] .bd-hdl,[data-lod=low] .bd-hdl,[data-lod=low] .bd-nlabel,[data-lod=low] .bd-nver{display:none}[data-lod=medium] .bd-ui,[data-lod=low] .bd-ui{backdrop-filter:none}[data-theme=dark] .sg-tool-menu,[data-theme=dark] .sg-edit-panel{background:rgba(23,29,40,.94)}
.sg-attachments{display:flex;flex-wrap:wrap;gap:5px;max-width:55%;font-size:11px}.sg-attachments .bd-chip{gap:5px;max-width:180px;overflow:hidden;text-overflow:ellipsis;font-size:11px}.sg-attachments button{background:none;color:inherit;border:0;padding:2px;cursor:pointer}.sg-agent-question{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0}.sg-edit-fields label{color:inherit}
.sg-report-form{position:absolute;bottom:100px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:14px;border-radius:18px;background:rgba(24,30,41,.94);width:min(600px,calc(100vw - 32px));box-shadow:0 12px 32px #0004}.sg-report-form input{flex:1;min-width:0;background:transparent;border:1px solid #ffffff44;border-radius:10px;padding:12px;color:#fff;font:inherit}.sg-text-preview{white-space:pre-wrap;color:#fff;font:inherit;line-height:1.7;padding:30px;overflow:auto;height:100%}.bd-node:focus-visible{outline:2px solid var(--canvas-select,#727bff);outline-offset:5px}.bd-lb-top .bd-iconbtn{color:#fff}
.react-flow__node-prototype{pointer-events:auto!important}
.sg-cookie-banner{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);width:min(760px,calc(100vw - 32px));display:flex;align-items:center;justify-content:space-between;gap:24px;border-radius:22px;padding:20px 24px;background:var(--glass-bg,rgba(255,255,255,.94));backdrop-filter:blur(28px);box-shadow:0 16px 50px #0003;z-index:110;font-size:13px;line-height:1.5}.sg-cookie-banner>div:first-child{max-width:390px}.sg-cookie-banner a{color:inherit;display:block;font-size:11px;margin-top:5px;opacity:.7}.sg-cookie-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.sg-cookie-actions .bd-chip{cursor:pointer}.sg-cookie-preference{margin-top:36px}.sg-cookie-preference p{font-size:13px;opacity:.7}.sg-cookie-preference .is-active{outline:2px solid var(--canvas-select,#727bff);outline-offset:3px}[data-theme=dark] .sg-cookie-banner{background:rgba(23,29,40,.94)}@media(max-width:700px){.sg-cookie-banner{flex-direction:column;align-items:stretch;gap:16px;padding:18px}.sg-cookie-actions{justify-content:flex-end}.sg-cookie-actions .sg-submit,.sg-cookie-actions .bd-chip{font-size:12px;padding:10px 15px}}
.bd-viewctl{display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);flex-wrap:wrap}.sg-canvas-extras{position:static;left:auto;bottom:auto;display:flex;gap:4px;flex-shrink:0}
.bd-ref-flag{top:4px;bottom:auto;max-width:calc(100% - 8px);overflow:hidden;text-overflow:ellipsis}
