.wrap[data-v-146b2496]{display:flex;flex-direction:column;height:100%;min-width:0}.bar[data-v-146b2496]{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid #e5e7eb}.bar button[data-v-146b2496]{min-width:28px;padding:3px 8px;font:inherit;font-size:12px;background:#fff;border:1px solid #e5e7eb;border-radius:5px;cursor:pointer}.zoom[data-v-146b2496]{min-width:42px;text-align:center;font-size:12px;color:#374151}.hint[data-v-146b2496]{margin-left:auto;font-size:11px;color:#9ca3af}.stage[data-v-146b2496]{flex:1;overflow:hidden;position:relative;background:#f7f8fa;background-image:radial-gradient(#d1d5db 1px,transparent 1px);background-size:16px 16px}.stage--pan[data-v-146b2496]{cursor:grab}.canvas[data-v-146b2496]{width:0;height:0}.frame[data-v-146b2496]{border:0;background:#fff;box-shadow:0 1px 4px #00000014}.tree[data-v-dd57f119]{list-style:none;margin:0;padding:0}li>.tree[data-v-dd57f119]{padding-left:10px}.node[data-v-dd57f119]{display:flex;align-items:baseline;gap:6px;width:100%;padding:3px 6px;font:inherit;font-size:12px;text-align:left;background:transparent;border:0;border-radius:4px;color:#374151;cursor:pointer}.node[data-v-dd57f119]:hover{background:#f3f4f6}.node--hover[data-v-dd57f119]{background:#eff6ff}.node--active[data-v-dd57f119]{background:#dbeafe;color:#1d4ed8}.name[data-v-dd57f119]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.type[data-v-dd57f119]{flex:none;font-size:11px;color:#9ca3af}.admin[data-v-3ba80428]{display:flex;flex-direction:column;min-height:100vh;background:#f9fafb;color:#111827;font-size:14px}.admin-top[data-v-3ba80428]{display:flex;align-items:center;gap:12px;padding:12px 20px;background:#fff;border-bottom:1px solid #e5e7eb}.admin-top h1[data-v-3ba80428]{margin:0;font-size:18px}.admin-tabs[data-v-3ba80428]{display:flex;gap:6px;padding:10px 20px;background:#fff;border-bottom:1px solid #e5e7eb}.tab-btn.on[data-v-3ba80428]{border-color:#2563eb;color:#2563eb;background:#eff6ff}.admin-err[data-v-3ba80428]{margin:12px 20px 0;padding:8px 12px;border-radius:8px;color:#b91c1c;background:#fef2f2}.admin-msg[data-v-3ba80428]{margin:12px 20px 0;padding:8px 12px;border-radius:8px;color:#065f46;background:#ecfdf5}.admin-cards[data-v-3ba80428]{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;padding:20px}.acard[data-v-3ba80428]{display:flex;flex-direction:column;gap:4px;padding:16px;background:#fff;border:1px solid #e5e7eb;border-radius:10px}.acard b[data-v-3ba80428]{font-size:22px}.acard span[data-v-3ba80428]{font-size:12px;color:#6b7280}.admin-sec[data-v-3ba80428]{padding:0 20px 24px}.admin-bar[data-v-3ba80428]{display:flex;gap:8px;margin:16px 0}.admin-bar input[data-v-3ba80428]{flex:0 1 280px;padding:7px 10px;font:inherit;border:1px solid #d1d5db;border-radius:8px}.atable[data-v-3ba80428]{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.atable th[data-v-3ba80428],.atable td[data-v-3ba80428]{padding:9px 12px;text-align:left;border-bottom:1px solid #f3f4f6;vertical-align:middle}.atable th[data-v-3ba80428]{font-size:12px;font-weight:600;color:#6b7280;background:#f9fafb}.u-nick[data-v-3ba80428]{font-weight:500}.u-mail[data-v-3ba80428]{font-size:12px;color:#9ca3af}.role[data-v-3ba80428]{padding:2px 8px;font-size:12px;border-radius:9999px;background:#f3f4f6;color:#6b7280}.role.admin[data-v-3ba80428]{background:#eff6ff;color:#2563eb}.role.removed[data-v-3ba80428]{background:#fef2f2;color:#b91c1c}.grant-row[data-v-3ba80428]{display:flex;gap:6px}.grant-input[data-v-3ba80428]{width:84px;padding:4px 8px;font:inherit;font-size:13px;border:1px solid #d1d5db;border-radius:6px}.dim[data-v-3ba80428]{color:#9ca3af;font-size:12px}.app[data-v-45cb9d4b]{display:flex;flex-direction:column;height:100%}.top[data-v-45cb9d4b]{display:flex;align-items:baseline;gap:10px;flex:none;padding:10px 16px;border-bottom:1px solid #e5e7eb}h1[data-v-45cb9d4b]{margin:0;font-size:15px;font-weight:500}.sub[data-v-45cb9d4b]{font-size:12px;color:#9ca3af}.badge[data-v-45cb9d4b]{margin-left:0;padding:2px 7px;font-size:11px;color:#374151;background:#f3f4f6;border-radius:4px}.badge[data-v-45cb9d4b]:first-of-type{margin-left:8px}.spacer[data-v-45cb9d4b]{margin-left:auto}.body[data-v-45cb9d4b]{display:flex;flex:1;min-height:0}.left[data-v-45cb9d4b],.right[data-v-45cb9d4b]{flex:none;overflow-y:auto;border-right:1px solid #e5e7eb}.left[data-v-45cb9d4b]{width:300px;padding:14px;box-sizing:border-box}.right[data-v-45cb9d4b]{width:260px;border-right:0;border-left:1px solid #e5e7eb;display:flex;flex-direction:column;overflow-y:auto;padding-bottom:8px}.center[data-v-45cb9d4b]{flex:1;min-width:0}.field[data-v-45cb9d4b]{display:block;margin-bottom:12px}.ref-preview[data-v-45cb9d4b]{margin-bottom:12px;padding:8px;background:#f7f8fa;border:1px solid #e5e7eb;border-radius:8px}.ref-preview img[data-v-45cb9d4b]{display:block;width:100%;max-height:160px;object-fit:contain;border-radius:6px;background:#fff}.ref-meta[data-v-45cb9d4b]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}.ref-name[data-v-45cb9d4b]{flex:1;min-width:0;font-size:12px;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.label[data-v-45cb9d4b]{display:block;margin-bottom:5px;font-size:12px;color:#6b7280}textarea[data-v-45cb9d4b],select[data-v-45cb9d4b]{width:100%;box-sizing:border-box;padding:8px 10px;font:inherit;font-size:13px;line-height:1.6;color:inherit;background:#fff;border:1px solid #e5e7eb;border-radius:7px}textarea[data-v-45cb9d4b]{resize:vertical}.actions[data-v-45cb9d4b]{display:flex;gap:6px}button[data-v-45cb9d4b]{padding:7px 14px;font:inherit;font-size:13px;background:#fff;border:1px solid #e5e7eb;border-radius:7px;cursor:pointer}button.primary[data-v-45cb9d4b]{flex:1;color:#fff;background:#111827;border-color:#111827}button[data-v-45cb9d4b]:disabled{opacity:.4;cursor:default}.error[data-v-45cb9d4b]{margin:12px 0 0;padding:9px 11px;font-size:12px;line-height:1.6;color:#991b1b;background:#fef2f2;border-radius:7px}.stats[data-v-45cb9d4b],.kv[data-v-45cb9d4b]{margin:14px 0 0;font-size:12px}.stats div[data-v-45cb9d4b],.kv div[data-v-45cb9d4b]{display:flex;justify-content:space-between;padding:3px 0}.stats dt[data-v-45cb9d4b],.kv dt[data-v-45cb9d4b]{color:#9ca3af}.stats dd[data-v-45cb9d4b],.kv dd[data-v-45cb9d4b]{margin:0;color:#374151}.mono[data-v-45cb9d4b]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.warn[data-v-45cb9d4b]{margin:12px 0 0;padding-left:16px;font-size:12px;line-height:1.7;color:#92400e}.source[data-v-45cb9d4b]{margin-top:14px;font-size:12px;color:#6b7280}.source pre[data-v-45cb9d4b]{margin:8px 0 0;padding:10px;font-size:11px;line-height:1.6;background:#f7f8fa;border-radius:6px;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.sep[data-v-45cb9d4b]{margin:16px 0 4px;border:0;border-top:1px dashed #e5e7eb}.section[data-v-45cb9d4b]{margin-top:12px}.section-title[data-v-45cb9d4b]{margin-bottom:8px;font-size:12px;font-weight:600;color:#374151}.page-tabs[data-v-45cb9d4b]{display:flex;align-items:center;gap:4px;flex:none;padding:6px 12px;border-bottom:1px solid #e5e7eb;background:#f9fafb;overflow-x:auto}.tab[data-v-45cb9d4b]{display:flex;align-items:center;gap:4px;max-width:180px;padding:4px 8px;font-size:12px;color:#374151;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;flex:none}.tab.active[data-v-45cb9d4b]{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;font-weight:500}.tab-name[data-v-45cb9d4b]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-rename[data-v-45cb9d4b]{width:90px;min-width:0;padding:1px 4px;font:inherit;font-size:12px;color:inherit;background:#fff;border:1px solid #2563eb;border-radius:4px}.tab-del[data-v-45cb9d4b]{padding:0 4px;color:#b91c1c;border:none;background:none;font-size:12px}.tab-del[data-v-45cb9d4b]:hover{background:#fee2e2;border-radius:4px}.tab-add[data-v-45cb9d4b],.page-reset[data-v-45cb9d4b]{flex:none}.proj-title[data-v-45cb9d4b]{width:160px;padding:3px 8px;font:inherit;font-size:14px;font-weight:500;color:#111827;background:transparent;border:1px solid transparent;border-radius:6px}.proj-title[data-v-45cb9d4b]:hover{border-color:#e5e7eb;background:#fff}.proj-title[data-v-45cb9d4b]:focus{border-color:#2563eb;background:#fff;outline:none}.prop-sep[data-v-45cb9d4b]{margin:10px 0;border:none;border-top:1px solid #f3f4f6}.snap-wrap[data-v-45cb9d4b]{position:relative;display:inline-flex}.snap-menu[data-v-45cb9d4b]{position:absolute;top:calc(100% + 6px);right:0;z-index:50;width:300px;max-height:420px;overflow-y:auto;padding:10px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 8px 24px #0000001a}.share-menu[data-v-45cb9d4b]{width:340px}.snap-head[data-v-45cb9d4b]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:12px;font-weight:600;color:#374151}.snap-item[data-v-45cb9d4b]{padding:8px;border:1px solid #e5e7eb;border-radius:7px;margin-bottom:6px}.snap-name[data-v-45cb9d4b]{width:100%;padding:2px 4px;font:inherit;font-size:13px;font-weight:500;color:#111827;background:transparent;border:1px solid transparent;border-radius:4px}.snap-name[data-v-45cb9d4b]:hover{border-color:#e5e7eb}.snap-name[data-v-45cb9d4b]:focus{border-color:#2563eb;background:#fff;outline:none}.snap-meta[data-v-45cb9d4b]{margin-top:2px;font-size:11px;color:#9ca3af}.snap-tag[data-v-45cb9d4b]{padding:0 5px;margin-right:4px;border-radius:3px;background:#f3f4f6;color:#6b7280}.snap-tag.auto[data-v-45cb9d4b]{background:#eff6ff;color:#2563eb}.snap-acts[data-v-45cb9d4b]{display:flex;gap:6px;margin-top:6px}.home-body[data-v-45cb9d4b]{flex:1;overflow-y:auto;padding:28px}.proj-grid[data-v-45cb9d4b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;max-width:960px}.proj-card[data-v-45cb9d4b]{display:flex;flex-direction:column;gap:8px;padding:16px;min-height:110px;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.proj-card[data-v-45cb9d4b]:hover{border-color:#2563eb;box-shadow:0 2px 10px #2563eb14}.proj-name[data-v-45cb9d4b]{font-size:14px;font-weight:600;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-rename[data-v-45cb9d4b]{padding:3px 6px;font:inherit;font-size:14px;font-weight:600;color:inherit;background:#fff;border:1px solid #2563eb;border-radius:5px}.proj-meta[data-v-45cb9d4b]{font-size:12px;color:#9ca3af}.proj-actions[data-v-45cb9d4b]{display:flex;gap:6px;margin-top:auto}.proj-card--new[data-v-45cb9d4b]{align-items:center;justify-content:center;gap:6px;font-size:14px;color:#6b7280;background:#fafafa;border-style:dashed}.proj-card--new[data-v-45cb9d4b]:hover{color:#2563eb;border-color:#2563eb}.home-body .hint[data-v-45cb9d4b]{margin-top:18px;padding:0}.quick[data-v-45cb9d4b]{display:flex;gap:6px}.quick .mini[data-v-45cb9d4b]{flex:1;min-width:0}.tpl-grid[data-v-45cb9d4b]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tpl[data-v-45cb9d4b]{display:flex;flex-direction:column;gap:2px;padding:9px 10px;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer}.tpl[data-v-45cb9d4b]:hover{border-color:#2563eb}.tpl-name[data-v-45cb9d4b]{font-size:13px;font-weight:500;color:#111827}.tpl-desc[data-v-45cb9d4b]{font-size:11px;line-height:1.4;color:#9ca3af}.comp-cat[data-v-45cb9d4b]{margin-bottom:10px}.comp-cat-name[data-v-45cb9d4b]{margin-bottom:6px;font-size:11px;color:#9ca3af}.comp-grid[data-v-45cb9d4b]{display:flex;flex-wrap:wrap;gap:6px}.comp[data-v-45cb9d4b]{padding:6px 11px;font-size:13px;background:#fff;border:1px solid #e5e7eb;border-radius:7px;cursor:pointer}.comp[data-v-45cb9d4b]:hover{border-color:#2563eb;color:#2563eb}.comp[data-v-45cb9d4b]:disabled{opacity:.45;cursor:not-allowed}.comp[data-v-45cb9d4b]:disabled:hover{border-color:#e5e7eb;color:inherit}.comp-del-row[data-v-45cb9d4b]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding:0 2px}.comp-del[data-v-45cb9d4b]{color:#b91c1c;border-color:#fecaca}.comp-del[data-v-45cb9d4b]:hover{background:#fef2f2}.comp-tabs[data-v-45cb9d4b]{display:inline-flex;gap:2px;margin-left:auto}.comp-tab[data-v-45cb9d4b]{padding:1px 8px;font-size:11px;color:#6b7280;background:#f3f4f6;border:1px solid transparent;border-radius:5px;cursor:pointer}.comp-tab.on[data-v-45cb9d4b]{color:#fff;background:#2563eb}.comp-mine-row[data-v-45cb9d4b]{display:flex;align-items:center;gap:6px;margin-bottom:6px;padding:0 2px}.comp-mine-row .comp[data-v-45cb9d4b]{flex:1;text-align:left}.user-box[data-v-45cb9d4b]{display:inline-flex;align-items:center;gap:8px}.user-name[data-v-45cb9d4b]{font-size:13px;color:#111827}.user-credit[data-v-45cb9d4b]{font-size:12px;color:#b45309}.modal-mask[data-v-45cb9d4b]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#11182773}.modal[data-v-45cb9d4b]{width:320px;padding:16px;background:#fff;border-radius:12px;box-shadow:0 12px 40px #0003}.modal-head[data-v-45cb9d4b]{display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:600;margin-bottom:12px}.modal-acts[data-v-45cb9d4b]{display:flex;align-items:center;gap:8px;margin-top:12px}.err[data-v-45cb9d4b]{margin:8px 0 0;font-size:12px;color:#b91c1c}.empty[data-v-45cb9d4b]{display:flex;align-items:center;justify-content:center;height:100%;font-size:13px;color:#9ca3af;background:#f7f8fa}.panel[data-v-45cb9d4b]{display:flex;flex-direction:column;min-height:0;flex:none}.panel[data-v-45cb9d4b]:first-child{border-top:0}.panel+.panel[data-v-45cb9d4b]{border-top:1px solid #e5e7eb}.panel--info[data-v-45cb9d4b]{flex:none;padding-bottom:14px}.panel-head[data-v-45cb9d4b]{display:flex;align-items:center;justify-content:space-between;flex:none;padding:9px 12px 7px;font-size:12px;color:#6b7280}.mini[data-v-45cb9d4b]{padding:2px 7px;font-size:11px}.mini.on[data-v-45cb9d4b]{color:#fff;background:#2563eb;border-color:#2563eb}.mini select[data-v-45cb9d4b]{font-size:11px}.tree-box[data-v-45cb9d4b]{max-height:38vh;overflow:auto;padding:0 8px 10px}.kv[data-v-45cb9d4b]{margin:0;padding:0 12px}.guard-hint[data-v-45cb9d4b]{margin:0;padding:0 12px 10px;font-size:12px;line-height:1.7;color:#b45309}.hint[data-v-45cb9d4b]{margin:0;padding:0 12px 10px;font-size:12px;line-height:1.7;color:#9ca3af}.panel--props[data-v-45cb9d4b]{flex:none;padding:4px 0 14px}.prop-group-title[data-v-45cb9d4b]{padding:12px 12px 2px;font-size:11px;font-weight:600;letter-spacing:.05em;color:#9ca3af;border-top:1px solid #f3f4f6}.prop-group-title[data-v-45cb9d4b]:first-of-type{border-top:0}.panel--props .field[data-v-45cb9d4b]{margin:0;padding:6px 12px 0}.panel--props .label[data-v-45cb9d4b]{margin-bottom:4px}.panel--props textarea[data-v-45cb9d4b],.panel--props select[data-v-45cb9d4b]{width:100%;box-sizing:border-box;padding:7px 9px;font:inherit;font-size:13px;color:inherit;background:#fff;border:1px solid #e5e7eb;border-radius:7px}.panel--props textarea[data-v-45cb9d4b]{resize:vertical}.panel--props input[type=color][data-v-45cb9d4b]{width:100%;height:30px;padding:2px;background:#fff;border:1px solid #e5e7eb;border-radius:7px;cursor:pointer}.unit[data-v-45cb9d4b]{font-style:normal;font-size:11px;color:#9ca3af;margin-left:2px}.field-error[data-v-45cb9d4b]{margin:4px 0 0;font-size:11px;line-height:1.5;color:#b91c1c}.color-row[data-v-45cb9d4b]{display:flex;align-items:center;gap:8px}.color-row input[type=color][data-v-45cb9d4b]{flex:1;min-width:0}.switch[data-v-45cb9d4b]{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#6b7280;white-space:nowrap}.switch input[data-v-45cb9d4b]{margin:0}.panel--props .row[data-v-45cb9d4b]{padding:8px 12px 0}.panel--props .row--split[data-v-45cb9d4b]{display:flex;gap:6px}.panel--props .row--split button[data-v-45cb9d4b]{flex:1}button.danger[data-v-45cb9d4b]{width:100%;color:#b91c1c;border-color:#fecaca}button.danger[data-v-45cb9d4b]:hover{background:#fef2f2}.panel--ai[data-v-45cb9d4b]{flex:none;display:flex;flex-direction:column;padding:4px 0 10px}.chat[data-v-45cb9d4b]{max-height:32vh;overflow:auto;padding:4px 12px}.bubble[data-v-45cb9d4b]{margin:0 0 8px;padding:7px 9px;font-size:12px;line-height:1.6;border-radius:8px;white-space:pre-wrap;word-break:break-word}.bubble.user[data-v-45cb9d4b]{background:#eff6ff;color:#1e3a8a}.bubble.assistant[data-v-45cb9d4b]{background:#f3f4f6;color:#374151}.ai-input[data-v-45cb9d4b]{display:flex;gap:6px;padding:8px 12px 0}.ai-input textarea[data-v-45cb9d4b]{flex:1;width:auto;padding:7px 9px;font:inherit;font-size:13px;background:#fff;border:1px solid #e5e7eb;border-radius:7px;resize:none}.ai-input button[data-v-45cb9d4b]{flex:none}
