/* Canvas workspace: restrained, docked editor chrome. */
/* The left navigation inherits the shared site styles at every viewport size. */
.canvas-page .main { height:100dvh; min-height:0; overflow:hidden; position:relative; display:flex; flex-direction:column; }
.canvas-page .topbar { display:none; }
.canvas-workspace { display:flex; flex:1; flex-direction:column; min-height:0; width:100%; color:#32363f; font-family:'PingFang SC','Microsoft YaHei',system-ui,sans-serif; }
.canvas-icon { display:block; width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.canvas-toolbar { display:flex; align-items:center; flex:0 0 56px; height:56px; min-width:0; gap:12px; padding:0 18px; border-bottom:1px solid #e6e8eb; background:#fff; position:relative; z-index:8; }
.canvas-toolbar button { min-height:32px; padding:6px 10px; border:1px solid #e3e5e8; border-radius:5px; background:#fff; color:#545962; font-size:12px; display:flex; align-items:center; justify-content:center; gap:7px; white-space:nowrap; }
.canvas-toolbar button:hover { background:#f5f6f7; }
.canvas-toolbar-divider { height:18px; width:1px; background:#e6e8eb; flex-shrink:0; }
.canvas-toolbar .canvas-library-toggle { border-color:transparent; padding-left:5px; }
.canvas-library-toggle[aria-expanded=true] { color:#303640; background:#f1f2f4; }
.canvas-board-title { width:clamp(130px,20vw,300px); min-width:90px; padding:6px 8px; border:1px solid transparent; border-radius:4px; background:transparent; color:#353943; font-family:inherit; font-size:13px; line-height:20px; font-weight:600; text-overflow:ellipsis; }
.canvas-board-title:hover,.canvas-board-title:focus { border-color:#e0e2e6; background:#fff; }
.canvas-file-controls { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-left:auto; min-width:0; }
.canvas-save-status { color:#9096a0; font-size:10px; white-space:nowrap; }
.canvas-save-status::before { content:''; display:inline-block; width:4px; height:4px; margin-right:6px; border-radius:50%; background:#79a38d; vertical-align:middle; }
.canvas-save-status[data-state=saving]::before { background:#b3a477; }.canvas-save-status[data-state=error] { color:#c4444c; }.canvas-save-status[data-state=error]::before { background:#c4444c; }
.canvas-toolbar .canvas-primary,.canvas-toolbar .canvas-stop { background:#dc222f; border-color:#dc222f; color:#fff; padding:6px 14px; }
.canvas-toolbar .canvas-primary:hover,.canvas-toolbar .canvas-stop:hover { background:#c3202c; }
.canvas-board-select { width:100%; padding:8px; border:1px solid #e1e3e7; border-radius:4px; background:#fff; color:#555c68; font-size:12px; }
.canvas-toolbar .canvas-delete-board { color:#bf3f47; }
.canvas-toolbar .canvas-delete-board:hover { background:#fff4f4; border-color:#e9c7ca; }
.canvas-component-link { padding:6px 2px; font-size:10px; color:#8a909b; white-space:nowrap; }
.canvas-component-link:hover { color:#545962; text-decoration:underline; }
.canvas-workspace button:focus-visible,.canvas-workspace a:focus-visible,.canvas-workspace summary:focus-visible,.canvas-workspace select:focus-visible,.canvas-workspace input:focus-visible,.canvas-workspace textarea:focus-visible { outline:2px solid #b67b81; outline-offset:2px; }
.canvas-workspace button:disabled,.canvas-workspace select:disabled,.canvas-workspace input:disabled,.canvas-workspace textarea:disabled { opacity:.45; cursor:not-allowed; }
.canvas-stage { --canvas-library-space:0px; flex:1; min-height:0; position:relative; overflow:hidden; background:#f6f7f9; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr); }
.canvas-stage.library-open { --canvas-library-space:244px; grid-template-columns:244px minmax(0,1fr); }
.canvas-surface { min-width:0; min-height:0; width:100%; height:100%; position:relative; grid-column:1; grid-row:1; outline:none; background-image:radial-gradient(#dce0e5 .75px,transparent .75px); background-size:20px 20px; }
.library-open .canvas-surface { grid-column:2; }.canvas-surface>.drawflow { transform-origin:0 0; }
.canvas-node-library { grid-column:1; grid-row:1; position:relative; min-height:0; width:auto; display:flex; flex-direction:column; padding:14px 10px 0; border-right:1px solid #e3e5e9; background:#fafbfc; z-index:4; }
.canvas-library-heading { display:flex; align-items:center; justify-content:space-between; padding:0 6px; margin-bottom:12px; font-size:12px; }.canvas-library-heading strong { font-weight:600; }.canvas-library-heading button { width:24px; height:24px; display:grid; place-items:center; padding:0; color:#9ba0aa; border-radius:4px; }.canvas-library-heading button:hover { background:#eceef1; }
.canvas-node-search-wrap { display:flex; gap:7px; align-items:center; margin:0 4px; padding:0 8px; height:32px; border:1px solid #e1e4e8; border-radius:5px; background:#fff; color:#a0a6b0; flex-shrink:0; }.canvas-node-search-wrap:focus-within { border-color:#b2b8c2; }.canvas-node-search { width:100%; min-width:0; height:30px; padding:0; border:0; background:transparent; color:#454b55; font-size:11px; outline:none!important; }
.canvas-library-items { flex:1; overflow:auto; min-height:0; margin-top:8px; scrollbar-width:thin; }.canvas-library-group h3 { margin:17px 8px 7px; color:#a0a5af; font-size:10px; font-weight:500; letter-spacing:.04em; }
.canvas-library-items button { width:100%; min-height:52px; padding:8px; display:flex; align-items:center; gap:10px; text-align:left; color:#424851; border-radius:5px; cursor:grab; }.canvas-library-items button:hover { background:#eef0f3; }.canvas-library-items button:active { cursor:grabbing; }
.canvas-library-icon { width:28px; height:28px; display:grid; place-items:center; flex-shrink:0; border:1px solid #e1e4e9; border-radius:5px; color:#7b8391; background:#fff; }.canvas-library-label { flex:1; min-width:0; }.canvas-library-label strong { display:block; font-size:11px; font-weight:500; }.canvas-library-label small { display:block; margin-top:4px; color:#9ca2ad; font-size:10px; line-height:1.45; }.canvas-library-add { width:13px; height:13px; opacity:0; color:#8f96a3; }.canvas-library-items button:hover .canvas-library-add,.canvas-library-items button:focus-visible .canvas-library-add { opacity:1; }
.canvas-library-no-results { padding:24px 8px; color:#aaa; font-size:12px; }.canvas-library-footer { margin:0; padding:12px 8px; border-top:1px solid #e8eaee; color:#aaaeb7; font-size:10px; }
.canvas-empty { position:absolute; left:calc(50% + var(--canvas-library-space) / 2); top:47%; transform:translate(-50%,-50%); width:min(400px,calc(100% - var(--canvas-library-space) - 40px)); text-align:center; pointer-events:none; color:#9299a6; }
.canvas-empty-icon { display:block; margin:0 auto 16px; width:36px; height:36px; fill:none; stroke:#b7bdc7; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.canvas-empty h2 { margin:0 0 8px; color:#65707e; font-size:15px; font-weight:500; }.canvas-empty p { font-size:12px; line-height:1.8; }.canvas-empty>div { display:flex; justify-content:center; gap:8px; margin-top:18px; }.canvas-empty button { pointer-events:auto; border:1px solid #dce0e7; padding:8px 13px; border-radius:5px; background:#fff; color:#5d6675; font-size:11px; }.canvas-empty button:hover { background:#f1f3f6; }
.canvas-bottom { position:absolute; left:calc(var(--canvas-library-space) + 16px); right:16px; bottom:16px; z-index:3; display:flex; justify-content:space-between; align-items:center; gap:12px; pointer-events:none; }
.canvas-history-controls,.canvas-view-controls { display:flex; align-items:center; gap:2px; padding:4px; border:1px solid #e0e3e8; border-radius:6px; background:#ffffffed; box-shadow:0 2px 8px #1d293908; pointer-events:auto; }
.canvas-bottom button { display:grid; place-items:center; width:28px; height:28px; padding:5px; border-radius:4px; color:#747d8b; }.canvas-bottom button:hover { background:#f0f2f5; }.canvas-bottom .canvas-icon { width:15px; height:15px; }.canvas-zoom { width:44px; text-align:center; font-size:11px; color:#717b89; font-variant-numeric:tabular-nums; }.canvas-controls-divider { width:1px; height:16px; margin:0 4px; background:#e2e5e9; }.canvas-graph-summary { border-left:1px solid #e5e7ec; padding:0 8px; margin-left:4px; color:#a0a7b2; font-size:10px; white-space:nowrap; }.canvas-shortcuts { position:absolute; right:18px; bottom:62px; color:#a7adb7; font-size:10px; pointer-events:none; }.canvas-shortcuts span { margin-left:14px; }
.canvas-surface .drawflow-node { width:304px; min-height:0; padding:0; background:#fff; color:#343b45; border:1px solid #d8dde5; border-radius:7px; box-shadow:0 2px 7px #27334608; }
.canvas-surface .drawflow-node.selected { background:#fff; border-color:#bc7f86; box-shadow:0 0 0 1px #bc7f86,0 2px 9px #2733460d; }
.canvas-surface .drawflow-node .input,.canvas-surface .drawflow-node .output { width:10px; height:10px; border:2px solid #9da7b5; background:#fff; margin:0; top:0; }.canvas-surface .drawflow-node .input { left:-6px; }.canvas-surface .drawflow-node .output { right:5px; }.canvas-surface .drawflow-node .input:hover,.canvas-surface .drawflow-node .output:hover { background:#9da7b5; }
.canvas-surface .connection .main-path { stroke:#afb8c6; stroke-width:1.7px; }.canvas-surface .connection .main-path:hover,.canvas-surface .connection .main-path.selected { stroke:#b36972; stroke-width:2.3px; }
.canvas-node-heading { display:flex; align-items:center; gap:8px; padding:9px 11px; min-height:42px; border-bottom:1px solid #edf0f3; border-radius:7px 7px 0 0; background:#fafbfc; cursor:grab; }.canvas-node-heading>strong { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; font-weight:600; }.canvas-node-symbol { color:#8693a5; }.canvas-node-symbol .canvas-icon { width:17px; height:17px; }.canvas-node-tools { display:flex; gap:1px; align-items:center; margin-left:auto; }.canvas-node-tools button { padding:4px; width:22px; height:22px; border-radius:4px; color:#a3aab5; }.canvas-node-tools .canvas-icon { width:14px; height:14px; }.canvas-node-tools button:hover { color:#434f60; background:#e9edf2; }.canvas-node-tools button:not([data-node-action=collapse]) { opacity:0; }.drawflow-node:hover .canvas-node-tools button,.drawflow-node:focus-within .canvas-node-tools button { opacity:1; }.canvas-node-tools [data-node-action=delete]:hover { color:#bc4b56; }
.canvas-node-body { padding:12px; display:flex; flex-direction:column; gap:11px; max-height:min(600px,calc(100dvh - 160px)); overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; cursor:default; }.canvas-node-body>label { display:flex; flex-direction:column; gap:6px; font-size:10px; color:#8892a0; }
.canvas-node-body input,.canvas-node-body select,.canvas-node-body textarea { width:100%; min-width:0; padding:8px 9px; border:1px solid #e2e6eb; border-radius:4px; background:#fff; color:#495361; font:inherit; font-size:11px; user-select:text; }.canvas-node-body textarea { line-height:1.7; min-height:74px; resize:none; touch-action:pan-y; }.canvas-node-body textarea::placeholder { color:#b0b7c1; }.canvas-node-hint { color:#a0a7b2; font-size:10px; line-height:1.65; }
.canvas-node-actions { display:flex; justify-content:space-between; align-items:center; gap:8px; padding-top:2px; }.canvas-node-actions button { padding:6px 8px; font-size:10px; color:#939ba8; border-radius:4px; }.canvas-node-actions button:hover { background:#f2f4f7; }.canvas-node-actions .canvas-node-run { background:#f5f0f1; color:#a9545f; }.canvas-node-actions .canvas-node-run:hover { background:#eee4e6; }
.canvas-node-status,.canvas-brief-status { color:#a3aab5; font-size:10px; line-height:1.7; overflow-wrap:anywhere; }.drawflow-node[data-status=complete] .canvas-node-status,.drawflow-node[data-status=complete] .canvas-brief-status { color:#608471; }.drawflow-node[data-status=error] .canvas-node-status,.drawflow-node[data-status=error] .canvas-brief-status { color:#bd4b56; }.drawflow-node[data-status=running] .canvas-node-status,.drawflow-node[data-status=uploading] .canvas-node-status { color:#ab8250; }
.canvas-node-brief { display:none; padding:10px 12px; }.canvas-brief-content { margin:0 0 6px; font-size:11px; line-height:1.6; color:#9ba2ad; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }.drawflow-node.is-collapsed .canvas-node-body { display:none; }.drawflow-node.is-collapsed .canvas-node-brief { display:block; }.drawflow-node.is-collapsed [data-node-action=collapse] .canvas-icon { transform:rotate(-90deg); }
.canvas-node-result:empty,.canvas-node-attachments:empty { display:none; }.canvas-node-result { display:flex; flex-direction:column; gap:9px; border-top:1px solid #edf0f3; padding-top:11px; user-select:text; }.canvas-result-text { white-space:pre-wrap; overflow-wrap:anywhere; max-height:260px; overflow:auto; font-size:11px; line-height:1.85; touch-action:pan-y; }.canvas-copy { align-self:flex-end; color:#939ba8; font-size:10px; }.canvas-copy:hover { color:#a9545f; }.canvas-node-result .agent-generated-image { width:100%; margin:0; }.canvas-node-result .agent-generated-image figcaption { font-size:10px; flex-wrap:wrap; gap:3px; }.canvas-node-result .agent-image-preview,.canvas-node-result .image-viewer-toolbar { background-color:#fff; }.canvas-node-result .agent-image-preview { background-image:conic-gradient(#eee 25%,#fff 0 50%,#eee 0); background-size:16px 16px; }
.canvas-attachment { display:flex; align-items:center; gap:6px; background:#f5f7fa; border-radius:4px; padding:5px 7px; margin-top:4px; }.canvas-attachment a { flex:1; min-width:0; font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#7e8998; }.canvas-attachment button { color:#a2aab7; width:20px; height:20px; }.canvas-input-preview { display:block; width:100%; max-height:110px; object-fit:contain; background:#f7f8fa; border-radius:5px; margin-top:6px; }.canvas-result-download { align-self:flex-start; color:#a9545f; background:#f6f0f1; padding:7px 10px; border-radius:4px; font-size:10px; }.canvas-file-download { font-size:10px; color:#939ba8; overflow-wrap:anywhere; }.canvas-reports { font-size:10px; color:#8e98a6; line-height:1.7; }.canvas-reports summary { cursor:pointer; }.canvas-busy .drawflow .input,.canvas-busy .drawflow .output { pointer-events:none; opacity:.4; }.canvas-size-fields { display:flex; gap:8px; }.canvas-size-fields label { flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; color:#9099a7; font-size:10px; }
.canvas-upscale [hidden],.canvas-remove_text [hidden] { display:none !important; }
.canvas-text-region { display:flex; flex-direction:column; gap:10px; padding:10px; background:#f8f9fc; border-radius:8px; }
.canvas-region-pick { color:var(--red); padding:8px; background:#fff0f1; border-radius:6px; font-size:12px; }
.canvas-region-fields { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.canvas-region-fields label { display:flex; flex-direction:column; gap:5px; color:#90949c; font-size:11px; min-width:0; }
.canvas-region-dialog { width:min(1040px,94vw); max-height:94dvh; overflow:auto; border:1px solid #e5e5e5; border-radius:16px; padding:20px; color:#444; background:#fff; }
.canvas-region-dialog::backdrop { background:#1a203077; }
.canvas-region-dialog header,.canvas-region-dialog footer { display:flex; align-items:center; gap:12px; }
.canvas-region-dialog header button { margin-left:auto; font-size:24px; }
.canvas-region-dialog p { margin:12px 0; color:#888; line-height:1.7; font-size:13px; }
.canvas-region-dialog canvas { display:block; max-width:100%; height:auto; margin:0 auto; cursor:crosshair; touch-action:none; background:#f1f1f1; }
.canvas-region-dialog footer { margin-top:14px; font-size:12px; }
.canvas-region-dialog footer span { margin-right:auto; color:#888; }
.canvas-region-dialog button { cursor:pointer; padding:8px 12px; border-radius:6px; }
.canvas-region-dialog [data-confirm] { background:var(--red); color:#fff; }
.canvas-region-dialog button:disabled { opacity:.45; cursor:not-allowed; }
.canvas-surface .drawflow-node.canvas-banner { width:420px; }
.canvas-surface .drawflow-node.canvas-local_text,.canvas-surface .drawflow-node.canvas-liblib_text { width:520px; }
.canvas-local_text .canvas-node-heading { background:#f5f5fd; }
.canvas-local_text .canvas-node-body { max-height:clamp(300px,calc(100dvh - 300px),680px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.canvas-liblib_text .canvas-node-heading { background:#f0f7f7; }
.canvas-liblib_text .canvas-node-body { max-height:clamp(300px,calc(100dvh - 300px),680px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.liblib-lora-preview { margin:0; overflow:hidden; border:1px solid #e3e8eb; border-radius:8px; background:#fff; }
.liblib-lora-preview-link { position:relative; display:block; padding:10px; background:#f4f6f7; cursor:zoom-in; }
.liblib-lora-preview-link:focus-visible { outline:2px solid #588b91; outline-offset:-3px; }
.liblib-lora-preview-link img { display:block; width:100%; height:250px; object-fit:contain; }
.liblib-lora-preview-link > span { position:absolute; right:10px; bottom:10px; padding:5px 8px; border-radius:5px; background:#ffffffed; color:#52666c; font-size:11px; box-shadow:0 1px 5px #0001; }
.liblib-lora-preview figcaption { display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; padding:8px 10px; font-size:11px; line-height:1.5; }
.liblib-lora-preview figcaption > span { flex-shrink:0; color:#939aa2; }
.liblib-lora-preview figcaption > strong { color:#66747c; font-weight:500; overflow-wrap:anywhere; }
.liblib-fixed-prompt { display:flex; flex-direction:column; gap:8px; padding:10px; border:1px solid #dce8e5; border-radius:7px; background:#f6faf8; }
.liblib-fixed-prompt[hidden] { display:none; }
.liblib-fixed-prompt-copy { color:#677972; line-height:1.7; overflow-wrap:anywhere; user-select:text; }
.local-text-notice { display:flex; flex-direction:column; gap:6px; background:#fff8e9; border:1px solid #f0ddb5; border-radius:8px; padding:12px; }
.local-text-notice strong { color:#8c6527; font-size:12px; }
.local-text-notice span { color:#a58a5d; font-size:11px; line-height:1.6; }
.local-model-details { white-space:pre-wrap; overflow-wrap:anywhere; }
.local-model-links { display:flex; flex-wrap:wrap; gap:6px 14px; }
.local-model-links a { color:#716488; text-decoration:underline; text-underline-offset:2px; }
.local-text-section label small { color:#aaa7b5; font-size:10px; }
.local-model-refresh { align-self:flex-start; padding:7px 10px; border:1px solid #ddd9ec; border-radius:6px; color:#716488; background:#f6f4fa; font-size:11px; cursor:pointer; }
.local-text-flow { display:flex; align-items:center; justify-content:space-between; gap:6px; color:#827eae; font-size:10px; }
.local-text-flow span { padding:5px 9px; background:#f1f0fa; border-radius:5px; }
.local-text-flow b { color:#bebaca; font-weight:400; }
.local-text-section { display:flex; flex-direction:column; gap:10px; padding:12px; border:1px solid #ebebf2; border-radius:9px; }
.local-text-section h4 { margin:0; color:#656080; font-size:12px; font-weight:600; }
.local-model-resources summary { color:#77718e; font-size:12px; font-weight:600; cursor:pointer; }
.local-text-section label { display:flex; flex-direction:column; gap:6px; min-width:0; color:#90949c; font-size:11px; }
.local-text-section input,.local-text-section select { min-width:0; }
.local-text-section textarea { min-height:64px; }
.local-text-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.local-text-lora { display:flex; flex-direction:column; gap:8px; background:#f8f8fb; border-radius:6px; padding:9px; }
.local-text-lora-row { display:grid; grid-template-columns:minmax(0,1fr) 86px; gap:8px; }
.local-text-actions { position:sticky; bottom:-14px; z-index:1; background:#fff; padding:10px 0; border-top:1px solid #eee; flex-wrap:wrap; }
.local-text-actions .canvas-node-run { margin-left:auto; }
.canvas-banner .canvas-node-heading { background:#fff8f3; }
.canvas-banner .canvas-node-body { gap:10px; }
.canvas-banner-spec { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:6px; padding:11px 12px; border:1px solid #f0ded1; border-radius:8px; background:#fffaf5; }
.canvas-banner-spec strong { color:#754a2e; font-size:12px; }
.canvas-banner-spec span { color:#a3653d; font-size:11px; }
.canvas-banner-spec small { flex-basis:100%; color:#a99a8d; font-size:10px; }
.canvas-banner .canvas-node-body > label { position:relative; }
.canvas-field-required { position:absolute; right:0; top:0; color:#bd6970; font-size:10px; }
.canvas-banner .canvas-node-body textarea { min-height:72px; }
.canvas-banner-reference-label { color:#90949c; font-size:11px; }
.canvas-banner .canvas-node-actions { padding:6px 0; }
.canvas-banner .canvas-node-result .agent-image-preview img { max-height:none; }
.canvas-banner-colors { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:10px; border:1px solid #eee8e1; border-radius:8px; background:#fffcf9; }
.canvas-banner-colors label { min-width:0; display:flex; flex-direction:column; gap:6px; color:#90949c; font-size:11px; }
.canvas-banner [hidden] { display:none !important; }
.canvas-banner-color-picker,.canvas-banner-scale { display:flex; gap:8px; align-items:center; }
.canvas-banner-color-picker input[type="color"] { width:42px; height:34px; flex-shrink:0; padding:2px; cursor:pointer; }
.canvas-banner-color-picker output,.canvas-banner-scale output { color:#777; font-size:11px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.canvas-banner-scale input[type="range"] { flex:1; min-width:0; padding:8px 0; accent-color:var(--red); }

/* Long node forms retain their controls inside native disclosure sections. */
.canvas-surface .drawflow-node.canvas-banner { width:368px; }
.canvas-surface .drawflow-node.canvas-local_text,.canvas-surface .drawflow-node.canvas-liblib_text { width:400px; }
.canvas-local_text .canvas-node-heading,.canvas-liblib_text .canvas-node-heading,.canvas-banner .canvas-node-heading { background:#fafbfc; }
.canvas-local_text .canvas-node-body,.canvas-liblib_text .canvas-node-body { max-height:clamp(220px,calc(100dvh - 160px),620px); }
.canvas-text .canvas-node-symbol,.canvas-template .canvas-node-symbol,.canvas-merge .canvas-node-symbol { color:#8193ae; }
.canvas-image .canvas-node-symbol,.canvas-local_text .canvas-node-symbol,.canvas-liblib_text .canvas-node-symbol { color:#9a8eac; }
.canvas-banner .canvas-node-symbol { color:#a8987c; }.canvas-edit .canvas-node-symbol,.canvas-cutout .canvas-node-symbol,.canvas-resize .canvas-node-symbol { color:#85a099; }
.local-text-flow { display:none; }
.local-text-section.canvas-parameter-section { display:block; padding:0; gap:0; border:0; border-top:1px solid #e8ecf1; border-radius:0; }
.canvas-parameter-section>summary { display:flex; justify-content:space-between; align-items:center; list-style:none; padding:11px 1px; color:#707b8b; font-size:11px; font-weight:500; cursor:pointer; }
.canvas-parameter-section>summary::-webkit-details-marker { display:none; }.canvas-parameter-section>summary::after { content:'›'; color:#a4acb9; font-size:16px; transform:rotate(0); }.canvas-parameter-section[open]>summary::after { transform:rotate(90deg); }
.canvas-parameter-fields { display:flex; flex-direction:column; gap:10px; padding-bottom:12px; }.canvas-parameter-section:not([open])>.canvas-parameter-fields { display:none; }
.canvas-workspace .local-text-section label { font-size:10px; }.canvas-workspace .local-text-section textarea { min-height:62px; }.canvas-workspace .local-text-section input,.canvas-workspace .local-text-section select { font-size:11px; border-radius:4px; }
.canvas-workspace .liblib-lora-preview-link img { height:148px; }.canvas-workspace .local-text-notice { padding:9px; border-radius:5px; background:#faf9f5; border-color:#ebe7dc; }.canvas-workspace .local-text-notice strong { font-size:11px; }.canvas-workspace .local-text-notice span { font-size:10px; }
.canvas-workspace .local-text-actions { bottom:-12px; padding:8px 0; }.canvas-workspace .local-model-refresh { padding:6px 8px; border-radius:4px; font-size:10px; background:#f7f8fa; color:#8d97a6; border-color:#e4e7ed; }
.canvas-workspace .canvas-banner-spec,.canvas-workspace .canvas-banner-colors,.canvas-workspace .canvas-text-region { border-color:#e6e9ee; border-radius:5px; background:#fafbfc; }
.canvas-workspace .canvas-banner-spec strong { color:#767f8d; }.canvas-workspace .canvas-banner-spec span { color:#9299a4; }.canvas-workspace .canvas-banner-spec small { color:#a3a9b3; }
@media(max-width:1250px) { .canvas-stage.library-open { --canvas-library-space:224px; grid-template-columns:224px minmax(0,1fr); }.canvas-save-status { display:none; }.canvas-board-title { width:180px; }.canvas-graph-summary { display:none; } }
@media(max-width:1050px) { .canvas-stage.library-open { --canvas-library-space:0px; grid-template-columns:minmax(0,1fr); }.library-open .canvas-surface { grid-column:1; }.canvas-node-library { position:absolute; left:0; top:0; bottom:0; width:244px; box-shadow:4px 0 18px #24324712; }.canvas-board-title { width:140px; }.canvas-toolbar { padding:0 12px; gap:8px; }.canvas-shortcuts { display:none; } }
@media(max-width:760px) { .canvas-page .topbar { display:flex; height:48px; flex:0 0 48px; padding:9px 16px; border-bottom:1px solid #eee; }.canvas-page .topbar-account { position:static; margin-left:auto; transform:none; width:auto; font-size:12px; }.canvas-page .topbar .top-nav { display:none; }.canvas-page .topbar-account .avatar { width:24px; height:24px; }.canvas-page .main { width:100%; margin-left:0; }.canvas-toolbar { flex-basis:48px; height:48px; padding:0 8px; gap:4px; }.canvas-board-title { width:100px; min-width:60px; flex:1; font-size:12px; }.canvas-library-toggle>span,.canvas-toolbar-divider { display:none; }.canvas-toolbar .canvas-library-toggle { width:32px; padding:5px; }.canvas-file-controls { gap:4px; }.canvas-toolbar .canvas-primary { font-size:11px; padding:6px 8px; }.canvas-stage { min-height:250px; }.canvas-bottom { left:10px; right:10px; bottom:12px; }.canvas-empty h2 { font-size:14px; }.canvas-empty p { font-size:11px; }.canvas-node-tools button { opacity:1!important; } }
@media(prefers-reduced-motion:reduce) { .canvas-workspace * { transition:none!important; animation:none!important; } }
.canvas-archive-badge { flex-shrink:0; padding:2px 5px; border:1px solid #dfd7c8; border-radius:4px; color:#9a8664; background:#faf8f3; font-size:9px; font-weight:400; }
.canvas-surface .drawflow-node.is-archived { border-style:dashed; border-color:#c5c7cc; }
.canvas-workspace .drawflow-node.is-archived [data-archived-control] { opacity:.75; cursor:not-allowed; }
.canvas-workspace .drawflow-node.is-archived .canvas-node-status,.canvas-workspace .drawflow-node.is-archived .canvas-brief-status { color:#9a8664; }
/* Drawflow's global svg rule is intended for connections, not node UI icons. */
.canvas-surface .drawflow-node svg { position:static; z-index:auto; overflow:hidden!important; }
.canvas-node-symbol { display:flex; align-items:center; justify-content:center; flex:0 0 20px; width:20px; height:20px; line-height:0; }
.canvas-node-tools button { display:flex; align-items:center; justify-content:center; }
.canvas-toolbar { height:auto; min-height:56px; flex:0 0 auto; flex-wrap:wrap; padding:8px 16px; }
.canvas-primary-tools { display:flex; align-items:center; flex-wrap:wrap; gap:6px; flex:1 1 620px; min-width:0; }
.canvas-primary-tools .canvas-board-select { width:180px; min-height:32px; padding:6px 8px; font-size:12px; }
.canvas-primary-tools>.canvas-toolbar-divider { margin:0 4px; }
.canvas-board-name { display:flex; align-items:center; gap:6px; min-width:0; max-width:100%; color:#7b818c; font-size:11px; white-space:nowrap; }
.canvas-board-name .canvas-board-title { width:160px; min-width:60px; min-height:32px; border-color:#e1e3e7; font-size:12px; font-weight:500; }
.liblib-configure-button { align-self:flex-start; padding:6px 10px; margin-top:3px; border:1px solid #dce1e8; border-radius:4px; color:#677b88; background:#fff; font-size:11px; }
.liblib-credentials-dialog { width:min(460px,calc(100vw - 32px)); max-height:calc(100dvh - 36px); overflow:auto; border:1px solid #e1e5eb; border-radius:12px; padding:26px; color:#424b59; background:#fff; }
.liblib-credentials-dialog::backdrop { background:#19223565; backdrop-filter:blur(4px); }
.liblib-credentials-form { display:flex; flex-direction:column; gap:18px; }
.liblib-credentials-form header { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.liblib-credentials-form header span { font-size:10px; color:#a3aab4; letter-spacing:1.5px; }
.liblib-credentials-form h2 { margin:8px 0 0; font-size:20px; font-weight:600; }
.liblib-credentials-form header>button { color:#9ca3af; font-size:24px; padding:0; }
.liblib-credentials-form p { margin:0; font-size:12px; line-height:1.8; color:#8e97a5; }
.liblib-credentials-form label { display:flex; flex-direction:column; gap:8px; font-size:12px; }
.liblib-credentials-form input { width:100%; padding:11px 12px; border:1px solid #dfe4eb; border-radius:6px; background:#fafbfc; font-size:13px; }
.liblib-credentials-form small { color:#a0a7b2; font-size:10px; line-height:1.8; }
.liblib-credentials-form footer { display:flex; align-items:center; gap:8px; }
.liblib-credentials-form footer>span { flex:1; }.liblib-credentials-form footer button { border:1px solid #e0e4ea; border-radius:5px; padding:8px 10px; font-size:12px; }
.liblib-credentials-form footer button[type=submit] { background:#dc222f; color:#fff; border-color:#dc222f; }
.liblib-credentials-form [data-credentials-remove] { color:#ac6973; font-size:10px; }.liblib-credentials-form .liblib-credentials-status { color:#b14f5d; }
@media(max-width:1050px){.canvas-primary-tools .canvas-board-select{width:145px}.canvas-toolbar{padding:8px 10px;gap:8px}.canvas-file-controls{margin-left:auto}}
@media(max-width:760px){.canvas-primary-tools{flex-basis:calc(100% - 50px)}.canvas-primary-tools .canvas-board-select{width:130px}.canvas-primary-tools button{font-size:11px;padding:6px 8px}.canvas-file-controls{width:100%;justify-content:flex-end}.canvas-board-name .canvas-board-title{width:130px}.canvas-component-link{margin-right:auto}}
