.cdot[data-v-d97b3c7d]{display:inline-block;width:10px;height:10px;border-radius:999px;background:#94a3b8;vertical-align:middle}.cdot.on[data-v-d97b3c7d]{background:#22c55e;animation:cpulse-d97b3c7d 2.2s infinite}.cdot.off[data-v-d97b3c7d]{background:#ef4444}@keyframes cpulse-d97b3c7d{0%{box-shadow:0 0 #22c55e80}70%{box-shadow:0 0 0 5px #22c55e00}to{box-shadow:0 0 #22c55e00}}.topbar[data-v-a690b464]{display:flex;align-items:center;gap:var(--space-3);height:56px;padding:0 var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.topbar-actions[data-v-a690b464]{display:flex;align-items:center;gap:var(--space-2)}.brand-block[data-v-a690b464]{display:flex;flex-direction:column;justify-content:center}.brand-row[data-v-a690b464]{display:flex;align-items:center}.brand-block .who[data-v-a690b464]{font-size:11px;color:var(--color-text-muted);margin-left:18px;line-height:1.1}.conn-dot[data-v-a690b464]{margin:0 6px 0 2px}.brand[data-v-a690b464]{display:flex;align-items:center;gap:var(--space-2);font-weight:600;color:var(--color-text);text-decoration:none}.crumbs[data-v-a690b464]{display:flex;align-items:center;gap:var(--space-1);min-width:0}.crumb[data-v-a690b464]{font-size:var(--font-sm);color:var(--color-text);white-space:nowrap}.crumb-link[data-v-a690b464]{text-decoration:none}.crumb-link[data-v-a690b464]:hover{color:var(--color-primary)}.crumb-btn[data-v-a690b464]{display:inline-flex;align-items:center;gap:var(--space-1);padding:3px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);cursor:pointer}.crumb-btn[data-v-a690b464]:hover{border-color:var(--color-primary)}.crumb-edit[data-v-a690b464],.sep[data-v-a690b464]{color:var(--color-text-muted)}.spacer[data-v-a690b464]{flex:1}.badge[data-v-a690b464]{font-size:var(--font-xs);padding:2px 8px;border-radius:var(--radius-pill)}.badge--warn[data-v-a690b464]{background:var(--color-warn-bg);color:var(--color-warn-text)}.docs-link[data-v-a690b464]{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--font-sm);color:var(--color-text);text-decoration:none;padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.docs-link[data-v-a690b464]:hover{background:var(--color-bg)}.modal-backdrop[data-v-a690b464]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#00000073;padding:var(--space-4)}.modal[data-v-a690b464]{width:min(420px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);box-shadow:0 8px 30px #00000040}.modal-head[data-v-a690b464]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.modal-head h3[data-v-a690b464]{margin:0;font-size:var(--font-md)}.m-row[data-v-a690b464]{display:flex;align-items:center;gap:var(--space-2)}.m-row .select-input[data-v-a690b464]{flex:1}.m-name[data-v-a690b464]{flex:1;font-weight:600}.icon[data-v-a690b464]{display:inline-flex;align-items:center;padding:5px 7px}@media(max-width:768px){.topbar[data-v-a690b464]{gap:var(--space-2);padding:0 var(--space-2)}.brand span[data-v-a690b464]{display:none}.crumbs[data-v-a690b464]{overflow:hidden}.crumb-btn[data-v-a690b464]{overflow:hidden;text-overflow:ellipsis}.docs-text[data-v-a690b464]{display:none}}.dlg-backdrop[data-v-f1dc8c90]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#0f172a8c;padding:var(--space-4)}.dlg[data-v-f1dc8c90]{width:min(420px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow-3)}.dlg-head[data-v-f1dc8c90]{display:flex;align-items:center;justify-content:space-between}.dlg-head h3[data-v-f1dc8c90]{margin:0;font-size:var(--font-md)}.dlg-msg[data-v-f1dc8c90]{margin:0;font-size:var(--font-sm);color:var(--color-text);white-space:pre-line;line-height:1.45}.dlg-foot[data-v-f1dc8c90]{display:flex;justify-content:flex-end;gap:var(--space-2)}.help-overlay[data-v-659775e7]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#00000047;display:flex;justify-content:flex-end}.help-drawer[data-v-659775e7]{width:min(420px,92vw);height:100%;background:var(--color-surface, #fff);border-left:1px solid var(--color-border, #e2e8f0);box-shadow:-4px 0 24px #0000002e;display:flex;flex-direction:column;animation:help-in-659775e7 .16s ease-out}@keyframes help-in-659775e7{0%{transform:translate(16px);opacity:.6}}.help-head[data-v-659775e7]{display:flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-3, 12px) var(--space-4, 16px);border-bottom:1px solid var(--color-border, #e2e8f0)}.help-head h2[data-v-659775e7]{margin:0;flex:1;font-size:var(--font-lg, 1.05rem)}.close[data-v-659775e7]{display:inline-flex;padding:6px;border:none;background:transparent;color:var(--color-text-muted, #64748b);border-radius:var(--radius-md, 6px);cursor:pointer}.close[data-v-659775e7]:hover{background:var(--color-bg, #f1f5f9);color:var(--color-text, #0f172a)}.help-body[data-v-659775e7]{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4, 16px)}.intro[data-v-659775e7]{margin:0 0 var(--space-4, 16px);color:var(--color-text, #0f172a);font-size:var(--font-md, .95rem);line-height:1.5}.block[data-v-659775e7]{margin-bottom:var(--space-4, 16px)}.block h3[data-v-659775e7]{margin:0 0 var(--space-1, 4px);font-size:var(--font-sm, .85rem);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted, #64748b)}.block p[data-v-659775e7]{margin:0;line-height:1.55;color:var(--color-text, #0f172a);font-size:var(--font-sm, .9rem)}.block ul[data-v-659775e7]{margin:var(--space-2, 8px) 0 0;padding-left:var(--space-4, 16px);line-height:1.5;font-size:var(--font-sm, .9rem)}.app-shell[data-v-703334f5]{display:flex;flex-direction:column;height:100vh;height:100dvh}.app-main[data-v-703334f5]{flex:1;min-height:0;overflow:hidden}.ofb[data-v-038406a0]{width:min(460px,96vw);display:flex;flex-direction:column;max-height:90vh}.ofb-body[data-v-038406a0]{padding:var(--space-3) var(--space-4);overflow-y:auto}.login[data-v-038406a0]{display:flex;flex-direction:column}.fl[data-v-038406a0]{display:block;font-size:var(--font-sm);margin:var(--space-2) 0 2px}.two[data-v-038406a0]{display:flex;gap:var(--space-2)}.two>div[data-v-038406a0]{flex:1}.login .btn[data-v-038406a0]{margin-top:var(--space-3);align-self:flex-start}.hint[data-v-038406a0]{color:var(--color-text-muted);font-size:var(--font-sm)}.signed[data-v-038406a0]{font-size:var(--font-sm);margin:0 0 var(--space-2)}.proj-list[data-v-038406a0]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.proj[data-v-038406a0]{display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 10px}.proj .meta[data-v-038406a0]{min-width:0;flex:1;display:flex;flex-direction:column}.name[data-v-038406a0]{font-weight:600}.sub[data-v-038406a0]{font-size:12px;color:var(--color-text-muted)}.error[data-v-038406a0]{margin:var(--space-2) 0 0;color:var(--color-danger);font-size:var(--font-sm)}.track[data-v-3ea0ada1]{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding:1px 2px;border-radius:5px;background:linear-gradient(180deg,#0000000f,#ffffff0f);border:1px solid var(--color-border);box-shadow:inset 0 1px 2px #0000002e;line-height:0}.arr[data-v-3ea0ada1]{display:block}.arr.top[data-v-3ea0ada1]{margin-bottom:-6px}.arr.bot[data-v-3ea0ada1]{margin-top:-6px}.ok[data-v-3ea0ada1]{color:var(--color-success, #16a34a)}.bad[data-v-3ea0ada1]{color:var(--color-danger, #dc2626)}.sites[data-v-8a8e0ccb]{max-width:720px;margin:0 auto;padding:var(--space-6) var(--space-5);display:flex;flex-direction:column;gap:var(--space-5)}.hero[data-v-8a8e0ccb]{display:flex;gap:var(--space-3);align-items:flex-start;color:var(--color-primary)}.hero h1[data-v-8a8e0ccb]{margin:0 0 var(--space-1);color:var(--color-text)}.muted[data-v-8a8e0ccb]{color:var(--color-text-muted);margin:0}.create-row[data-v-8a8e0ccb]{display:flex;gap:var(--space-2)}.import-row[data-v-8a8e0ccb]{display:flex;gap:var(--space-2);flex-wrap:wrap}.import-error[data-v-8a8e0ccb]{margin:0;color:var(--color-danger);font-size:var(--font-sm)}.site-list[data-v-8a8e0ccb]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.site-item[data-v-8a8e0ccb]{display:flex;gap:var(--space-2);align-items:stretch}.site-open[data-v-8a8e0ccb]{flex:1;display:flex;flex-direction:column;gap:2px;padding:var(--space-3);text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.site-open[data-v-8a8e0ccb]:hover{border-color:var(--color-primary)}.site-name[data-v-8a8e0ccb]{font-weight:600}.site-company[data-v-8a8e0ccb]{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-sm);color:var(--color-primary)}.icon-btn[data-v-8a8e0ccb]{display:inline-flex;align-items:center}.empty[data-v-8a8e0ccb]{padding:var(--space-4) 0}.tag[data-v-8a8e0ccb]{display:inline-flex;align-items:center;gap:3px;margin-left:var(--space-2);padding:1px 6px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;vertical-align:middle}.tag--ok[data-v-8a8e0ccb]{background:color-mix(in srgb,var(--color-primary) 14%,transparent);color:var(--color-primary)}.tag--warn[data-v-8a8e0ccb]{background:color-mix(in srgb,var(--color-warning, #b45309) 16%,transparent);color:var(--color-warning, #b45309)}.tag--local[data-v-8a8e0ccb]{background:var(--color-surface-2, rgba(127, 127, 127, .12));color:var(--color-text-muted)}.btn--warn[data-v-8a8e0ccb]{color:var(--color-warning, #b45309);border-color:color-mix(in srgb,var(--color-warning, #b45309) 40%,var(--color-border))}.spin[data-v-8a8e0ccb]{animation:spin-8a8e0ccb .9s linear infinite}@keyframes spin-8a8e0ccb{to{transform:rotate(360deg)}}.remote-only[data-v-8a8e0ccb]{display:flex;flex-direction:column;gap:var(--space-2)}.remote-head[data-v-8a8e0ccb]{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--font-sm);color:var(--color-text-muted);font-weight:600}.remote-row[data-v-8a8e0ccb]{cursor:default}.remote-row[data-v-8a8e0ccb]:hover{border-color:var(--color-border)}.combobox[data-v-f33acc22]{position:relative}.field[data-v-f33acc22]{position:relative;display:flex;align-items:center}.field .text-input[data-v-f33acc22]{padding-right:28px}.chevron[data-v-f33acc22]{position:absolute;right:4px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:transparent;color:var(--color-text-muted)}.popover[data-v-f33acc22]{position:absolute;z-index:20;top:calc(100% + 2px);left:0;right:0;max-height:220px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-2)}.empty-hint[data-v-f33acc22]{padding:8px 10px;font-size:var(--font-sm);color:var(--color-text-muted)}.option[data-v-f33acc22]{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:7px 10px;border:none;background:transparent;text-align:left;color:var(--color-text)}.option--active[data-v-f33acc22]{background:var(--color-surface-2)}.option--create[data-v-f33acc22]{color:var(--color-primary);font-weight:600}.segment-form[data-v-aecd8e1d]{display:flex;flex-direction:column;gap:var(--space-3)}.joiner[data-v-aecd8e1d]{font-size:var(--font-sm);color:var(--color-text-muted);text-align:center}.error[data-v-aecd8e1d]{margin:0;color:var(--color-danger);font-size:var(--font-sm)}.submit[data-v-aecd8e1d]{justify-content:center}.help-btn[data-v-5de4e735]{display:inline-flex;align-items:center;justify-content:center;padding:5px;border:1px solid transparent;border-radius:var(--radius-md, 6px);background:transparent;color:var(--color-text-muted, #64748b);cursor:pointer}.help-btn[data-v-5de4e735]:hover{background:var(--color-bg, #f1f5f9);color:var(--color-text, #0f172a);border-color:var(--color-border, #e2e8f0)}.dossier[data-v-7bf700e5]{display:flex;flex-direction:column;gap:var(--space-4)}.head[data-v-7bf700e5]{display:flex;flex-direction:column;gap:var(--space-2)}.head-top[data-v-7bf700e5]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.site-name[data-v-7bf700e5]{margin:0;font-size:var(--font-lg);color:var(--color-text)}.field[data-v-7bf700e5]{display:flex;flex-direction:column;gap:3px}.field-label[data-v-7bf700e5]{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-sm);color:var(--color-text-muted)}.map-link[data-v-7bf700e5]{font-size:var(--font-sm);color:var(--color-primary);text-decoration:none}.block[data-v-7bf700e5]{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.block-head[data-v-7bf700e5]{display:flex;align-items:center;justify-content:space-between}.block-head h3[data-v-7bf700e5]{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:var(--font-md);color:var(--color-text)}.muted[data-v-7bf700e5]{color:var(--color-text-muted)}.empty[data-v-7bf700e5]{font-size:var(--font-sm);margin:0}.icon-btn[data-v-7bf700e5]{display:inline-flex;align-items:center;justify-content:center;padding:4px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer}.icon-btn[data-v-7bf700e5]:hover{background:var(--color-bg)}.icon-btn.danger[data-v-7bf700e5]:hover{color:var(--color-danger);border-color:var(--color-danger)}.badges[data-v-7bf700e5]{display:flex;flex-wrap:wrap;gap:6px}.badge[data-v-7bf700e5]{display:inline-flex;align-items:center;gap:4px;padding:3px 6px 3px 8px;border-radius:999px;font-size:var(--font-sm);background:var(--color-bg);border:1px solid var(--color-border)}.badge.k-access[data-v-7bf700e5]{border-color:#3b82f6;color:#1d4ed8}.badge.k-safety[data-v-7bf700e5]{border-color:#f59e0b;color:#b45309}.badge.k-security[data-v-7bf700e5]{border-color:#ef4444;color:#b91c1c}.badge-x[data-v-7bf700e5]{display:inline-flex;padding:1px;border:none;background:transparent;color:inherit;opacity:.6;cursor:pointer}.badge-x[data-v-7bf700e5]:hover{opacity:1}.list[data-v-7bf700e5]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.contact[data-v-7bf700e5]{display:grid;grid-template-columns:1fr auto;align-items:start;gap:4px var(--space-2)}.contact-id[data-v-7bf700e5]{display:flex;flex-direction:column}.contact-name[data-v-7bf700e5]{font-weight:600}.contact-links[data-v-7bf700e5]{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px}.chip[data-v-7bf700e5]{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;font-size:var(--font-sm);text-decoration:none;color:var(--color-primary);background:var(--color-bg);border:1px solid var(--color-border)}.wo[data-v-7bf700e5]{display:grid;grid-template-columns:auto auto 1fr auto auto;align-items:center;gap:6px}.wo.closed .wo-title[data-v-7bf700e5]{text-decoration:line-through;color:var(--color-text-muted)}.wo-id[data-v-7bf700e5]{display:flex;flex-direction:column;min-width:0}.wo-title[data-v-7bf700e5]{font-weight:600}.wo-status[data-v-7bf700e5]{font-size:10px;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:4px;background:var(--color-bg);border:1px solid var(--color-border);white-space:nowrap}.wo-status.s-open[data-v-7bf700e5]{color:#15803d;border-color:#22c55e}.wo-status.s-scheduled[data-v-7bf700e5]{color:#1d4ed8;border-color:#3b82f6}.wo-status.s-on_hold[data-v-7bf700e5]{color:#b45309;border-color:#f59e0b}.wo-status.s-closed[data-v-7bf700e5]{color:var(--color-text-muted)}.wo-prio[data-v-7bf700e5]{font-size:10px;text-transform:uppercase;padding:2px 5px;border-radius:4px}.wo-prio.p-high[data-v-7bf700e5]{color:#b45309;background:#fef3c7}.wo-prio.p-urgent[data-v-7bf700e5]{color:#fff;background:#dc2626}.wo-prio.p-low[data-v-7bf700e5]{color:var(--color-text-muted)}.note[data-v-7bf700e5]{display:flex;flex-direction:column;gap:2px;padding:var(--space-2);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.note-meta[data-v-7bf700e5]{display:flex;align-items:center;gap:4px;font-size:var(--font-sm)}.note-date[data-v-7bf700e5]{font-weight:600}.note-del[data-v-7bf700e5]{margin-left:auto}.note-body[data-v-7bf700e5]{margin:0;white-space:pre-wrap;font-size:var(--font-sm)}.addform[data-v-7bf700e5]{display:flex;flex-direction:column;gap:6px;padding:var(--space-2);background:var(--color-bg);border:1px dashed var(--color-border);border-radius:var(--radius-sm)}.addform .row[data-v-7bf700e5]{display:flex;gap:6px}.addform .row.end[data-v-7bf700e5]{justify-content:flex-end}.addform .text-input[data-v-7bf700e5]{width:100%}.addform textarea[data-v-7bf700e5]{resize:vertical}.data[data-v-d6997dcc]{display:flex;flex-direction:column;gap:var(--space-4)}.head-top[data-v-d6997dcc]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.head h2[data-v-d6997dcc]{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:var(--font-lg);color:var(--color-text)}.muted[data-v-d6997dcc]{color:var(--color-text-muted);margin:0}.small[data-v-d6997dcc]{font-size:var(--font-sm)}.empty[data-v-d6997dcc]{padding:var(--space-3) 0}.device[data-v-d6997dcc]{display:flex;flex-direction:column;gap:var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.device h3[data-v-d6997dcc]{display:inline-flex;align-items:center;gap:6px;margin:0 0 2px;font-size:var(--font-md);color:var(--color-text)}.rollup h3[data-v-d6997dcc]{color:var(--color-primary)}.stats[data-v-d6997dcc]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.stats li[data-v-d6997dcc]{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--font-sm)}.stat-label[data-v-d6997dcc]{color:var(--color-text)}.stat-val[data-v-d6997dcc]{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.unit[data-v-d6997dcc]{font-size:11px}.suggest[data-v-d6997dcc]{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.suggest h3[data-v-d6997dcc]{margin:0;font-size:var(--font-md);color:var(--color-text)}.sugg-list[data-v-d6997dcc]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.sugg-list li[data-v-d6997dcc]{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 var(--space-2)}.sugg-name[data-v-d6997dcc]{font-weight:600}.sugg-src[data-v-d6997dcc]{grid-column:1}.place[data-v-d6997dcc]{grid-row:1 / span 2;grid-column:2}.place.armed[data-v-d6997dcc]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.armed-hint[data-v-d6997dcc]{font-size:var(--font-sm);color:var(--color-primary);background:var(--color-bg);border:1px dashed var(--color-primary);border-radius:var(--radius-sm);padding:var(--space-2);margin:0}.px-preview[data-v-025e75d2]{height:100%;display:flex;flex-direction:column;background:var(--color-bg)}.bar[data-v-025e75d2]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.title[data-v-025e75d2]{font-size:var(--font-md)}.muted[data-v-025e75d2]{color:var(--color-text-muted);font-weight:400}.spacer[data-v-025e75d2]{flex:1}.btn.icon[data-v-025e75d2]{padding:6px;margin-right:36px}.note[data-v-025e75d2]{margin:0;padding:var(--space-2) var(--space-3);font-size:var(--font-sm);color:var(--color-text-muted);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.warnings[data-v-025e75d2]{margin:0;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-5);font-size:var(--font-sm);color:var(--color-warning, #b45309);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.stage[data-v-025e75d2]{flex:1;min-height:0;overflow:hidden;padding:var(--space-4);cursor:grab;touch-action:none}.stage[data-v-025e75d2]:active{cursor:grabbing}.canvas[data-v-025e75d2]{transform-origin:top left;display:inline-block}.center[data-v-025e75d2]{text-align:center;margin-top:15vh}.error[data-v-025e75d2]{color:var(--color-danger)}.overlay[data-v-138b126f]{position:absolute;top:0;left:0;pointer-events:none}.svg[data-v-138b126f]{position:absolute;top:0;left:0}.line[data-v-138b126f]{stroke:#ffd400;stroke-width:3}.label[data-v-138b126f]{fill:#ffd400;stroke:#000;stroke-width:3;paint-order:stroke;font:bold 16px var(--font-sans, sans-serif);dominant-baseline:middle;text-anchor:middle}.node-mark[data-v-138b126f]{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px}.node-icon[data-v-138b126f]{color:#ffd400;filter:drop-shadow(0 0 2px rgb(0 0 0 / .9)) drop-shadow(0 0 2px rgb(0 0 0 / .9))}.node-name[data-v-138b126f]{font:bold 14px var(--font-sans, sans-serif);color:#ffd400;white-space:nowrap;text-shadow:0 0 3px #000,0 0 3px #000,0 1px 2px #000}.overlay.muted .line[data-v-138b126f]{stroke:#fff;opacity:.9;filter:drop-shadow(0 0 1.5px rgb(0 0 0 / .85))}.overlay.muted .label[data-v-138b126f],.overlay.muted .node-name[data-v-138b126f]{fill:#fff;color:#fff}.overlay.muted .node-icon[data-v-138b126f]{color:#fff;opacity:.95}.aligner[data-v-9aa71b16]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;flex-direction:column;background:#000000d9;touch-action:none}.bar[data-v-9aa71b16]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.marking[data-v-9aa71b16]{font-size:var(--font-md);color:var(--color-text);white-space:nowrap}.marking strong[data-v-9aa71b16]{color:var(--color-primary)}.hint[data-v-9aa71b16]{flex:1;font-size:var(--font-sm);color:var(--color-text-muted)}.mark-label[data-v-9aa71b16]{fill:#ffd400;stroke:#000;stroke-width:3;paint-order:stroke;font:700 16px sans-serif;dominant-baseline:middle;pointer-events:none}.icon-close[data-v-9aa71b16]{display:inline-flex;padding:6px}.stage[data-v-9aa71b16]{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:var(--space-3);overflow:hidden}.stage.grab[data-v-9aa71b16]{cursor:grab}.viewport[data-v-9aa71b16]{position:relative;display:inline-block;transform-origin:center center;will-change:transform}.stage img[data-v-9aa71b16]{display:block;max-width:90vw;max-height:78vh;width:auto;height:auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.overlay[data-v-9aa71b16]{position:absolute;top:0;left:0;pointer-events:none}.move-hit[data-v-9aa71b16]{fill:#0000;pointer-events:all;cursor:grab}.node-mark[data-v-9aa71b16]{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none}.node-icon[data-v-9aa71b16]{color:#ffd400;filter:drop-shadow(0 0 2px rgb(0 0 0 / .9)) drop-shadow(0 0 2px rgb(0 0 0 / .9))}.node-name[data-v-9aa71b16]{font:700 15px sans-serif;color:#ffd400;white-space:nowrap;text-shadow:0 0 3px #000,0 0 3px #000,0 1px 2px #000}.line[data-v-9aa71b16]{stroke:#ffd400;stroke-width:3}.line-hit[data-v-9aa71b16]{stroke:transparent;stroke-width:22;pointer-events:stroke;cursor:move}.handle[data-v-9aa71b16]{fill:#ffd400e6;stroke:#000;stroke-width:1.5;pointer-events:all;cursor:grab}.photos[data-v-abaa3fa1]{display:flex;flex-direction:column;gap:var(--space-2)}.photos-head[data-v-abaa3fa1]{display:flex;align-items:center;justify-content:space-between}.add-actions[data-v-abaa3fa1]{display:flex;gap:var(--space-2)}.add-btn[data-v-abaa3fa1]{font-size:var(--font-sm)}.thumbs[data-v-abaa3fa1]{display:flex;flex-wrap:wrap;gap:var(--space-2)}.thumb[data-v-abaa3fa1]{position:relative;width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border)}.thumb img[data-v-abaa3fa1]{width:100%;height:100%;object-fit:cover;cursor:zoom-in;display:block}.thumb-del[data-v-abaa3fa1]{position:absolute;top:2px;right:2px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;border-radius:50%;background:#0000008c;color:#fff}.thumb.aligned[data-v-abaa3fa1]:after{content:"";position:absolute;bottom:3px;right:3px;width:8px;height:8px;border-radius:50%;background:#ffd400;border:1px solid rgba(0,0,0,.4)}.muted[data-v-abaa3fa1]{margin:0;font-size:var(--font-sm);color:var(--color-text-muted)}.error[data-v-abaa3fa1]{margin:0;color:var(--color-danger);font-size:var(--font-sm)}.inspector[data-v-da9938b5]{display:flex;flex-direction:column;gap:var(--space-2)}.inspector-head[data-v-da9938b5],.inspector-foot[data-v-da9938b5]{display:flex;align-items:center;justify-content:space-between}.inspector-head h3[data-v-da9938b5]{margin:0;font-size:var(--font-md)}.head-actions[data-v-da9938b5]{display:flex;align-items:center;gap:var(--space-1)}.hdr-close[data-v-da9938b5]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:15px;line-height:1;border:1px solid transparent;border-radius:var(--radius-md, 6px);background:transparent;color:var(--color-text-muted);cursor:pointer}.hdr-close[data-v-da9938b5]:hover{background:var(--color-bg);color:var(--color-text);border-color:var(--color-border)}.hint[data-v-da9938b5]{font-weight:400;color:var(--color-text-muted)}.id-hint[data-v-da9938b5]{margin:-2px 0 0;font-size:var(--font-xs);color:var(--color-text-muted)}.id-hint code[data-v-da9938b5]{font-size:var(--font-xs)}.orient-row[data-v-da9938b5],.conn-row[data-v-da9938b5]{display:flex;gap:var(--space-2);flex-wrap:wrap}.attr-grid[data-v-da9938b5]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.attr-field .field-label[data-v-da9938b5]{margin-bottom:2px}.check-line[data-v-da9938b5]{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-sm);color:var(--color-text-muted);padding:6px 0}.point-row[data-v-da9938b5]{display:flex;gap:4px;margin-bottom:4px}.point-row .pt-label[data-v-da9938b5],.point-row .pt-ord[data-v-da9938b5]{flex:1 1 0;min-width:0}.point-row .pt-kind[data-v-da9938b5]{flex:0 0 84px}.point-row .pt-del[data-v-da9938b5]{flex:0 0 auto;padding:0 8px}.point-actions[data-v-da9938b5]{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.orient-row .btn[data-v-da9938b5]{flex:1;justify-content:center;font-size:var(--font-sm)}.error[data-v-da9938b5]{margin:0;color:var(--color-danger);font-size:var(--font-sm)}.danger-zone[data-v-da9938b5]{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.danger-zone .hint[data-v-da9938b5]{font-size:var(--font-xs);line-height:1.4}.inspector-foot[data-v-da9938b5]{margin-top:var(--space-2)}.inspector[data-v-95858ace]{display:flex;flex-direction:column;gap:var(--space-2)}.inspector-head[data-v-95858ace],.inspector-foot[data-v-95858ace]{display:flex;align-items:center;justify-content:space-between}.inspector-head h3[data-v-95858ace]{margin:0;font-size:var(--font-md)}.head-actions[data-v-95858ace]{display:flex;align-items:center;gap:var(--space-1)}.hdr-close[data-v-95858ace]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:15px;line-height:1;border:1px solid transparent;border-radius:var(--radius-md, 6px);background:transparent;color:var(--color-text-muted);cursor:pointer}.hdr-close[data-v-95858ace]:hover{background:var(--color-bg);color:var(--color-text);border-color:var(--color-border)}.grid2[data-v-95858ace]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.line-row[data-v-95858ace]{display:flex;align-items:center;gap:var(--space-2)}.pipe-types[data-v-95858ace]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.ptype[data-v-95858ace]{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;font-size:var(--font-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer}.ptype[data-v-95858ace]:hover{background:var(--color-bg)}.ptype.active[data-v-95858ace]{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary);font-weight:600}.ptype .sw[data-v-95858ace]{width:14px;height:14px;border-radius:3px;border:1px solid rgb(0 0 0 / .25);flex-shrink:0}.seg-domain[data-v-95858ace]{font-weight:400;color:var(--color-text-muted)}.attr-grid[data-v-95858ace]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.attr-field .field-label[data-v-95858ace]{margin-bottom:2px}.check-line[data-v-95858ace]{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-sm);color:var(--color-text-muted);padding:6px 0}.line-row .line-color[data-v-95858ace]{width:36px;height:32px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none;flex-shrink:0}.line-row .select-input[data-v-95858ace]{flex:1}.reverse-btn[data-v-95858ace]{justify-content:center}.split-controls[data-v-95858ace]{display:flex;align-items:center;gap:var(--space-2)}.split-count[data-v-95858ace]{width:64px}.split-unit[data-v-95858ace]{font-size:var(--font-sm);color:var(--color-text-muted)}.split-controls .btn[data-v-95858ace]{margin-left:auto;font-size:var(--font-sm)}.hint[data-v-95858ace]{margin:0;font-size:var(--font-xs);color:var(--color-text-muted);line-height:1.4}.danger-zone[data-v-95858ace]{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.inspector-foot[data-v-95858ace]{margin-top:var(--space-2)}.inspector[data-v-a2a7a3c6]{display:flex;flex-direction:column;gap:var(--space-2)}.inspector-head[data-v-a2a7a3c6]{display:flex;align-items:center;justify-content:space-between}.inspector-head h3[data-v-a2a7a3c6]{margin:0;font-size:var(--font-md)}.head-actions[data-v-a2a7a3c6]{display:flex;align-items:center;gap:var(--space-1)}.hdr-close[data-v-a2a7a3c6]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:15px;line-height:1;border:1px solid transparent;border-radius:var(--radius-md, 6px);background:transparent;color:var(--color-text-muted);cursor:pointer}.hdr-close[data-v-a2a7a3c6]:hover{background:var(--color-bg);color:var(--color-text);border-color:var(--color-border)}.summary[data-v-a2a7a3c6]{margin:0;font-size:var(--font-sm);color:var(--color-text-muted)}.apply-row[data-v-a2a7a3c6]{display:flex;gap:var(--space-2)}.pipe-types[data-v-a2a7a3c6]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.ptype[data-v-a2a7a3c6]{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;font-size:var(--font-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer}.ptype[data-v-a2a7a3c6]:hover{background:var(--color-bg)}.ptype .sw[data-v-a2a7a3c6]{width:14px;height:14px;border-radius:3px;border:1px solid rgb(0 0 0 / .25);flex-shrink:0}.apply-row .select-input[data-v-a2a7a3c6]{flex:1}.apply-row .btn[data-v-a2a7a3c6]{flex:1;justify-content:center}.color-input[data-v-a2a7a3c6]{width:40px;height:32px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none;flex-shrink:0}.apply-row .name-input[data-v-a2a7a3c6]{flex:1}.hint[data-v-a2a7a3c6]{margin:0;font-size:var(--font-sm);color:var(--color-text-muted)}.danger-zone[data-v-a2a7a3c6]{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.danger-zone .hint[data-v-a2a7a3c6]{font-size:var(--font-xs);line-height:1.4}.inspector-foot[data-v-a2a7a3c6]{margin-top:var(--space-2)}.inspector-foot .btn[data-v-a2a7a3c6]{width:100%;justify-content:center}.node[data-v-e76fbc04]{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;color:var(--accent)}.node[data-v-e76fbc04] .vue-flow__handle{opacity:0;pointer-events:none}.node.dimmed[data-v-e76fbc04]{opacity:.25}.node.selected .symbol[data-v-e76fbc04],.node.selected .core[data-v-e76fbc04]{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.symbol[data-v-e76fbc04]{display:flex;align-items:center;justify-content:center;transform-origin:center}.core[data-v-e76fbc04]{width:10px;height:10px;border-radius:50%;background:var(--color-default-node)}.photo-badge[data-v-e76fbc04]{position:absolute;top:-4px;right:-4px;color:var(--color-primary-text);background:var(--color-primary);border-radius:50%;padding:2px}.label[data-v-e76fbc04]{position:absolute;font-size:var(--font-xs);font-weight:600;color:var(--color-text);white-space:nowrap;pointer-events:none;z-index:5;text-shadow:0 1px 2px var(--color-bg),0 -1px 2px var(--color-bg),1px 0 2px var(--color-bg),-1px 0 2px var(--color-bg),0 0 3px var(--color-bg)}.label--bottom[data-v-e76fbc04]{top:calc(100% + 2px);left:50%;transform:translate(-50%)}.label--top[data-v-e76fbc04]{bottom:calc(100% + 2px);left:50%;transform:translate(-50%)}.label--right[data-v-e76fbc04]{left:calc(100% + 4px);top:50%;transform:translateY(-50%)}.label--left[data-v-e76fbc04]{right:calc(100% + 4px);top:50%;transform:translateY(-50%)}.label--bottom-right[data-v-e76fbc04]{top:calc(100% - 1px);left:calc(100% + 1px)}.label--bottom-left[data-v-e76fbc04]{top:calc(100% - 1px);right:calc(100% + 1px)}.label--top-right[data-v-e76fbc04]{bottom:calc(100% - 1px);left:calc(100% + 1px)}.label--top-left[data-v-e76fbc04]{bottom:calc(100% - 1px);right:calc(100% + 1px)}.label-chip[data-v-dfffdab7]{position:absolute;padding:1px 6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-xs);color:var(--color-text-muted);pointer-events:none}.layout-sel[data-v-055a15f6]{padding:5px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--font-sm)}.layout-sel[data-v-055a15f6]:disabled{opacity:.6;cursor:default}.canvas-wrap[data-v-677cebd8]{position:relative;height:100%;width:100%}.canvas-wrap[data-v-677cebd8]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;border-radius:2px;box-shadow:inset 0 0 0 2px var(--mode-accent, transparent);transition:box-shadow .15s ease}.canvas-wrap.mode-draw[data-v-677cebd8]{--mode-accent: var(--color-primary)}.canvas-wrap.mode-select[data-v-677cebd8]{--mode-accent: #f59e0b}.canvas-wrap.mode-draw[data-v-677cebd8] .vue-flow__pane{cursor:crosshair}.canvas-wrap.arming[data-v-677cebd8] .vue-flow__edge{cursor:copy}.place-banner[data-v-677cebd8]{position:absolute;top:var(--space-3);left:50%;transform:translate(-50%);z-index:6;display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 12px;font-size:var(--font-sm);color:#fff;background:var(--color-primary);border-radius:999px;box-shadow:0 2px 8px #00000040}.place-cancel[data-v-677cebd8]{border:none;background:#fff3;color:#fff;border-radius:999px;padding:2px 8px;cursor:pointer;font-size:12px}.canvas-toolbar[data-v-677cebd8]{position:absolute;z-index:5;top:var(--space-3);left:var(--space-3);display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.mode-toggle[data-v-677cebd8]{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface);box-shadow:var(--shadow-1)}.mode-btn[data-v-677cebd8]{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:none;border-right:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);font-size:var(--font-sm)}.mode-btn[data-v-677cebd8]:last-child{border-right:none}.mode-btn.active[data-v-677cebd8]{background:var(--mode-accent, var(--color-primary));color:#fff;font-weight:600}.undo-redo[data-v-677cebd8]{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface);box-shadow:var(--shadow-1)}.tool-icon[data-v-677cebd8]{display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;border:none;border-right:1px solid var(--color-border);background:transparent;color:var(--color-text)}.tool-icon[data-v-677cebd8]:last-child{border-right:none}.tool-icon[data-v-677cebd8]:disabled{opacity:.4;cursor:default}.settings-wrap[data-v-677cebd8]{position:relative;display:inline-flex}.settings-btn[data-v-677cebd8]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-1)}.settings-btn.active[data-v-677cebd8]{background:var(--color-bg)}.settings-backdrop[data-v-677cebd8]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15}.settings-panel[data-v-677cebd8]{position:absolute;top:calc(100% + var(--space-1));right:0;z-index:16;display:flex;flex-direction:column;gap:var(--space-2);min-width:168px;padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-2, 0 4px 16px rgb(0 0 0 / .18))}.line-picker[data-v-677cebd8]{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-surface);padding:3px 8px;border-radius:var(--radius-pill);box-shadow:var(--shadow-1)}.line-color[data-v-677cebd8]{width:26px;height:22px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none}.line-sel[data-v-677cebd8]{font-size:var(--font-sm);padding:2px 4px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.opt[data-v-677cebd8]{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-sm);color:var(--color-text-muted)}.opt--sep[data-v-677cebd8]{margin-top:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.discipline-sel[data-v-677cebd8]{padding:5px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--font-sm);box-shadow:var(--shadow-1)}.copy-btn[data-v-677cebd8]{font-size:var(--font-sm)}.flow-host[data-v-677cebd8]{position:absolute;top:0;right:0;bottom:0;left:0}.flow-host.drawing[data-v-677cebd8]{cursor:crosshair;touch-action:none}.flow[data-v-677cebd8]{height:100%;width:100%;background:var(--color-bg)}.flow[data-v-677cebd8] .vue-flow__controls,.flow[data-v-677cebd8] .vue-flow__minimap{bottom:calc(16px + env(safe-area-inset-bottom,0px))}@media(max-width:768px){.flow[data-v-677cebd8] .vue-flow__controls,.flow[data-v-677cebd8] .vue-flow__minimap{bottom:calc(76px + env(safe-area-inset-bottom,0px))}}.draw-ghost[data-v-677cebd8]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:4}.ghost-line[data-v-677cebd8]{stroke:var(--color-primary);stroke-width:2;stroke-dasharray:5 4}.live-marker[data-v-677cebd8]{position:absolute;top:0;left:0;z-index:6;pointer-events:none;transition:transform 1.2s linear;will-change:transform}.lm-dot[data-v-677cebd8]{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:999px;background:#16a34a;border:2px solid #fff;box-shadow:0 0 #16a34a80;animation:lm-pulse-677cebd8 1.4s infinite}.lm-label[data-v-677cebd8]{position:absolute;left:12px;top:-10px;white-space:nowrap;font-size:11px;font-weight:600;color:#14532d;background:#16a34a24;padding:1px 6px;border-radius:999px}@keyframes lm-pulse-677cebd8{0%{box-shadow:0 0 #16a34a80}70%{box-shadow:0 0 0 12px #16a34a00}to{box-shadow:0 0 #16a34a00}}.snap-ring[data-v-677cebd8]{fill:none;stroke:var(--color-primary);stroke-width:2}.empty-overlay[data-v-677cebd8]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);pointer-events:none;text-align:center;padding:0 var(--space-5)}.empty-overlay p[data-v-677cebd8]{margin:0;max-width:360px}.muted[data-v-677cebd8]{color:var(--color-text-muted)}.photo-tile[data-v-d3dc1546]{position:relative;display:block;line-height:0}.photo-tile img[data-v-d3dc1546]{width:100%;height:auto;display:block;cursor:zoom-in;border-radius:var(--radius-sm, 4px)}.library[data-v-723c6030]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;flex-direction:column;background:var(--color-bg)}.library--panel[data-v-723c6030]{position:static;inset:auto;z-index:auto;height:auto;display:block;background:transparent}.library--panel .bar[data-v-723c6030]{padding:0 0 var(--space-2);background:transparent;border-bottom:none}.library--panel .grid[data-v-723c6030]{grid-template-columns:1fr;overflow:visible;padding:0}.library--panel .thumb[data-v-723c6030]{aspect-ratio:auto}.link-banner[data-v-723c6030]{margin:0 0 var(--space-2);padding:var(--space-2);font-size:var(--font-sm);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.bar[data-v-723c6030]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.title[data-v-723c6030]{font-size:var(--font-md)}.spacer[data-v-723c6030]{flex:1}.icon[data-v-723c6030]{display:inline-flex;padding:6px}.muted[data-v-723c6030]{color:var(--color-text-muted);font-weight:400}.error[data-v-723c6030]{margin:var(--space-2) var(--space-3) 0;color:var(--color-danger);font-size:var(--font-sm)}.grid[data-v-723c6030]{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-auto-rows:max-content;align-content:start;gap:var(--space-2);padding:var(--space-3)}.cell[data-v-723c6030]{position:relative;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.thumb[data-v-723c6030]{position:relative;aspect-ratio:1;overflow:hidden}.thumb img[data-v-723c6030]{width:100%;height:100%;object-fit:cover;cursor:zoom-in;display:block}.cell-del[data-v-723c6030]{position:absolute;top:4px;right:4px;display:inline-flex;padding:4px;border:none;border-radius:50%;background:#0000008c;color:#fff}.cell.linked[data-v-723c6030]{outline:3px solid var(--color-primary);outline-offset:-3px}.plate[data-v-723c6030]{display:flex;align-items:center;gap:var(--space-1);min-height:22px;padding:3px 5px;border-top:1px solid var(--color-border);background:var(--color-surface);font-size:10px;line-height:1;color:var(--color-text);overflow:hidden}.counts[data-v-723c6030]{display:inline-flex;gap:5px;flex-shrink:0}.count[data-v-723c6030]{display:inline-flex;align-items:center;gap:2px;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.devices[data-v-723c6030]{display:inline-flex;align-items:center;gap:4px;margin-left:auto;overflow:hidden}.dev[data-v-723c6030]{display:inline-flex;align-items:center;gap:1px;color:var(--color-primary);flex-shrink:0}.dev small[data-v-723c6030]{font-size:9px;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.cell.tagged[data-v-723c6030]{border-color:var(--color-primary)}.untagged[data-v-723c6030]{color:var(--color-text-muted);opacity:.5}.cell-check[data-v-723c6030]{position:absolute;top:4px;left:4px;display:inline-flex;padding:3px;border-radius:50%;background:var(--color-primary);color:var(--color-primary-text)}.empty[data-v-723c6030]{padding:var(--space-6) var(--space-4);text-align:center}.viewer[data-v-723c6030]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;display:flex;flex-direction:column;background:#000000e6;touch-action:none}.viewer-bar[data-v-723c6030]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.viewer-bar .grow[data-v-723c6030]{flex:1}.viewer-caption[data-v-723c6030]{color:#fff;font-size:var(--font-sm)}.counter[data-v-723c6030]{color:var(--color-text-muted);font-size:var(--font-sm)}.viewer-bar .icon[data-v-723c6030]{background:var(--color-surface)}.stage[data-v-723c6030]{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:var(--space-3)}.stage.grab[data-v-723c6030]{cursor:grab}.viewport[data-v-723c6030]{position:relative;display:inline-block;transform-origin:center center;will-change:transform}.viewport img[data-v-723c6030]{display:block;max-width:92vw;max-height:82vh;width:auto;height:auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.nav[data-v-723c6030]{position:absolute;top:50%;transform:translateY(-50%);z-index:2;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:50%;background:#00000080;color:#fff;cursor:pointer}.nav[data-v-723c6030]:hover{background:#000000b3}.nav-prev[data-v-723c6030]{left:var(--space-3)}.nav-next[data-v-723c6030]{right:var(--space-3)}.sync-overlay[data-v-c8ecb3cd]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0000004d;display:flex;justify-content:flex-end}.sync[data-v-c8ecb3cd]{width:min(440px,94vw);height:100%;background:var(--color-surface);border-left:1px solid var(--color-border);display:flex;flex-direction:column;box-shadow:-4px 0 24px #0000002e}.sync-head[data-v-c8ecb3cd]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.sync-head h2[data-v-c8ecb3cd]{margin:0;font-size:var(--font-lg)}.hdr-close[data-v-c8ecb3cd]{display:inline-flex;padding:6px;border:none;background:transparent;color:var(--color-text-muted);border-radius:var(--radius-md);cursor:pointer}.sync-body[data-v-c8ecb3cd]{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.grp h3[data-v-c8ecb3cd]{margin:0 0 var(--space-2);font-size:var(--font-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.fl[data-v-c8ecb3cd]{display:block;font-size:var(--font-sm);margin:var(--space-2) 0 2px}.two[data-v-c8ecb3cd]{display:flex;gap:var(--space-2)}.two>div[data-v-c8ecb3cd]{flex:1}.row[data-v-c8ecb3cd]{display:flex;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap}.hint[data-v-c8ecb3cd]{margin:0 0 var(--space-2);font-size:var(--font-sm);color:var(--color-text-muted)}.ok[data-v-c8ecb3cd]{margin:0;color:var(--color-success, #15803d);font-size:var(--font-sm)}.error[data-v-c8ecb3cd]{margin:0;color:var(--color-danger);font-size:var(--font-sm)}.viewer[data-v-6c9c58ba]{width:min(560px,96vw);display:flex;flex-direction:column;max-height:92vh}.viewer-body[data-v-6c9c58ba]{padding:var(--space-3) var(--space-4);overflow-y:auto}.photo-wrap[data-v-6c9c58ba]{position:relative;border-radius:var(--radius-md);overflow:hidden;background:#000}.photo-wrap img[data-v-6c9c58ba]{width:100%;max-height:64vh;object-fit:contain;display:block}.loading img[data-v-6c9c58ba]{filter:blur(2px);opacity:.7}.photo-mark[data-v-6c9c58ba]{position:absolute;width:26px;height:26px;transform:translate(-50%,-50%);border:3px solid #ef4444;border-radius:999px;box-shadow:0 0 0 2px #ffffffd9,0 0 6px #00000080;pointer-events:none}.photo-mark[data-v-6c9c58ba]:after{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;background:#ef4444;border-radius:999px}.note[data-v-6c9c58ba]{margin:var(--space-3) 0 0;white-space:pre-wrap}.by[data-v-6c9c58ba]{margin:var(--space-2) 0 0;font-size:var(--font-sm);color:var(--color-text-muted);display:inline-flex;align-items:center;gap:4px}.pane-inner[data-v-f04b92dc]{display:flex;flex-direction:column;height:100%;min-height:0}.toolbar[data-v-f04b92dc]{display:flex;gap:6px;padding:var(--space-3) var(--space-4) 0;flex-wrap:wrap}.pane-body[data-v-f04b92dc]{flex:1;min-height:0;overflow-y:auto;padding:var(--space-3) var(--space-4)}.empty[data-v-f04b92dc]{color:var(--color-text-muted);font-size:var(--font-sm)}.ok[data-v-f04b92dc]{margin:var(--space-2) var(--space-4) 0;color:var(--color-success, #15803d);font-size:var(--font-sm)}.error[data-v-f04b92dc]{margin:var(--space-2) var(--space-4) 0;color:var(--color-danger);font-size:var(--font-sm)}.obs-list[data-v-f04b92dc]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.obs[data-v-f04b92dc]{display:flex;gap:10px;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer}.obs[data-v-f04b92dc]:hover{border-color:var(--color-primary, #2563eb)}.thumb[data-v-f04b92dc]{width:56px;height:56px;border-radius:var(--radius-sm);overflow:hidden;flex:none;display:grid;place-items:center;background:var(--color-bg);color:var(--color-text-muted)}.thumb img[data-v-f04b92dc]{width:100%;height:100%;object-fit:cover}.meta[data-v-f04b92dc]{min-width:0;flex:1}.row1[data-v-f04b92dc]{display:flex;align-items:center;gap:8px}.kind[data-v-f04b92dc]{font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:var(--color-text-muted)}.anchor[data-v-f04b92dc]{display:inline-flex;align-items:center;gap:2px;font-size:var(--font-sm);color:var(--color-text-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dot[data-v-f04b92dc]{width:9px;height:9px;border-radius:999px;margin-left:auto;flex:none}.dot.pending[data-v-f04b92dc]{background:#f59e0b}.dot.shared[data-v-f04b92dc]{background:#22c55e}.dot.remote[data-v-f04b92dc]{background:#3b82f6}.note[data-v-f04b92dc]{margin:2px 0;font-size:var(--font-sm)}.by[data-v-f04b92dc]{margin:0;font-size:12px;color:var(--color-text-muted)}.capture[data-v-674fbd0c]{width:min(440px,96vw);display:flex;flex-direction:column;max-height:92vh}.capture-body[data-v-674fbd0c]{padding:var(--space-3) var(--space-4);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3)}.pinned[data-v-674fbd0c]{margin:0;font-size:var(--font-sm);color:var(--color-text-muted)}.photo-btn[data-v-674fbd0c]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;min-height:160px;border:1.5px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;background:var(--color-bg)}.photo-wrap[data-v-674fbd0c]{position:relative;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;cursor:crosshair;background:#000}.photo-wrap img[data-v-674fbd0c]{width:100%;max-height:340px;object-fit:contain;display:block}.photo-mark[data-v-674fbd0c]{position:absolute;width:22px;height:22px;transform:translate(-50%,-50%);border:3px solid #ef4444;border-radius:999px;box-shadow:0 0 0 2px #ffffffd9,0 0 6px #00000080;pointer-events:none}.photo-mark[data-v-674fbd0c]:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;background:#ef4444;border-radius:999px}.tap-hint[data-v-674fbd0c]{position:absolute;left:8px;bottom:8px;font-size:12px;background:#0009;color:#fff;padding:2px 8px;border-radius:999px}.retake-btn[data-v-674fbd0c]{position:absolute;top:8px;right:8px;font-size:12px;background:#0009;color:#fff;border:none;padding:3px 10px;border-radius:999px;cursor:pointer}.note[data-v-674fbd0c]{resize:vertical}.kinds[data-v-674fbd0c]{display:flex;flex-wrap:wrap;gap:6px}.chip[data-v-674fbd0c]{padding:6px 12px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:var(--font-sm)}.chip.on[data-v-674fbd0c]{background:var(--color-primary, #2563eb);border-color:transparent;color:#fff}.error[data-v-674fbd0c]{margin:0;color:var(--color-danger);font-size:var(--font-sm)}.pane-inner[data-v-62d901d9]{display:flex;flex-direction:column;height:100%;min-height:0}.bar[data-v-62d901d9]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4) 0}.live[data-v-62d901d9]{font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--color-text-muted);display:inline-flex;align-items:center;gap:6px}.live.on[data-v-62d901d9]{color:#16a34a}.live.on[data-v-62d901d9]:before{content:"";width:8px;height:8px;border-radius:999px;background:#16a34a;box-shadow:0 0 #16a34a80;animation:pulse-62d901d9 1.4s infinite}@keyframes pulse-62d901d9{0%{box-shadow:0 0 #16a34a80}70%{box-shadow:0 0 0 7px #16a34a00}to{box-shadow:0 0 #16a34a00}}.feed[data-v-62d901d9]{flex:1;min-height:0;overflow-y:auto;padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.empty[data-v-62d901d9]{color:var(--color-text-muted);font-size:var(--font-sm)}.msg[data-v-62d901d9]{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:6px 10px}.head[data-v-62d901d9]{display:flex;justify-content:space-between;gap:8px}.who[data-v-62d901d9]{font-weight:600;font-size:var(--font-sm)}.time[data-v-62d901d9]{color:var(--color-text-muted);font-size:12px}.body[data-v-62d901d9]{margin:2px 0 0;font-size:var(--font-sm);white-space:pre-wrap}.error[data-v-62d901d9]{margin:0 var(--space-4);color:var(--color-danger);font-size:var(--font-sm)}.composer[data-v-62d901d9]{display:flex;gap:6px;padding:var(--space-2) var(--space-4) var(--space-3);border-top:1px solid var(--color-border)}.composer .text-input[data-v-62d901d9]{flex:1}.editor[data-v-d5cb3f88]{position:relative;display:flex;height:100%}.pane[data-v-d5cb3f88]{overflow-y:auto;min-height:0}.pane--preview[data-v-d5cb3f88]{flex:1 1 0;min-width:0;overflow:hidden;border-left:1px solid var(--color-border)}.editor.preview-open .pane--center[data-v-d5cb3f88]{flex:1 1 0}.pane--right[data-v-d5cb3f88]{flex:0 0 340px;width:340px;padding:var(--space-4);border-left:1px solid var(--color-border);background:var(--color-surface)}.pane--left[data-v-d5cb3f88]{flex:0 0 320px;width:320px;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--color-border);background:var(--color-surface)}.left-head[data-v-d5cb3f88]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}.left-foot[data-v-d5cb3f88]{flex:none;display:flex;justify-content:flex-end;padding:var(--space-2) var(--space-3) calc(var(--space-2) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border);background:var(--color-surface)}.left-title[data-v-d5cb3f88]{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--color-text)}.left-tabs[data-v-d5cb3f88]{display:inline-flex;gap:2px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:2px}.left-tab[data-v-d5cb3f88]{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:none;border-radius:calc(var(--radius-sm) - 1px);background:transparent;color:var(--color-text-muted);font-size:var(--font-sm);cursor:pointer}.left-tab.active[data-v-d5cb3f88]{background:var(--color-surface);color:var(--color-text);font-weight:600;box-shadow:var(--shadow-1)}.left-body[data-v-d5cb3f88]{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4)}.pane--left.collapsed[data-v-d5cb3f88]{flex-basis:40px;width:40px}.rail[data-v-d5cb3f88]{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer}.rail[data-v-d5cb3f88]:hover{background:var(--color-bg);color:var(--color-text)}.rail-label[data-v-d5cb3f88]{writing-mode:vertical-rl;transform:rotate(180deg);font-size:var(--font-sm);letter-spacing:.04em;min-height:0;max-height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pane--center[data-v-d5cb3f88]{position:relative;flex:1 1 auto;min-width:0;padding:0;overflow:hidden}.pane--right[data-v-d5cb3f88] .inspector-head{position:sticky;top:0;z-index:2;margin:calc(-1 * var(--space-4)) calc(-1 * var(--space-4)) var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.pane--right[data-v-d5cb3f88] .inspector-foot{position:sticky;bottom:0;z-index:2;margin:auto calc(-1 * var(--space-4)) calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom,0px));background:var(--color-surface);border-top:1px solid var(--color-border)}.canvas-actions[data-v-d5cb3f88]{position:absolute;left:15px;bottom:calc(150px + env(safe-area-inset-bottom,0px));z-index:5;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.app-action[data-v-d5cb3f88]{display:inline-flex;align-items:center;gap:var(--space-2);height:38px;padding:0 var(--space-3);font-size:var(--font-sm);font-weight:600;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer}.app-action[data-v-d5cb3f88]:hover:not(:disabled){background:var(--color-bg);border-color:var(--color-primary, #2563eb)}.app-action[data-v-d5cb3f88]:disabled{opacity:.5;cursor:default}.app-action--primary[data-v-d5cb3f88]{background:var(--color-primary, #2563eb);border-color:var(--color-primary, #2563eb);color:#fff}.app-action--primary[data-v-d5cb3f88]:hover:not(:disabled){background:var(--color-primary-hover, #1d4ed8);border-color:var(--color-primary-hover, #1d4ed8)}.app-sep[data-v-d5cb3f88]{width:1px;height:22px;background:var(--color-border);margin:0 var(--space-1)}.canvas-actions .btn[data-v-d5cb3f88]{font-size:var(--font-sm);box-shadow:0 1px 3px #0000001f}.canvas-actions .btn.live-on[data-v-d5cb3f88]{color:#15803d;border-color:#16a34a;background:#16a34a14}.notices[data-v-d5cb3f88]{position:absolute;top:var(--space-2);right:calc(40px + var(--space-2));z-index:6;max-width:300px;max-height:40vh;overflow-y:auto;border:1px solid var(--color-warn-text);background:var(--color-warn-bg);border-radius:var(--radius-md);padding:var(--space-3);box-shadow:0 1px 3px #00000026}.notices h2[data-v-d5cb3f88]{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);font-size:var(--font-sm);color:var(--color-warn-text)}.notices ul[data-v-d5cb3f88]{margin:0;padding-left:var(--space-4);font-size:var(--font-sm);color:var(--color-text)}.modal-backdrop[data-v-d5cb3f88]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#00000073;padding:var(--space-4)}.modal[data-v-d5cb3f88]{width:min(420px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:0 8px 30px #00000040}.modal-head[data-v-d5cb3f88]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.modal-head h3[data-v-d5cb3f88]{margin:0;font-size:var(--font-md)}.icon-btn[data-v-d5cb3f88]{display:inline-flex;align-items:center;padding:5px 8px}@media(max-width:768px){.pane--preview[data-v-d5cb3f88]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:25;flex:none}.canvas-actions[data-v-d5cb3f88]{bottom:calc(210px + env(safe-area-inset-bottom,0px))}.app-action[data-v-d5cb3f88]{height:32px;padding:0 7px;gap:0}.app-label[data-v-d5cb3f88],.app-sep[data-v-d5cb3f88]{display:none}.pane--right[data-v-d5cb3f88]{position:absolute;top:0;bottom:0;left:0;right:0;width:auto;z-index:20;flex:none;box-shadow:0 0 24px #00000040}.pane--right[data-v-d5cb3f88] .inspector{min-height:100%}.pane--left[data-v-d5cb3f88]:not(.collapsed){position:absolute;top:0;bottom:0;left:0;right:0;width:auto;z-index:20;flex:none;box-shadow:0 0 24px #00000040}}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BmRLXWpJ.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DCQwxkRk.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-D_uavGvn.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-RFb1v-CK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-greek-700-normal-wyJ6jzdA.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-CkZN0sRy.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-CkEo6LDy.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-BV5B8Are.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;direction:ltr}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}:root{--vf-node-bg: #fff;--vf-node-text: #222;--vf-connection-path: #b1b1b7;--vf-handle: #555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;text-align:center;border-width:1px;border-style:solid;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-color:var(--vf-node-color)}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid #555}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color: var(--vf-node-color, #0041d0);--vf-handle: var(--vf-node-color, #0041d0);--vf-box-shadow: var(--vf-node-color, #0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color, #0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{outline:none;border:1px solid var(--vf-node-color, #0041d0)}.vue-flow__node-default{--vf-handle: var(--vf-node-color, #1a192b);--vf-box-shadow: var(--vf-node-color, #1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color, #1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{outline:none;border:1px solid var(--vf-node-color, #1a192b)}.vue-flow__node-output{--vf-handle: var(--vf-node-color, #ff0072);--vf-box-shadow: var(--vf-node-color, #ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color, #ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid var(--vf-node-color, #ff0072)}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{width:6px;height:6px;background:var(--vf-handle);border:1px solid #fff;border-radius:100%}.vue-flow__controls{box-shadow:0 0 2px 1px #00000014}.vue-flow__controls-button{background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:5px}.vue-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.vue-flow__controls-button:hover{background:#f4f4f4}.vue-flow__controls-button:disabled{pointer-events:none}.vue-flow__controls-button:disabled svg{fill-opacity:.4}.vue-flow__minimap{background-color:#fff}.vue-flow__minimap.pannable{cursor:grab}.vue-flow__minimap.dragging{cursor:grabbing}.vue-flow__minimap-mask.pannable{cursor:grab}:root{--color-bg: #f6f7f9;--color-surface: #ffffff;--color-surface-2: #f0f2f5;--color-border: #d8dde3;--color-text: #1b2733;--color-text-muted: #5b6772;--color-primary: #1f6feb;--color-primary-text: #ffffff;--color-danger: #c1392b;--color-warn-bg: #fff3cd;--color-warn-text: #856404;--color-boiler: #e0552b;--color-pump: #1f6feb;--color-valve: #8e44ad;--color-tank: #2e7d6b;--color-sensor: #d4a017;--color-default-node: #5b6772;--color-electrical: #d97706;--color-lowvolt: #16a34a;--color-controls: #7c3aed;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-pill: 999px;--font-xs: 12px;--font-sm: 13px;--font-md: 14px;--font-lg: 16px;--font-xl: 20px;--shadow-1: 0 1px 2px rgba(16, 24, 40, .08);--shadow-2: 0 4px 12px rgba(16, 24, 40, .12)}html,body{margin:0;height:100%}body{overflow:hidden;overscroll-behavior:none}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:var(--font-md);color:var(--color-text);background:var(--color-bg)}#app{height:100%}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}a{color:var(--color-primary)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.btn:hover{background:var(--color-surface-2)}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}.btn--primary:hover{filter:brightness(1.05)}.btn--danger{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-surface)}.field-label{display:block;font-size:var(--font-sm);font-weight:600;color:var(--color-text-muted);margin-bottom:var(--space-1)}.text-input,.select-input{width:100%;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.text-input:focus,.select-input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}:root{--color-bg: #f6f7f9;--color-surface: #ffffff;--color-surface-2: #f1f5f9;--color-border: #e2e8f0;--color-text: #0f172a;--color-text-muted: #64748b;--color-primary: #2563eb;--color-primary-text: #ffffff;--color-danger: #dc2626;--color-ok: #16a34a;--color-warn: #d97706;--color-warn-bg: #fef3c7;--color-warn-text: #92400e;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 999px;--font-family: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-xs: 12px;--font-sm: 13px;--font-md: 14px;--font-lg: 16px;--font-xl: 20px;--shadow-1: 0 1px 2px rgba(16, 24, 40, .08);--shadow-2: 0 4px 12px rgba(16, 24, 40, .12);--shadow-3: 0 20px 50px rgba(15, 23, 42, .35);--bg: var(--color-bg);--surface: var(--color-surface);--surface-2: var(--color-surface-2);--border: var(--color-border);--text: var(--color-text);--muted: var(--color-text-muted);--primary: var(--color-primary);--primary-ink: var(--color-primary-text);--primary-text: var(--color-primary-text);--danger: var(--color-danger);--ok: var(--color-ok);--warn: var(--color-warn);--radius: var(--radius-md)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font-family);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
