*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px}:root{--bg-base: #1e1e1e;--bg-surface: #252526;--bg-input: #3c3c3c;--border: #3c3c3c;--text: #cccccc;--text-muted: #888888;--accent: #0078d4;--accent-hover: #106ebe;--danger: #f44747;--success: #4ec9b0}:root[data-theme=light]{--bg-base: #ffffff;--bg-surface: #f3f3f3;--bg-input: #ffffff;--border: #d4d4d4;--text: #1e1e1e;--text-muted: #6e6e6e;--accent: #0078d4;--accent-hover: #106ebe;--danger: #e51400;--success: #008000}button{cursor:pointer;font-size:12px;font-family:inherit;border:1px solid var(--border);background:var(--bg-surface);color:var(--text);padding:4px 10px;border-radius:2px;line-height:1.4;transition:background .1s}button:hover:not(:disabled){background:var(--bg-input)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}input[type=text],input[type=password]{font-size:13px;font-family:inherit;background:var(--bg-input);border:1px solid var(--border);color:var(--text);padding:6px 10px;border-radius:2px;outline:none;width:100%}input[type=text]:focus,input[type=password]:focus{border-color:var(--accent)}select{font-size:12px;font-family:inherit;background:var(--bg-surface);border:1px solid var(--border);color:var(--text);padding:3px 6px;border-radius:2px;outline:none;cursor:pointer}textarea{font-size:13px;font-family:inherit;background:var(--bg-input);border:1px solid var(--border);color:var(--text);padding:6px 10px;border-radius:2px;outline:none;resize:vertical}textarea:focus{border-color:var(--accent)}.editor-container[data-v-1cbcb014]{width:100%;height:100%}.form-row[data-v-d90f5c06]{display:grid;grid-template-columns:200px 1fr;gap:12px;align-items:center;padding:5px 0}.form-label[data-v-d90f5c06]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);justify-self:end;text-align:right}.help[data-v-d90f5c06]{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:var(--border);color:var(--text);font-size:10px;cursor:help;flex-shrink:0}.form-control[data-v-d90f5c06]{display:flex;align-items:center;gap:8px}.readonly .form-control[data-v-d90f5c06] input,.readonly .form-control[data-v-d90f5c06] select{opacity:.6;pointer-events:none}.readonly-badge[data-v-d90f5c06]{font-size:10px;color:var(--text-muted);border:1px solid var(--border);border-radius:3px;padding:1px 5px}.form-section[data-v-25a82e93]{max-width:760px}h2[data-v-25a82e93]{font-size:16px;margin:0 0 4px}.section-hint[data-v-25a82e93]{margin:0 0 16px;font-size:12px;color:var(--text-muted)}input[data-v-25a82e93],textarea[data-v-25a82e93]{width:100%}textarea[data-v-25a82e93]{resize:vertical;font-family:inherit}[data-v-25a82e93] .desc-row.form-row{align-items:flex-start}[data-v-25a82e93] .desc-row .form-label{padding-top:6px}.form-section[data-v-87457821]{max-width:720px}h2[data-v-87457821]{font-size:16px;margin:0 0 4px}.section-hint[data-v-87457821]{margin:0 0 16px;font-size:12px;color:var(--text-muted)}.manual-grid[data-v-87457821]{display:grid;grid-template-columns:100px 60px 160px 100px;gap:6px 12px;align-items:center}.grid-head[data-v-87457821]{font-size:11px;color:var(--text-muted);font-weight:600;padding-bottom:4px;border-bottom:1px solid var(--border)}.slot-label[data-v-87457821]{font-weight:600;font-size:13px}.checkbox-cell[data-v-87457821]{display:flex;justify-content:center}.source-select[data-v-87457821]{width:100%}.tone-input[data-v-87457821]{width:70px}.empty-cell[data-v-87457821]{color:var(--text-muted);font-size:12px}.form-section[data-v-77784723]{max-width:900px}h2[data-v-77784723]{font-size:16px;margin:0 0 4px}.section-hint[data-v-77784723]{margin:0 0 16px;font-size:12px;color:var(--text-muted)}.empty-state[data-v-77784723]{text-align:center;padding:24px;color:var(--text-muted);border:1px dashed var(--border);border-radius:4px;margin-bottom:12px}.division-card[data-v-77784723]{background:var(--bg-base);border:1px solid var(--border);border-radius:4px;margin-bottom:12px;overflow:hidden}.division-header[data-v-77784723]{display:flex;align-items:center;gap:8px;background:var(--bg-surface);padding:8px 12px;border-bottom:1px solid var(--border)}.division-name[data-v-77784723]{flex:1;font-weight:600}.division-name-locked[data-v-77784723]{flex:1;font-weight:600;color:var(--text-muted);font-style:italic;-webkit-user-select:none;user-select:none}.division-body[data-v-77784723]{padding:10px 12px}.unified-list[data-v-77784723]{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.list-row[data-v-77784723]{display:flex;align-items:center;gap:6px;min-height:28px}.stop-num-input[data-v-77784723]{width:36px;min-width:36px;flex-shrink:0;font-size:10px;text-align:center;padding:1px 3px}.item-badge[data-v-77784723]{font-size:10px;font-weight:700;min-width:20px;text-align:center;flex-shrink:0;border-radius:2px;padding:1px 3px}.coupler-badge[data-v-77784723]{color:var(--accent);border:1px solid var(--accent)}.tremulant-badge[data-v-77784723]{color:var(--text-muted);border:1px solid var(--border)}.stop-input[data-v-77784723]{flex:1;min-width:0}.coupler-row[data-v-77784723]{flex-wrap:wrap;align-items:center}.coupler-fields[data-v-77784723]{display:flex;align-items:center;gap:4px;flex:1;min-width:0;flex-wrap:wrap}.coupler-fields select[data-v-77784723]{flex:1;min-width:80px}.coupler-name[data-v-77784723]{flex:1;min-width:120px}.inline-label[data-v-77784723]{font-size:10px;color:var(--text-muted);white-space:nowrap}.id-input[data-v-77784723]{width:60px}.coupler-to[data-v-77784723]{font-size:12px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.tremulant-row[data-v-77784723]{gap:6px}.trem-format[data-v-77784723]{flex:1;min-width:80px}.empty-sub[data-v-77784723]{font-size:11px;color:var(--text-muted);padding:4px 0}.item-add-row[data-v-77784723]{display:flex;gap:8px;margin-top:4px}.icon-btn[data-v-77784723]{padding:2px 7px;font-size:12px;line-height:1.4}.icon-btn.danger[data-v-77784723]:hover{border-color:var(--danger);color:var(--danger)}.add-row[data-v-77784723]{margin-top:4px}.add-btn[data-v-77784723]{font-size:12px}.stop-multiselect[data-v-71a395d4]{display:flex;flex-direction:column;gap:6px}.chips[data-v-71a395d4]{display:flex;flex-wrap:wrap;gap:4px}.chip[data-v-71a395d4]{display:inline-flex;align-items:center;gap:4px;font-size:11px;background:var(--bg-base);border:1px solid var(--border);border-radius:10px;padding:1px 4px 1px 8px}.chip-x[data-v-71a395d4]{border:none;background:transparent;color:var(--text-muted);font-size:10px;padding:0 2px;cursor:pointer}.chip-x[data-v-71a395d4]:hover{color:var(--danger)}.add-row[data-v-71a395d4]{display:flex;gap:6px;align-items:center}.mini[data-v-71a395d4]{width:60px}.empty-sub[data-v-71a395d4]{font-size:12px;color:var(--text-muted);margin:0}.icon-btn[data-v-71a395d4]{padding:2px 7px;font-size:12px}.assignment-editor[data-v-b6df70b0]{margin-top:8px}.figures-head[data-v-b6df70b0]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.figures-title[data-v-b6df70b0]{font-size:11px;font-weight:600;color:var(--text-muted)}.level[data-v-b6df70b0]{border:1px solid var(--border);border-radius:3px;padding:6px 8px;margin-bottom:6px}.level-head[data-v-b6df70b0]{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:6px}.field-group[data-v-b6df70b0]{display:flex;flex-direction:column;gap:3px}.field-group.narrow[data-v-b6df70b0]{max-width:90px}.field-group label[data-v-b6df70b0]{font-size:10px;color:var(--text-muted)}.field-group input[data-v-b6df70b0]{width:100%}.empty-sub[data-v-b6df70b0]{font-size:12px;color:var(--text-muted);margin:0 0 6px}.icon-btn[data-v-b6df70b0]{padding:2px 7px;font-size:12px}.icon-btn.danger[data-v-b6df70b0]:hover{border-color:var(--danger);color:var(--danger)}.form-section[data-v-dbae955a]{max-width:860px}h2[data-v-dbae955a]{font-size:16px;margin:0 0 4px}.section-hint[data-v-dbae955a]{margin:0 0 16px;font-size:12px;color:var(--text-muted)}.module-block[data-v-dbae955a]{border:1px solid var(--border);border-radius:4px;padding:12px 14px;margin-bottom:12px;background:var(--bg-base)}.block-header[data-v-dbae955a]{display:flex;align-items:center;justify-content:space-between}h3[data-v-dbae955a]{font-size:13px;margin:0 0 8px}.count[data-v-dbae955a]{color:var(--text-muted);font-weight:400}.block-note[data-v-dbae955a]{font-size:12px;color:var(--text-muted);margin:0}.row[data-v-dbae955a]{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}.field-group[data-v-dbae955a]{display:flex;flex-direction:column;gap:3px}.field-group.wide[data-v-dbae955a]{min-width:220px}.field-group label[data-v-dbae955a]{font-size:10px;color:var(--text-muted)}.instance-row[data-v-dbae955a]{display:flex;align-items:flex-end;gap:10px;padding:6px 0}.instance-row.wrap[data-v-dbae955a]{flex-wrap:wrap}.field-group.narrow[data-v-dbae955a]{max-width:84px}.field-group.narrow input[data-v-dbae955a]{width:100%}.check-inline[data-v-dbae955a]{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted);align-self:center;white-space:nowrap}.instance-card[data-v-dbae955a]{border:1px solid var(--border);border-radius:3px;padding:8px 10px;margin:8px 0;background:var(--bg-surface)}.instance-head[data-v-dbae955a]{display:flex;align-items:flex-end;gap:10px}.check-row[data-v-dbae955a]{margin-top:8px}.fc-stops[data-v-dbae955a]{margin-top:8px;display:flex;flex-direction:column;gap:4px}.mode-radio[data-v-dbae955a]{display:flex;gap:14px}.radio-inline[data-v-dbae955a]{display:flex;align-items:center;gap:4px;font-size:12px}.idx[data-v-dbae955a]{font-size:11px;font-weight:700;color:var(--accent);align-self:center;min-width:16px}.meta[data-v-dbae955a]{font-size:11px;color:var(--text-muted);align-self:center}.empty-sub[data-v-dbae955a]{font-size:12px;color:var(--text-muted);padding:4px 0}.icon-btn[data-v-dbae955a]{padding:2px 7px;font-size:12px}.icon-btn.danger[data-v-dbae955a]:hover{border-color:var(--danger);color:var(--danger)}.custom-banner[data-v-dbae955a]{font-size:12px;color:var(--text-muted);background:var(--bg-surface);padding:8px 10px;border-radius:3px;border:1px dashed var(--border)}.figures-head[data-v-dbae955a]{display:flex;align-items:center;justify-content:space-between;margin-top:10px;margin-bottom:4px}.figures-title[data-v-dbae955a]{font-size:11px;font-weight:600;color:var(--text-muted)}.figures-grid[data-v-dbae955a]{display:grid;grid-template-columns:70px 70px 28px;gap:4px 6px;align-items:center}.figures-grid.group-grid[data-v-dbae955a]{grid-template-columns:80px 96px 28px 28px}.section-hint.sub[data-v-dbae955a]{margin:0 0 10px}.head-actions[data-v-dbae955a]{display:flex;gap:6px}.fig-head[data-v-dbae955a]{font-size:10px;color:var(--text-muted)}.fig-input[data-v-dbae955a]{width:100%}.matrix-wrap[data-v-e173c33a]{display:flex;flex-direction:column;gap:12px}.backdrop[data-v-e173c33a]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10}.matrix[data-v-e173c33a]{display:grid;gap:4px;align-items:stretch}.corner[data-v-e173c33a]{grid-row:1;grid-column:1}.line-header[data-v-e173c33a]{grid-row:1;text-align:center;font-size:12px;font-weight:600;color:var(--text-muted);padding:2px 0;align-self:end}.unplaced-header[data-v-e173c33a]{font-weight:500;font-style:italic}.addr-label[data-v-e173c33a]{display:flex;align-items:center;justify-content:flex-end;padding-right:6px;font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.unplaced-col[data-v-e173c33a]{grid-column:-2;grid-row:2 / -1;display:flex;flex-direction:column;gap:4px;align-items:stretch}.unplaced-col .cell-wrap[data-v-e173c33a]{height:42px}.cell-wrap[data-v-e173c33a]{position:relative}.cell[data-v-e173c33a]{width:100%;height:42px;border-radius:4px;display:flex;align-items:center;justify-content:center;overflow:hidden}.cell.occupied[data-v-e173c33a]{background:var(--bg-surface);border:1px solid var(--border);cursor:grab;padding:0 4px 0 8px;gap:4px}.cell.occupied[data-v-e173c33a]:hover{background:var(--bg-input)}.cell.occupied.selected[data-v-e173c33a]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--bg-surface))}.cell.occupied.invalid[data-v-e173c33a]{border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}.chip-text[data-v-e173c33a]{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.chip-label[data-v-e173c33a]{font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-sub[data-v-e173c33a]{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.more-btn[data-v-e173c33a]{flex:0 0 auto;border:none;background:transparent;color:var(--text-muted);font-size:13px;line-height:1;padding:2px 4px;border-radius:3px;cursor:pointer;opacity:0}.cell.occupied:hover .more-btn[data-v-e173c33a],.cell.occupied.selected .more-btn[data-v-e173c33a]{opacity:1}.more-btn[data-v-e173c33a]:hover{background:var(--bg-surface);color:var(--text)}.cell.empty[data-v-e173c33a]{border:1px dashed color-mix(in srgb,var(--border) 60%,transparent);background:transparent;color:transparent;cursor:pointer;padding:0;font:inherit}.cell.empty[data-v-e173c33a]:hover{border-color:var(--border);color:var(--text-muted)}.cell.empty .plus[data-v-e173c33a]{font-size:13px}.cell.empty.drop-target[data-v-e173c33a]{border-color:var(--border)}.cell.empty.drag-over[data-v-e173c33a]{border-style:solid;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.popover[data-v-e173c33a]{position:absolute;top:calc(100% + 2px);left:0;z-index:11;min-width:180px;background:var(--bg-base);border:1px solid var(--border);border-radius:4px;box-shadow:0 4px 14px #00000040;display:flex;flex-direction:column;padding:4px}.popover.up[data-v-e173c33a]{top:auto;bottom:calc(100% + 2px)}.popover.picker[data-v-e173c33a]{max-height:280px;overflow-y:auto}.popover button[data-v-e173c33a]{border:none;background:transparent;color:var(--text);font-size:12px;text-align:left;padding:5px 8px;border-radius:3px;cursor:pointer;white-space:nowrap}.popover button[data-v-e173c33a]:hover{background:var(--bg-surface)}.popover button.danger[data-v-e173c33a]:hover{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}.picker-title[data-v-e173c33a]{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:4px 8px 2px}.ob-root[data-v-429fa15a]{display:flex;flex-direction:column;gap:6px;width:fit-content}.ob-grid[data-v-429fa15a]{display:flex;border:1px solid var(--border);border-radius:4px;overflow-x:auto;background:var(--bg-base)}.ruler[data-v-429fa15a]{position:relative;flex-shrink:0;width:34px;border-right:1px solid var(--border);background:var(--bg-surface);box-sizing:border-box}.ruler-band[data-v-429fa15a]{position:absolute;left:0;right:0;pointer-events:none}.ruler-band.even[data-v-429fa15a]{background:color-mix(in srgb,var(--bg-input) 60%,transparent)}.rtick[data-v-429fa15a]{position:absolute;left:0;right:2px;font-size:9px;line-height:1;color:var(--text-muted);text-align:right;transform:translateY(-50%);-webkit-user-select:none;user-select:none;pointer-events:none}.cols-area[data-v-429fa15a]{position:relative;flex-shrink:0}.band[data-v-429fa15a]{position:absolute;left:0;right:0;pointer-events:none}.band.even[data-v-429fa15a]{background:color-mix(in srgb,var(--bg-surface) 50%,transparent)}.row-lines[data-v-429fa15a]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.row-line[data-v-429fa15a]{position:absolute;left:0;right:0;height:1px;background:color-mix(in srgb,var(--border) 30%,transparent)}.empty-hint[data-v-429fa15a]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-muted);pointer-events:none}.block[data-v-429fa15a]{position:absolute;border-radius:3px;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:0 1px 4px #0006;transition:box-shadow .1s;box-sizing:border-box}.block[data-v-429fa15a]:hover{box-shadow:0 2px 8px #0000008c}.block.selected[data-v-429fa15a]{outline:2px solid rgba(255,255,255,.8);outline-offset:-1px;box-shadow:0 3px 10px #0000008c}.block.dragging[data-v-429fa15a]{cursor:grabbing;opacity:.88;box-shadow:0 6px 18px #0009;z-index:20}.block.resizing[data-v-429fa15a]{opacity:.88;z-index:20}.bslots[data-v-429fa15a]{display:flex;flex-direction:column;overflow:hidden}.bslot[data-v-429fa15a]{display:flex;align-items:center;gap:4px;height:18px;padding:0 5px;border-top:1px solid rgba(255,255,255,.06);overflow:hidden;flex-shrink:0}.bslot-first[data-v-429fa15a]{background:#00000038}.bslot-idx[data-v-429fa15a]{font-size:11px;color:#ffffffa6;min-width:22px;text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}.bslot-txt[data-v-429fa15a]{font-size:11px;color:#ffffffe0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.btype-tag[data-v-429fa15a]{flex-shrink:0;font-size:10px;color:#ffffff8c;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.resizer[data-v-429fa15a]{position:absolute;bottom:0;left:0;right:0;height:8px;cursor:ns-resize;display:flex;align-items:flex-end;justify-content:center;padding-bottom:2px}.resizer[data-v-429fa15a]:after{content:"";display:block;width:30%;height:3px;border-top:2px solid rgba(255,255,255,.35);border-bottom:2px solid rgba(255,255,255,.35);border-radius:1px}.resizer[data-v-429fa15a]:hover:after{border-color:#fffc}.ob-toolbar[data-v-429fa15a]{display:flex;align-items:center;gap:8px}.ob-count[data-v-429fa15a]{font-size:11px;color:var(--text-muted)}.fgrp[data-v-429fa15a]{display:flex;flex-direction:column;gap:3px}.fgrp.wide[data-v-429fa15a]{min-width:160px}.fgrp label[data-v-429fa15a]{font-size:10px;color:var(--text-muted)}.ep-backdrop[data-v-429fa15a]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.ep-dialog[data-v-429fa15a]{background:var(--bg-panel, #1e1e1e);border:1px solid var(--border);border-radius:6px;min-width:340px;max-width:520px;width:max-content;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column}.ep-header[data-v-429fa15a]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.ep-close[data-v-429fa15a]{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:14px;padding:2px 4px;border-radius:3px;line-height:1}.ep-close[data-v-429fa15a]:hover{background:var(--bg-hover, #333);color:var(--text)}.ep-body[data-v-429fa15a]{display:flex;flex-wrap:wrap;gap:12px;padding:14px 12px}.ep-footer[data-v-429fa15a]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--border)}.fgrp.full[data-v-429fa15a]{width:100%}.fhint[data-v-429fa15a]{font-size:10px;color:var(--text-muted);font-style:italic}.ob-root[data-v-f5a66e6f]{display:flex;flex-direction:column;gap:6px;width:fit-content}.ob-grid[data-v-f5a66e6f]{display:flex;border:1px solid var(--border);border-radius:4px;overflow-x:auto;background:var(--bg-base)}.ruler[data-v-f5a66e6f]{position:relative;flex-shrink:0;width:34px;border-right:1px solid var(--border);background:var(--bg-surface);box-sizing:border-box}.ruler-band[data-v-f5a66e6f]{position:absolute;left:0;right:0;pointer-events:none}.ruler-band.even[data-v-f5a66e6f]{background:color-mix(in srgb,var(--bg-input) 60%,transparent)}.rtick[data-v-f5a66e6f]{position:absolute;left:0;right:2px;font-size:9px;line-height:1;color:var(--text-muted);text-align:right;transform:translateY(-50%);-webkit-user-select:none;user-select:none;pointer-events:none}.cols-area[data-v-f5a66e6f]{position:relative;flex-shrink:0}.band[data-v-f5a66e6f]{position:absolute;left:0;right:0;pointer-events:none}.band.even[data-v-f5a66e6f]{background:color-mix(in srgb,var(--bg-surface) 50%,transparent)}.row-lines[data-v-f5a66e6f]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.row-line[data-v-f5a66e6f]{position:absolute;left:0;right:0;height:1px;background:color-mix(in srgb,var(--border) 30%,transparent)}.empty-hint[data-v-f5a66e6f]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-muted);pointer-events:none}.block[data-v-f5a66e6f]{position:absolute;border-radius:3px;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:0 1px 4px #0006;transition:box-shadow .1s;box-sizing:border-box}.block[data-v-f5a66e6f]:hover{box-shadow:0 2px 8px #0000008c}.block.selected[data-v-f5a66e6f]{outline:2px solid rgba(255,255,255,.8);outline-offset:-1px;box-shadow:0 3px 10px #0000008c}.block.dragging[data-v-f5a66e6f]{cursor:grabbing;opacity:.88;box-shadow:0 6px 18px #0009;z-index:20}.block.resizing[data-v-f5a66e6f]{opacity:.88;z-index:20}.bslots[data-v-f5a66e6f]{display:flex;flex-direction:column;overflow:hidden}.bslot[data-v-f5a66e6f]{display:flex;align-items:center;gap:4px;height:18px;padding:0 5px;border-top:1px solid rgba(255,255,255,.06);overflow:hidden;flex-shrink:0}.bslot-first[data-v-f5a66e6f]{background:#00000038}.bslot-idx[data-v-f5a66e6f]{font-size:11px;color:#ffffffa6;min-width:22px;text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}.bslot-txt[data-v-f5a66e6f]{font-size:11px;color:#ffffffe0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.btype-tag[data-v-f5a66e6f]{flex-shrink:0;font-size:10px;color:#ffffff8c;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.resizer[data-v-f5a66e6f]{position:absolute;bottom:0;left:0;right:0;height:8px;cursor:ns-resize;display:flex;align-items:flex-end;justify-content:center;padding-bottom:2px}.resizer[data-v-f5a66e6f]:after{content:"";display:block;width:30%;height:3px;border-top:2px solid rgba(255,255,255,.35);border-bottom:2px solid rgba(255,255,255,.35);border-radius:1px}.resizer[data-v-f5a66e6f]:hover:after{border-color:#fffc}.ob-toolbar[data-v-f5a66e6f]{display:flex;align-items:center;gap:8px}.ob-count[data-v-f5a66e6f]{font-size:11px;color:var(--text-muted)}.fgrp[data-v-f5a66e6f]{display:flex;flex-direction:column;gap:3px}.fgrp.wide[data-v-f5a66e6f]{min-width:160px}.fgrp label[data-v-f5a66e6f]{font-size:10px;color:var(--text-muted)}.ep-backdrop[data-v-f5a66e6f]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.ep-dialog[data-v-f5a66e6f]{background:var(--bg-panel, #1e1e1e);border:1px solid var(--border);border-radius:6px;min-width:340px;max-width:520px;width:max-content;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column}.ep-header[data-v-f5a66e6f]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.ep-close[data-v-f5a66e6f]{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:14px;padding:2px 4px;border-radius:3px;line-height:1}.ep-close[data-v-f5a66e6f]:hover{background:var(--bg-hover, #333);color:var(--text)}.ep-body[data-v-f5a66e6f]{display:flex;flex-wrap:wrap;gap:12px;padding:14px 12px}.ep-footer[data-v-f5a66e6f]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--border)}.fgrp.full[data-v-f5a66e6f]{width:100%}.fhint[data-v-f5a66e6f]{font-size:10px;color:var(--text-muted);font-style:italic}.ob-root[data-v-aff8c9c0]{display:flex;flex-direction:column;gap:6px;width:fit-content}.ob-grid[data-v-aff8c9c0]{display:flex;border:1px solid var(--border);border-radius:4px;overflow-x:auto;background:var(--bg-base)}.ruler[data-v-aff8c9c0]{position:relative;flex-shrink:0;width:34px;border-right:1px solid var(--border);background:var(--bg-surface);box-sizing:border-box}.ruler-band[data-v-aff8c9c0]{position:absolute;left:0;right:0;pointer-events:none}.ruler-band.even[data-v-aff8c9c0]{background:color-mix(in srgb,var(--bg-input) 60%,transparent)}.rtick[data-v-aff8c9c0]{position:absolute;left:0;right:2px;font-size:9px;line-height:1;color:var(--text-muted);text-align:right;transform:translateY(-50%);-webkit-user-select:none;user-select:none;pointer-events:none}.cols-area[data-v-aff8c9c0]{position:relative;flex-shrink:0}.band[data-v-aff8c9c0]{position:absolute;left:0;right:0;pointer-events:none}.band.even[data-v-aff8c9c0]{background:color-mix(in srgb,var(--bg-surface) 50%,transparent)}.row-lines[data-v-aff8c9c0]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.row-line[data-v-aff8c9c0]{position:absolute;left:0;right:0;height:1px;background:color-mix(in srgb,var(--border) 30%,transparent)}.empty-hint[data-v-aff8c9c0]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-muted);pointer-events:none}.block[data-v-aff8c9c0]{position:absolute;border-radius:3px;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:0 1px 4px #0006;transition:box-shadow .1s;box-sizing:border-box}.block[data-v-aff8c9c0]:hover{box-shadow:0 2px 8px #0000008c}.block.selected[data-v-aff8c9c0]{outline:2px solid rgba(255,255,255,.8);outline-offset:-1px;box-shadow:0 3px 10px #0000008c}.block.dragging[data-v-aff8c9c0]{cursor:grabbing;opacity:.88;box-shadow:0 6px 18px #0009;z-index:20}.block.resizing[data-v-aff8c9c0]{opacity:.88;z-index:20}.bslots[data-v-aff8c9c0]{display:flex;flex-direction:column;overflow:hidden}.bslot[data-v-aff8c9c0]{display:flex;align-items:center;gap:4px;height:18px;padding:0 5px;border-top:1px solid rgba(255,255,255,.06);overflow:hidden;flex-shrink:0}.bslot-first[data-v-aff8c9c0]{background:#00000038}.bslot-idx[data-v-aff8c9c0]{font-size:11px;color:#ffffffa6;min-width:22px;text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}.bslot-txt[data-v-aff8c9c0]{font-size:11px;color:#ffffffe0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.btype-tag[data-v-aff8c9c0]{flex-shrink:0;font-size:10px;color:#ffffff8c;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.resizer[data-v-aff8c9c0]{position:absolute;bottom:0;left:0;right:0;height:8px;cursor:ns-resize;display:flex;align-items:flex-end;justify-content:center;padding-bottom:2px}.resizer[data-v-aff8c9c0]:after{content:"";display:block;width:30%;height:3px;border-top:2px solid rgba(255,255,255,.35);border-bottom:2px solid rgba(255,255,255,.35);border-radius:1px}.resizer[data-v-aff8c9c0]:hover:after{border-color:#fffc}.ob-toolbar[data-v-aff8c9c0]{display:flex;align-items:center;gap:8px}.ob-count[data-v-aff8c9c0]{font-size:11px;color:var(--text-muted)}.fgrp[data-v-aff8c9c0]{display:flex;flex-direction:column;gap:3px}.fgrp.wide[data-v-aff8c9c0]{min-width:160px}.fgrp label[data-v-aff8c9c0]{font-size:10px;color:var(--text-muted)}.ep-backdrop[data-v-aff8c9c0]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.ep-dialog[data-v-aff8c9c0]{background:var(--bg-panel, #1e1e1e);border:1px solid var(--border);border-radius:6px;min-width:340px;max-width:520px;width:max-content;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column}.ep-header[data-v-aff8c9c0]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.ep-close[data-v-aff8c9c0]{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:14px;padding:2px 4px;border-radius:3px;line-height:1}.ep-close[data-v-aff8c9c0]:hover{background:var(--bg-hover, #333);color:var(--text)}.ep-body[data-v-aff8c9c0]{display:flex;flex-wrap:wrap;gap:12px;padding:14px 12px}.ep-footer[data-v-aff8c9c0]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--border)}.fgrp.full[data-v-aff8c9c0]{width:100%}.fhint[data-v-aff8c9c0]{font-size:10px;color:var(--text-muted);font-style:italic}.setter-rows[data-v-aff8c9c0]{display:flex;flex-direction:column;gap:4px;max-height:260px;overflow-y:auto;width:100%}.setter-row[data-v-aff8c9c0]{display:flex;align-items:center;gap:8px}.setter-row-idx[data-v-aff8c9c0]{min-width:24px;text-align:right;font-size:11px;color:var(--text-muted)}.setter-row select[data-v-aff8c9c0]{flex:1}.ob-root[data-v-bd57cfe8]{display:flex;flex-direction:column;gap:6px;width:fit-content}.ob-grid[data-v-bd57cfe8]{display:flex;border:1px solid var(--border);border-radius:4px;overflow-x:auto;background:var(--bg-base)}.ruler[data-v-bd57cfe8]{position:relative;flex-shrink:0;width:34px;border-right:1px solid var(--border);background:var(--bg-surface);box-sizing:border-box}.ruler-band[data-v-bd57cfe8]{position:absolute;left:0;right:0;pointer-events:none}.ruler-band.even[data-v-bd57cfe8]{background:color-mix(in srgb,var(--bg-input) 60%,transparent)}.rtick[data-v-bd57cfe8]{position:absolute;left:0;right:2px;font-size:9px;line-height:1;color:var(--text-muted);text-align:right;transform:translateY(-50%);-webkit-user-select:none;user-select:none;pointer-events:none}.cols-area[data-v-bd57cfe8]{position:relative;flex-shrink:0}.band[data-v-bd57cfe8]{position:absolute;left:0;right:0;pointer-events:none}.band.even[data-v-bd57cfe8]{background:color-mix(in srgb,var(--bg-surface) 50%,transparent)}.row-lines[data-v-bd57cfe8]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.row-line[data-v-bd57cfe8]{position:absolute;left:0;right:0;height:1px;background:color-mix(in srgb,var(--border) 30%,transparent)}.empty-hint[data-v-bd57cfe8]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-muted);pointer-events:none}.block[data-v-bd57cfe8]{position:absolute;border-radius:3px;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:0 1px 4px #0006;transition:box-shadow .1s;box-sizing:border-box}.block[data-v-bd57cfe8]:hover{box-shadow:0 2px 8px #0000008c}.block.selected[data-v-bd57cfe8]{outline:2px solid rgba(255,255,255,.8);outline-offset:-1px;box-shadow:0 3px 10px #0000008c}.block.dragging[data-v-bd57cfe8]{cursor:grabbing;opacity:.88;box-shadow:0 6px 18px #0009;z-index:20}.block.resizing[data-v-bd57cfe8]{opacity:.88;z-index:20}.bslots[data-v-bd57cfe8]{display:flex;flex-direction:column;overflow:hidden}.bslot[data-v-bd57cfe8]{display:flex;align-items:center;gap:4px;height:18px;padding:0 5px;border-top:1px solid rgba(255,255,255,.06);overflow:hidden;flex-shrink:0}.bslot-first[data-v-bd57cfe8]{background:#00000038}.bslot-idx[data-v-bd57cfe8]{font-size:11px;color:#ffffffa6;min-width:22px;text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}.bslot-txt[data-v-bd57cfe8]{font-size:11px;color:#ffffffe0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.btype-tag[data-v-bd57cfe8]{flex-shrink:0;font-size:10px;color:#ffffff8c;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.resizer[data-v-bd57cfe8]{position:absolute;bottom:0;left:0;right:0;height:8px;cursor:ns-resize;display:flex;align-items:flex-end;justify-content:center;padding-bottom:2px}.resizer[data-v-bd57cfe8]:after{content:"";display:block;width:30%;height:3px;border-top:2px solid rgba(255,255,255,.35);border-bottom:2px solid rgba(255,255,255,.35);border-radius:1px}.resizer[data-v-bd57cfe8]:hover:after{border-color:#fffc}.ob-toolbar[data-v-bd57cfe8]{display:flex;align-items:center;gap:8px}.ob-count[data-v-bd57cfe8]{font-size:11px;color:var(--text-muted)}.fgrp[data-v-bd57cfe8]{display:flex;flex-direction:column;gap:3px}.fgrp.wide[data-v-bd57cfe8]{min-width:160px}.fgrp label[data-v-bd57cfe8]{font-size:10px;color:var(--text-muted)}.ep-backdrop[data-v-bd57cfe8]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.ep-dialog[data-v-bd57cfe8]{background:var(--bg-panel, #1e1e1e);border:1px solid var(--border);border-radius:6px;min-width:340px;max-width:520px;width:max-content;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column}.ep-header[data-v-bd57cfe8]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.ep-close[data-v-bd57cfe8]{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:14px;padding:2px 4px;border-radius:3px;line-height:1}.ep-close[data-v-bd57cfe8]:hover{background:var(--bg-hover, #333);color:var(--text)}.ep-body[data-v-bd57cfe8]{display:flex;flex-wrap:wrap;gap:12px;padding:14px 12px}.ep-footer[data-v-bd57cfe8]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--border)}.fgrp.full[data-v-bd57cfe8]{width:100%}.fhint[data-v-bd57cfe8]{font-size:10px;color:var(--text-muted);font-style:italic}.display-config[data-v-34c75820]{display:flex;flex-direction:column;gap:8px}.row[data-v-34c75820]{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.field-group[data-v-34c75820]{display:flex;flex-direction:column;gap:3px}.field-group.narrow[data-v-34c75820]{max-width:84px}.field-group label[data-v-34c75820]{font-size:11px;color:var(--text-muted)}.check-inline[data-v-34c75820]{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted);align-self:center;white-space:nowrap}.bars[data-v-34c75820]{border-top:1px dashed var(--border);padding-top:8px}.figures-head[data-v-34c75820]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.figures-title[data-v-34c75820]{font-size:11px;font-weight:600;color:var(--text-muted)}.bar-row[data-v-34c75820]{display:flex;gap:12px;align-items:flex-end;padding:4px 0}.empty-sub[data-v-34c75820]{font-size:12px;color:var(--text-muted);margin:0 0 6px}.icon-btn[data-v-34c75820]{padding:2px 7px;font-size:12px}.icon-btn.danger[data-v-34c75820]:hover{border-color:var(--danger);color:var(--danger)}.card-panel[data-v-97f5ec41]{background:var(--bg-base);border:1px solid var(--border);border-radius:4px;margin-bottom:8px;overflow:hidden}.card-panel.invalid[data-v-97f5ec41]{border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}.card-header[data-v-97f5ec41]{display:flex;align-items:center;gap:8px;background:var(--bg-surface);padding:8px 10px;cursor:pointer;-webkit-user-select:none;user-select:none}.card-header[data-v-97f5ec41]:hover{background:var(--bg-input)}.expand-icon[data-v-97f5ec41]{font-size:10px;color:var(--text-muted);min-width:12px}.card-label[data-v-97f5ec41]{flex:1;font-size:12px;font-weight:500}.invalid-badge[data-v-97f5ec41]{font-size:10px;background:color-mix(in srgb,var(--danger) 25%,transparent);color:var(--danger);padding:1px 6px;border-radius:8px}.card-body[data-v-97f5ec41]{padding:12px;display:flex;flex-direction:column;gap:12px}.field-group[data-v-97f5ec41]{display:flex;flex-direction:column;gap:3px}.field-group.center[data-v-97f5ec41]{align-self:center;padding-top:14px}.field-group label[data-v-97f5ec41]{font-size:11px;color:var(--text-muted)}.row[data-v-97f5ec41]{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.sub-section[data-v-97f5ec41]{border:1px solid var(--border);border-radius:3px;padding:10px}.sub-header[data-v-97f5ec41]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sub-title[data-v-97f5ec41]{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.optional[data-v-97f5ec41]{text-transform:none;color:var(--text-muted);font-weight:400;letter-spacing:0}.adc-config[data-v-97f5ec41]{display:flex;flex-direction:column;gap:10px}.adc-channel[data-v-97f5ec41]{display:flex;flex-direction:column;gap:6px}.adc-channel-title[data-v-97f5ec41]{font-size:11px;font-weight:600;color:var(--text-muted)}.volt-hint[data-v-97f5ec41]{font-size:11px;color:var(--text-muted)}.count[data-v-97f5ec41]{color:var(--text-muted);font-weight:400}.empty-sub[data-v-97f5ec41]{font-size:11px;color:var(--text-muted);padding:4px 0}.input-list[data-v-97f5ec41]{display:flex;flex-direction:column;gap:4px}.checkbox-label[data-v-97f5ec41]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text);cursor:pointer}.icon-btn[data-v-97f5ec41]{padding:2px 7px;font-size:12px}select.invalid[data-v-97f5ec41]{border-color:var(--danger)}.form-section[data-v-bdaf43e9]{max-width:none}h2[data-v-bdaf43e9]{font-size:16px;margin:0 0 4px}.section-hint[data-v-bdaf43e9]{margin:0 0 16px;font-size:12px;color:var(--text-muted)}.detail[data-v-bdaf43e9]{margin-top:16px}.detail[data-v-bdaf43e9]>*{width:fit-content}.detail-hint[data-v-bdaf43e9]{font-size:12px;color:var(--text-muted);border:1px dashed var(--border);border-radius:4px;padding:16px;max-width:400px}.form-editor[data-v-44f069c4]{display:flex;flex-direction:column;height:100%;overflow:hidden}.parse-error[data-v-44f069c4]{background:color-mix(in srgb,#f14c4c 18%,var(--bg-surface));border-bottom:1px solid #f14c4c;color:var(--text);font-size:12px;padding:8px 14px}.parse-error ul[data-v-44f069c4]{margin:4px 0 0;padding-left:18px}.form-body[data-v-44f069c4]{display:flex;flex:1;min-height:0}.form-body.disabled[data-v-44f069c4]{opacity:.5;pointer-events:none}.form-nav[data-v-44f069c4]{width:160px;flex-shrink:0;border-right:1px solid var(--border);padding:10px 8px;display:flex;flex-direction:column;gap:2px;background:var(--bg-surface)}.nav-item[data-v-44f069c4]{text-align:left;background:transparent;border:none;padding:7px 10px;border-radius:4px;color:var(--text-muted);font-size:13px}.nav-item[data-v-44f069c4]:hover{background:var(--bg-base);color:var(--text)}.nav-item.active[data-v-44f069c4]{background:color-mix(in srgb,var(--accent) 20%,var(--bg-surface));color:var(--accent)}.form-content[data-v-44f069c4]{flex:1;min-width:0;overflow:auto;padding:20px 24px}.placeholder[data-v-44f069c4]{color:var(--text-muted)}.placeholder h2[data-v-44f069c4]{color:var(--text)}.toolbar[data-v-90a71cea]{display:flex;align-items:center;gap:4px;height:36px;padding:0 8px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0}.separator[data-v-90a71cea]{width:1px;height:18px;background:var(--border);margin:0 4px}.label[data-v-90a71cea]{font-size:11px;color:var(--text-muted);margin:0 2px;-webkit-user-select:none;user-select:none}.icon-btn[data-v-90a71cea]{padding:4px 7px;min-width:24px}.font-size-display[data-v-90a71cea]{font-size:12px;color:var(--text);min-width:20px;text-align:center;-webkit-user-select:none;user-select:none}button.active[data-v-90a71cea]{background:color-mix(in srgb,var(--accent) 20%,var(--bg-surface));border-color:var(--accent);color:var(--accent)}.validate-btn[data-v-90a71cea]{margin-left:4px}.editor-page[data-v-99c06dfb]{display:flex;flex-direction:column;height:100%;background:var(--bg-base);color:var(--text)}.app-header[data-v-99c06dfb]{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;background:var(--accent);color:#fff;flex-shrink:0}.app-title[data-v-99c06dfb]{font-weight:600;font-size:13px;margin-right:8px}.filename-badge[data-v-99c06dfb]{font-size:12px;opacity:.85;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.logout-btn[data-v-99c06dfb]{margin-left:auto;background:transparent;border-color:#fff6;color:#fff;font-size:12px;padding:3px 10px}.logout-btn[data-v-99c06dfb]:hover:not(:disabled){background:#ffffff26}.header-btn[data-v-99c06dfb]{background:transparent;border-color:#fff6;color:#fff;font-size:12px;padding:3px 10px}.header-btn[data-v-99c06dfb]:hover:not(:disabled){background:#ffffff26}.header-btn.toggle-active[data-v-99c06dfb]{background:#ffffff40;font-weight:600}.header-sep[data-v-99c06dfb]{width:1px;height:18px;background:#ffffff4d;flex-shrink:0}.lang-select[data-v-99c06dfb]{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;font-size:12px;padding:3px 6px}.lang-select option[data-v-99c06dfb]{color:var(--text);background:var(--bg-surface)}.editor-page.dragging[data-v-99c06dfb]{outline:3px dashed var(--accent);outline-offset:-3px}.editor-area[data-v-99c06dfb]{flex:1;min-height:0;overflow:hidden;position:relative}.pane[data-v-99c06dfb]{position:absolute;top:0;right:0;bottom:0;left:0}.warning-toast[data-v-99c06dfb]{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:var(--bg-surface);border:1px solid var(--accent);color:var(--text);padding:8px 14px;border-radius:6px;font-size:12px;box-shadow:0 4px 16px #00000059;cursor:pointer;z-index:20}.toast-action[data-v-99c06dfb]{font-size:11px;padding:3px 8px;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:4px}.dirty-dot[data-v-99c06dfb]{color:#ffd54f;margin-left:4px}.warning-toast.save-ok[data-v-99c06dfb]{border-color:#4caf50}.warning-toast.save-error[data-v-99c06dfb],.warning-toast.save-conflict[data-v-99c06dfb]{border-color:var(--danger)}.dialog-backdrop[data-v-99c06dfb]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:50}.dialog[data-v-99c06dfb]{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:20px;width:360px;display:flex;flex-direction:column;gap:12px}.dialog h3[data-v-99c06dfb]{margin:0;font-size:15px}.dialog label[data-v-99c06dfb]{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.dialog input[data-v-99c06dfb],.dialog select[data-v-99c06dfb]{font-size:13px;padding:6px 8px;background:var(--bg-base);color:var(--text);border:1px solid var(--border);border-radius:4px}.dialog-error[data-v-99c06dfb]{color:var(--danger);font-size:12px}.dialog-actions[data-v-99c06dfb]{display:flex;justify-content:flex-end;gap:8px}.dialog-actions .primary[data-v-99c06dfb]{background:var(--accent);border:1px solid var(--accent);color:#fff;padding:5px 14px;border-radius:4px}.dialog-actions .secondary[data-v-99c06dfb]{background:transparent;border:1px solid var(--border);color:var(--text);padding:5px 14px;border-radius:4px}.toast-enter-active[data-v-99c06dfb],.toast-leave-active[data-v-99c06dfb]{transition:opacity .2s ease,transform .2s ease}.toast-enter-from[data-v-99c06dfb],.toast-leave-to[data-v-99c06dfb]{opacity:0;transform:translate(-50%,8px)}.mode-toggle[data-v-99c06dfb]{display:inline-flex;border:1px solid rgba(255,255,255,.4);border-radius:4px;overflow:hidden;margin-left:8px}.mode-toggle button[data-v-99c06dfb]{background:transparent;border:none;color:#fff;font-size:12px;padding:3px 12px;border-radius:0}.mode-toggle button.active[data-v-99c06dfb]{background:#ffffff38;font-weight:600}.status-bar[data-v-99c06dfb]{display:flex;align-items:center;gap:1px;height:22px;padding:0 8px;background:var(--accent);color:#ffffffd9;font-size:11px;flex-shrink:0}.status-item[data-v-99c06dfb]{padding:0 6px;line-height:22px}.status-schema[data-v-99c06dfb]{color:#9cdcfe}.status-schema-loading[data-v-99c06dfb]{color:#ffffff80}.status-schema-error[data-v-99c06dfb]{color:#f48771}.schema-error[data-v-99c06dfb]{display:flex;align-items:center;justify-content:center;height:100%;color:#f48771;font-size:13px;padding:20px}.configs-page[data-v-e09a92da]{display:flex;flex-direction:column;height:100%;background:var(--bg-base);color:var(--text)}.app-header[data-v-e09a92da]{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;background:var(--accent);color:#fff;flex-shrink:0}.app-title[data-v-e09a92da]{font-weight:600;font-size:13px}.subtitle[data-v-e09a92da]{font-size:12px;opacity:.85;flex:1}.header-btn[data-v-e09a92da]{background:transparent;border-color:#fff6;color:#fff;font-size:12px;padding:3px 10px}.header-btn[data-v-e09a92da]:hover:not(:disabled){background:#ffffff26}.logout-btn[data-v-e09a92da]{margin-left:auto;background:transparent;border-color:#fff6;color:#fff;font-size:12px;padding:3px 10px}.logout-btn[data-v-e09a92da]:hover:not(:disabled){background:#ffffff26}.content[data-v-e09a92da]{flex:1;overflow-y:auto;padding:20px;max-width:760px;width:100%;margin:0 auto}.draft-banner[data-v-e09a92da]{border:1px solid var(--accent);border-radius:6px;padding:10px 14px;margin-bottom:16px;font-size:13px;cursor:pointer;background:var(--bg-surface)}.dirty-dot[data-v-e09a92da]{color:var(--accent);margin-left:6px}.notice[data-v-e09a92da]{color:var(--text-muted);font-size:13px;padding:12px 0}.notice.error[data-v-e09a92da]{color:var(--danger)}.inline-btn[data-v-e09a92da]{margin-left:8px;font-size:12px;padding:2px 8px}.customer-group h2[data-v-e09a92da]{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:18px 0 8px}.customer-empty[data-v-e09a92da]{padding:4px 0 6px;font-size:12px}.config-list[data-v-e09a92da]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.config-item[data-v-e09a92da]{display:flex;align-items:stretch;gap:6px}.config-open[data-v-e09a92da]{flex:1;display:flex;align-items:baseline;gap:10px;text-align:left;background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:10px 14px;color:var(--text);cursor:pointer}.config-open[data-v-e09a92da]:hover{border-color:var(--accent)}.config-name[data-v-e09a92da]{font-weight:600;font-size:14px}.config-project[data-v-e09a92da]{font-size:12px;color:var(--text-muted)}.config-meta[data-v-e09a92da]{margin-left:auto;font-size:11px;color:var(--text-muted)}.delete-btn[data-v-e09a92da]{border:1px solid var(--border);border-radius:6px;background:var(--bg-surface);color:var(--text-muted);padding:0 10px;cursor:pointer}.delete-btn[data-v-e09a92da]:hover{color:var(--danger);border-color:var(--danger)}.dialog-backdrop[data-v-e09a92da]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:50}.dialog[data-v-e09a92da]{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:20px;width:360px;display:flex;flex-direction:column;gap:12px}.dialog h3[data-v-e09a92da]{margin:0;font-size:15px}.dialog label[data-v-e09a92da]{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.dialog input[data-v-e09a92da],.dialog select[data-v-e09a92da]{font-size:13px;padding:6px 8px;background:var(--bg-base);color:var(--text);border:1px solid var(--border);border-radius:4px}.dialog-actions[data-v-e09a92da]{display:flex;justify-content:flex-end;gap:8px}.dialog-actions .primary[data-v-e09a92da]{background:var(--accent);border:1px solid var(--accent);color:#fff;padding:5px 14px;border-radius:4px}.dialog-actions .secondary[data-v-e09a92da]{background:transparent;border:1px solid var(--border);color:var(--text);padding:5px 14px;border-radius:4px}.members-page[data-v-226fe346]{display:flex;flex-direction:column;height:100%;background:var(--bg-base);color:var(--text)}.app-header[data-v-226fe346]{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;background:var(--accent);color:#fff;flex-shrink:0}.app-title[data-v-226fe346]{font-weight:600;font-size:13px}.subtitle[data-v-226fe346]{font-size:12px;opacity:.85;flex:1}.header-btn[data-v-226fe346]{background:transparent;border-color:#fff6;color:#fff;font-size:12px;padding:3px 10px}.header-btn[data-v-226fe346]:hover:not(:disabled){background:#ffffff26}.content[data-v-226fe346]{flex:1;overflow-y:auto;padding:20px;max-width:760px;width:100%;margin:0 auto}.intro[data-v-226fe346]{font-size:13px;color:var(--text-muted);margin:0 0 8px}.notice[data-v-226fe346]{color:var(--text-muted);font-size:13px;padding:12px 0}.notice.error[data-v-226fe346]{color:var(--danger)}.customer-group[data-v-226fe346]{margin-bottom:22px}.customer-group h2[data-v-226fe346]{font-size:14px;margin:18px 0 8px;display:flex;align-items:baseline;gap:8px}.slug[data-v-226fe346]{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.customer-delete[data-v-226fe346]{margin-left:auto;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface);color:var(--text-muted);padding:2px 8px;cursor:pointer;font-size:12px}.customer-delete[data-v-226fe346]:hover{color:var(--danger);border-color:var(--danger)}.member-list[data-v-226fe346]{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}.member-item[data-v-226fe346]{display:flex;align-items:center;gap:6px;background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:8px 12px}.member-email[data-v-226fe346]{flex:1;font-size:13px}.member-empty[data-v-226fe346]{font-size:12px;color:var(--text-muted);padding:2px 0}.delete-btn[data-v-226fe346]{border:1px solid var(--border);border-radius:6px;background:var(--bg-surface);color:var(--text-muted);padding:0 10px;cursor:pointer}.delete-btn[data-v-226fe346]:hover{color:var(--danger);border-color:var(--danger)}.add-row[data-v-226fe346]{display:flex;gap:6px}.add-row input[data-v-226fe346]{flex:1;font-size:13px;padding:6px 8px;background:var(--bg-base);color:var(--text);border:1px solid var(--border);border-radius:4px}.add-row .primary[data-v-226fe346]{background:var(--accent);border:1px solid var(--accent);color:#fff;padding:5px 14px;border-radius:4px}.add-row .primary[data-v-226fe346]:disabled{opacity:.5}.dialog-backdrop[data-v-226fe346]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:50}.dialog[data-v-226fe346]{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:20px;width:360px;display:flex;flex-direction:column;gap:12px}.dialog h3[data-v-226fe346]{margin:0;font-size:15px}.dialog label[data-v-226fe346]{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.dialog input[data-v-226fe346]{font-size:13px;padding:6px 8px;background:var(--bg-base);color:var(--text);border:1px solid var(--border);border-radius:4px}.dialog .hint[data-v-226fe346]{font-size:11px;color:var(--text-muted)}.dialog-actions[data-v-226fe346]{display:flex;justify-content:flex-end;gap:8px}.dialog-actions .primary[data-v-226fe346]{background:var(--accent);border:1px solid var(--accent);color:#fff;padding:5px 14px;border-radius:4px}.dialog-actions .primary[data-v-226fe346]:disabled{opacity:.5}.dialog-actions .secondary[data-v-226fe346]{background:transparent;border:1px solid var(--border);color:var(--text);padding:5px 14px;border-radius:4px}.login-page[data-v-527ba84c]{height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-base)}.login-card[data-v-527ba84c]{width:340px;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;padding:36px 32px}.login-header[data-v-527ba84c]{text-align:center;margin-bottom:28px}.logo[data-v-527ba84c]{width:40px;height:40px;color:var(--accent);margin-bottom:12px}h1[data-v-527ba84c]{font-size:18px;font-weight:600;color:var(--text);margin-bottom:4px}.subtitle[data-v-527ba84c]{font-size:12px;color:var(--text-muted)}.login-form[data-v-527ba84c]{display:flex;flex-direction:column;gap:14px}.field[data-v-527ba84c]{display:flex;flex-direction:column;gap:5px}label[data-v-527ba84c]{font-size:12px;font-weight:500;color:var(--text-muted)}.error-msg[data-v-527ba84c]{font-size:12px;color:var(--danger);padding:8px 10px;background:color-mix(in srgb,var(--danger) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);border-radius:2px}.login-btn[data-v-527ba84c]{width:100%;padding:8px;font-size:13px;margin-top:4px}
