#app{width:100%;min-height:100vh}.page-fade-enter-active,.page-fade-leave-active{transition:opacity .3s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1)}.page-fade-enter-from{opacity:0;transform:scale(.98)translateY(8px)}.page-fade-leave-to{opacity:0;transform:scale(1.01)translateY(-8px)}.landing-page[data-v-aca233ad]{scroll-behavior:smooth;background:var(--bg-color);background-image:var(--bg-gradient);width:100%;min-height:100vh;color:var(--text-main);overflow:hidden auto}.navbar[data-v-aca233ad]{z-index:1000;width:calc(100% - 48px);max-width:1200px;height:64px;padding:0 24px;position:fixed;top:16px;left:50%;transform:translate(-50%)}.nav-container[data-v-aca233ad]{justify-content:space-between;align-items:center;height:100%;display:flex}.nav-brand[data-v-aca233ad]{cursor:pointer;align-items:center;gap:12px;text-decoration:none;display:flex}.logo-icon[data-v-aca233ad]{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 4px 12px #6366f14d}.brand-title[data-v-aca233ad]{color:var(--text-main);font-size:18px;font-weight:700}.nav-links[data-v-aca233ad]{gap:24px;display:flex}.nav-link[data-v-aca233ad]{color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:500;text-decoration:none;transition:color .2s}.nav-link[data-v-aca233ad]:hover{color:var(--text-main)}.nav-right[data-v-aca233ad]{align-items:center;gap:16px;display:flex}.nav-auth[data-v-aca233ad]{gap:12px;display:flex}.lang-selector-wrapper[data-v-aca233ad]{position:relative}.lang-btn[data-v-aca233ad]{align-items:center;gap:6px;display:flex}.lang-flag[data-v-aca233ad]{font-size:14px}.lang-code[data-v-aca233ad]{font-size:11px;font-weight:700}.lang-dropdown[data-v-aca233ad]{z-index:120;flex-direction:column;gap:4px;width:180px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.lang-option[data-v-aca233ad]{border-radius:var(--radius-sm);color:var(--text-main);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:13px;transition:background .15s;display:flex}.lang-option[data-v-aca233ad]:hover{background:var(--surface-hover)}.lang-option.active[data-v-aca233ad]{color:var(--accent-primary);background:#6366f133;font-weight:600}.flag-icon[data-v-aca233ad]{font-size:16px}.hero-section[data-v-aca233ad]{text-align:center;padding:160px 24px 80px}.hero-container[data-v-aca233ad]{max-width:960px;margin:0 auto}.hero-badge[data-v-aca233ad]{border-radius:var(--radius-xl);color:var(--accent-primary);background:#6366f126;border:1px solid #6366f14d;align-items:center;gap:6px;margin-bottom:24px;padding:6px 14px;font-size:12px;font-weight:600;display:inline-flex}.hero-title[data-v-aca233ad]{margin-bottom:20px;font-size:48px;font-weight:800;line-height:1.15}.gradient-text[data-v-aca233ad]{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary), var(--accent-cyan));-webkit-text-fill-color:transparent;-webkit-background-clip:text}.hero-subtitle[data-v-aca233ad]{color:var(--text-muted);max-width:680px;margin:0 auto 36px;font-size:18px;line-height:1.6}.hero-cta[data-v-aca233ad]{justify-content:center;gap:16px;margin-bottom:60px;display:flex}.btn-lg[data-v-aca233ad]{border-radius:var(--radius-lg);padding:12px 24px;font-size:15px}.hero-preview-wrapper[data-v-aca233ad]{border-radius:var(--radius-xl);max-width:800px;margin:0 auto;padding:0;overflow:hidden}.preview-header[data-v-aca233ad]{border-bottom:1px solid var(--surface-border);background:#0003;align-items:center;padding:12px 16px;display:flex}.dots[data-v-aca233ad]{gap:6px;display:flex}.dot[data-v-aca233ad]{border-radius:50%;width:10px;height:10px}.dot.red[data-v-aca233ad]{background:#ef4444}.dot.yellow[data-v-aca233ad]{background:#f59e0b}.dot.green[data-v-aca233ad]{background:#10b981}.preview-title[data-v-aca233ad]{color:var(--text-dim);margin-left:16px;font-size:12px}.preview-body[data-v-aca233ad]{background:radial-gradient(circle,#6366f11a 0%,#0000 70%);justify-content:center;align-items:center;height:280px;display:flex;position:relative}.floating-card[data-v-aca233ad]{background:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);align-items:center;gap:12px;padding:12px 16px;display:flex;position:absolute}.floating-card.p1[data-v-aca233ad]{border-color:var(--node-male-border);top:30px;left:120px}.floating-card.p2[data-v-aca233ad]{border-color:var(--node-male-border);top:120px;left:320px}.floating-card.p3[data-v-aca233ad]{border-color:var(--node-male-border);top:200px;left:520px}.avatar[data-v-aca233ad]{font-size:24px}.name[data-v-aca233ad]{font-size:13px;font-weight:600}.dates[data-v-aca233ad]{color:var(--text-muted);font-size:11px}.tag.alive[data-v-aca233ad]{color:#10b981;font-size:10px}.connection-line[data-v-aca233ad]{background:var(--accent-primary);height:2px;position:absolute}.connection-line.l1[data-v-aca233ad]{width:140px;top:80px;left:240px;transform:rotate(25deg)}.connection-line.l2[data-v-aca233ad]{width:140px;top:170px;left:440px;transform:rotate(25deg)}.features-section[data-v-aca233ad]{padding:80px 24px}.section-container[data-v-aca233ad]{max-width:1100px;margin:0 auto}.section-title[data-v-aca233ad]{text-align:center;margin-bottom:12px;font-size:32px;font-weight:700}.section-subtitle[data-v-aca233ad]{color:var(--text-muted);text-align:center;margin-bottom:56px;font-size:16px}.features-grid[data-v-aca233ad]{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;display:grid}.feature-card[data-v-aca233ad]{padding:32px;transition:transform .2s,border-color .2s}.feature-card[data-v-aca233ad]:hover{border-color:var(--accent-primary);transform:translateY(-4px)}.feature-icon[data-v-aca233ad]{border-radius:var(--radius-md);justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:20px;display:flex}.feature-icon.primary[data-v-aca233ad]{color:var(--accent-primary);background:#6366f126}.feature-icon.cyan[data-v-aca233ad]{color:var(--accent-cyan);background:#06b6d426}.feature-icon.amber[data-v-aca233ad]{color:var(--accent-amber);background:#f59e0b26}.feature-icon.emerald[data-v-aca233ad]{color:var(--accent-emerald);background:#10b98126}.feature-icon.purple[data-v-aca233ad]{color:#8b5cf6;background:#8b5cf626}.feature-icon.pink[data-v-aca233ad]{color:var(--accent-secondary);background:#ec489926}.feature-title[data-v-aca233ad]{margin-bottom:10px;font-size:18px;font-weight:600}.feature-desc[data-v-aca233ad]{color:var(--text-muted);font-size:14px;line-height:1.6}.about-section[data-v-aca233ad]{padding:40px 24px}.about-box[data-v-aca233ad]{text-align:center;max-width:800px;margin:0 auto;padding:48px}.about-text[data-v-aca233ad]{color:var(--text-muted);margin-top:16px;font-size:16px;line-height:1.7}.cta-section[data-v-aca233ad]{padding:60px 24px}.cta-container[data-v-aca233ad]{text-align:center;max-width:900px;margin:0 auto;padding:48px}.cta-title[data-v-aca233ad]{margin-bottom:12px;font-size:28px;font-weight:700}.cta-desc[data-v-aca233ad]{color:var(--text-muted);margin-bottom:28px}.footer[data-v-aca233ad]{border-top:1px solid var(--surface-border);padding:32px 24px}.footer-container[data-v-aca233ad]{justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;display:flex}.footer-brand[data-v-aca233ad]{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.footer-links[data-v-aca233ad]{gap:20px;display:flex}.footer-links a[data-v-aca233ad]{color:var(--text-muted);font-size:13px;text-decoration:none}.footer-links a[data-v-aca233ad]:hover{color:var(--text-main)}.auth-page[data-v-24ffef18]{background:var(--bg-color);background-image:var(--bg-gradient);flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;padding:24px;display:flex;position:relative}.auth-top-bar[data-v-24ffef18]{z-index:50;justify-content:space-between;align-items:center;display:flex;position:absolute;top:24px;left:32px;right:32px}.nav-back-link[data-v-24ffef18]{color:var(--text-muted);align-items:center;gap:8px;font-size:14px;font-weight:500;text-decoration:none;transition:color .2s;display:inline-flex}.nav-back-link[data-v-24ffef18]:hover{color:var(--text-main)}.auth-card[data-v-24ffef18]{width:420px;max-width:100%;padding:40px}.auth-header[data-v-24ffef18]{text-align:center;margin-bottom:32px}.auth-brand[data-v-24ffef18]{align-items:center;gap:12px;margin-bottom:24px;text-decoration:none;display:inline-flex}.logo[data-v-24ffef18]{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 4px 14px #6366f166}.brand-title[data-v-24ffef18]{color:var(--text-main);font-size:20px;font-weight:800}.auth-title[data-v-24ffef18]{margin-bottom:8px;font-size:24px;font-weight:700}.auth-subtitle[data-v-24ffef18]{color:var(--text-muted);font-size:14px}.auth-form[data-v-24ffef18]{flex-direction:column;gap:20px;display:flex}.form-group[data-v-24ffef18]{flex-direction:column;gap:6px;display:flex}.form-label[data-v-24ffef18]{color:var(--text-muted);font-size:13px;font-weight:600}.input-wrapper[data-v-24ffef18]{position:relative}.input-icon[data-v-24ffef18]{color:var(--text-dim);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.form-control[data-v-24ffef18]{border-radius:var(--radius-md);background:var(--surface-color);border:1px solid var(--surface-border);width:100%;color:var(--text-main);outline:none;padding:12px 14px 12px 42px;font-size:14px;transition:border-color .2s}.form-control[data-v-24ffef18]:focus{border-color:var(--accent-primary)}.password-toggle[data-v-24ffef18]{color:var(--text-dim);cursor:pointer;background:0 0;border:none;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.btn-block[data-v-24ffef18]{width:100%;padding:12px;font-size:15px}.demo-btn[data-v-24ffef18]{color:var(--accent-primary);border-color:#6366f14d}.google-auth-wrapper[data-v-24ffef18]{margin-bottom:16px}.google-custom-btn[data-v-24ffef18]{background:var(--surface-color);border:1px solid var(--surface-border);color:var(--text-main);border-radius:var(--radius-md);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:center;align-items:center;gap:12px;padding:12px 16px;font-size:14px;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.google-custom-btn[data-v-24ffef18]:hover{background:var(--surface-hover);border-color:#6366f166;transform:translateY(-1px);box-shadow:0 6px 20px #6366f133,0 0 12px #4285f433}.google-icon[data-v-24ffef18]{flex-shrink:0;width:20px;height:20px}.auth-divider[data-v-24ffef18]{text-align:center;color:var(--text-dim);align-items:center;margin:16px 0;font-size:13px;display:flex}.auth-divider[data-v-24ffef18]:before,.auth-divider[data-v-24ffef18]:after{content:"";border-bottom:1px solid var(--surface-border);flex:1}.auth-divider span[data-v-24ffef18]{padding:0 12px}.auth-footer[data-v-24ffef18]{text-align:center;color:var(--text-muted);margin-top:28px;font-size:13px}.auth-link[data-v-24ffef18]{color:var(--accent-primary);margin-left:4px;font-weight:600;text-decoration:none}.auth-link[data-v-24ffef18]:hover{text-decoration:underline}.lang-selector-wrapper[data-v-24ffef18]{position:relative}.lang-btn[data-v-24ffef18]{align-items:center;gap:6px;display:flex}.lang-flag[data-v-24ffef18]{font-size:14px}.lang-code[data-v-24ffef18]{font-size:11px;font-weight:700}.lang-dropdown[data-v-24ffef18]{z-index:120;flex-direction:column;gap:4px;width:180px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.lang-option[data-v-24ffef18]{border-radius:var(--radius-sm);color:var(--text-main);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:13px;transition:background .15s;display:flex}.lang-option[data-v-24ffef18]:hover{background:var(--surface-hover)}.lang-option.active[data-v-24ffef18]{color:var(--accent-primary);background:#6366f133;font-weight:600}.flag-icon[data-v-24ffef18]{font-size:16px}.auth-page[data-v-993cc328]{background:var(--bg-color);background-image:var(--bg-gradient);flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;padding:24px;display:flex;position:relative}.auth-top-bar[data-v-993cc328]{z-index:50;justify-content:space-between;align-items:center;display:flex;position:absolute;top:24px;left:32px;right:32px}.nav-back-link[data-v-993cc328]{color:var(--text-muted);align-items:center;gap:8px;font-size:14px;font-weight:500;text-decoration:none;transition:color .2s;display:inline-flex}.nav-back-link[data-v-993cc328]:hover{color:var(--text-main)}.auth-card[data-v-993cc328]{width:440px;max-width:100%;padding:40px}.auth-header[data-v-993cc328]{text-align:center;margin-bottom:32px}.auth-brand[data-v-993cc328]{align-items:center;gap:12px;margin-bottom:24px;text-decoration:none;display:inline-flex}.logo[data-v-993cc328]{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 4px 14px #6366f166}.brand-title[data-v-993cc328]{color:var(--text-main);font-size:20px;font-weight:800}.auth-title[data-v-993cc328]{margin-bottom:8px;font-size:24px;font-weight:700}.auth-subtitle[data-v-993cc328]{color:var(--text-muted);font-size:14px}.auth-form[data-v-993cc328]{flex-direction:column;gap:18px;display:flex}.form-group[data-v-993cc328]{flex-direction:column;gap:6px;display:flex}.form-label[data-v-993cc328]{color:var(--text-muted);font-size:13px;font-weight:600}.input-wrapper[data-v-993cc328]{position:relative}.input-icon[data-v-993cc328]{color:var(--text-dim);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.form-control[data-v-993cc328]{border-radius:var(--radius-md);background:var(--surface-color);border:1px solid var(--surface-border);width:100%;color:var(--text-main);outline:none;padding:12px 14px 12px 42px;font-size:14px;transition:border-color .2s}.form-control[data-v-993cc328]:focus{border-color:var(--accent-primary)}.password-toggle[data-v-993cc328]{color:var(--text-dim);cursor:pointer;background:0 0;border:none;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.checkbox-group[data-v-993cc328]{flex-direction:row;align-items:center}.checkbox-label[data-v-993cc328]{color:var(--text-muted);cursor:pointer;align-items:flex-start;gap:8px;font-size:12px;line-height:1.4;display:flex}.checkbox-label input[data-v-993cc328]{margin-top:2px}.btn-block[data-v-993cc328]{width:100%;padding:12px;font-size:15px}.google-auth-wrapper[data-v-993cc328]{margin-bottom:16px}.error-alert[data-v-993cc328]{color:#f87171;border-radius:var(--radius-md);text-align:center;background:#ef444426;border:1px solid #ef44444d;margin-bottom:16px;padding:10px 14px;font-size:13px}.success-alert[data-v-993cc328]{color:#4ade80;border-radius:var(--radius-md);text-align:center;background:#22c55e26;border:1px solid #22c55e4d;margin-bottom:16px;padding:10px 14px;font-size:13px}.otp-container[data-v-993cc328]{flex-direction:column;gap:20px;margin-top:8px;display:flex}.otp-digits-wrapper[data-v-993cc328]{justify-content:space-between;gap:8px;display:flex}.otp-digit-input[data-v-993cc328]{text-align:center;width:46px;height:52px;color:var(--text-main);background:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--radius-md);outline:none;font-size:22px;font-weight:700;transition:all .2s;box-shadow:inset 0 2px 4px #0003}.otp-digit-input[data-v-993cc328]:focus{border-color:var(--accent-primary);transform:scale(1.05);box-shadow:0 0 12px #6366f14d}.verify-btn[data-v-993cc328]{justify-content:center;align-items:center;gap:8px;display:flex}.otp-actions[data-v-993cc328]{flex-direction:column;align-items:center;gap:10px;display:flex}.btn-text[data-v-993cc328]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;font-size:13px;transition:color .2s;display:flex}.btn-text[data-v-993cc328]:hover:not(:disabled){color:var(--accent-primary)}.btn-text[data-v-993cc328]:disabled{opacity:.5;cursor:not-allowed}.change-email-btn[data-v-993cc328]{font-size:12px;text-decoration:underline}.spin-icon[data-v-993cc328]{animation:1s linear infinite spin-993cc328}@keyframes spin-993cc328{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.google-custom-btn[data-v-993cc328]{background:var(--surface-color);border:1px solid var(--surface-border);color:var(--text-main);border-radius:var(--radius-md);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:center;align-items:center;gap:12px;padding:12px 16px;font-size:14px;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.google-custom-btn[data-v-993cc328]:hover{background:var(--surface-hover);border-color:#6366f166;transform:translateY(-1px);box-shadow:0 6px 20px #6366f133,0 0 12px #4285f433}.google-icon[data-v-993cc328]{flex-shrink:0;width:20px;height:20px}.auth-divider[data-v-993cc328]{text-align:center;color:var(--text-dim);align-items:center;margin:16px 0;font-size:13px;display:flex}.auth-divider[data-v-993cc328]:before,.auth-divider[data-v-993cc328]:after{content:"";border-bottom:1px solid var(--surface-border);flex:1}.auth-divider span[data-v-993cc328]{padding:0 12px}.auth-footer[data-v-993cc328]{text-align:center;color:var(--text-muted);margin-top:28px;font-size:13px}.auth-link[data-v-993cc328]{color:var(--accent-primary);margin-left:4px;font-weight:600;text-decoration:none}.auth-link[data-v-993cc328]:hover{text-decoration:underline}.lang-selector-wrapper[data-v-993cc328]{position:relative}.lang-btn[data-v-993cc328]{align-items:center;gap:6px;display:flex}.lang-flag[data-v-993cc328]{font-size:14px}.lang-code[data-v-993cc328]{font-size:11px;font-weight:700}.lang-dropdown[data-v-993cc328]{z-index:120;flex-direction:column;gap:4px;width:180px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.lang-option[data-v-993cc328]{border-radius:var(--radius-sm);color:var(--text-main);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:13px;transition:background .15s;display:flex}.lang-option[data-v-993cc328]:hover{background:var(--surface-hover)}.lang-option.active[data-v-993cc328]{color:var(--accent-primary);background:#6366f133;font-weight:600}.flag-icon[data-v-993cc328]{font-size:16px}.top-toolbar[data-v-2e4c8557]{z-index:100;justify-content:space-between;align-items:center;height:64px;padding:0 20px;display:flex;position:absolute;top:16px;left:24px;right:24px}.toolbar-left[data-v-2e4c8557],.toolbar-right[data-v-2e4c8557]{align-items:center;gap:12px;display:flex}.brand-link[data-v-2e4c8557]{color:var(--text-main);align-items:center;gap:10px;margin-right:8px;text-decoration:none;display:flex}.logo[data-v-2e4c8557]{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 12px #6366f14d}.app-name[data-v-2e4c8557]{white-space:nowrap;font-size:16px;font-weight:700}.tree-name[data-v-2e4c8557]{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.search-bar[data-v-2e4c8557]{width:260px;position:relative}.search-icon[data-v-2e4c8557]{color:var(--text-muted);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input[data-v-2e4c8557]{border-radius:var(--radius-md);background:var(--surface-hover);border:1px solid var(--surface-border);width:100%;color:var(--text-main);outline:none;padding:7px 12px 7px 34px;font-size:13px;transition:all .2s}.search-input[data-v-2e4c8557]:focus{border-color:var(--accent-primary);background:#0003}.btn-group[data-v-2e4c8557]{gap:4px;display:flex}.btn-sm[data-v-2e4c8557]{padding:6px 12px;font-size:13px}.divider[data-v-2e4c8557]{background:var(--surface-border);width:1px;height:24px}.lang-selector-wrapper[data-v-2e4c8557]{position:relative}.lang-btn[data-v-2e4c8557]{gap:6px}.lang-flag[data-v-2e4c8557]{font-size:14px}.lang-code[data-v-2e4c8557]{font-size:11px;font-weight:700}.lang-dropdown[data-v-2e4c8557]{z-index:120;flex-direction:column;gap:4px;width:180px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.lang-option[data-v-2e4c8557]{border-radius:var(--radius-sm);color:var(--text-main);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:13px;transition:background .15s;display:flex}.lang-option[data-v-2e4c8557]:hover{background:var(--surface-hover)}.lang-option.active[data-v-2e4c8557]{color:var(--accent-primary);background:#6366f133;font-weight:600}.flag-icon[data-v-2e4c8557]{font-size:16px}.user-badge[data-v-2e4c8557]{border-radius:var(--radius-md);background:var(--surface-hover);border:1px solid var(--surface-border);align-items:center;gap:8px;padding:4px 10px;font-size:12px;display:flex}.user-avatar[data-v-2e4c8557]{background:var(--accent-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.user-name[data-v-2e4c8557]{color:var(--text-main);font-weight:600}.logout-btn[data-v-2e4c8557]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.logout-btn[data-v-2e4c8557]:hover{color:#ef4444}.kinship-banner[data-v-ae091de1]{z-index:95;border-color:var(--accent-primary);height:44px;box-shadow:var(--shadow-glow);align-items:center;gap:12px;padding:0 16px;display:flex;position:absolute;top:88px;left:50%;transform:translate(-50%)}.banner-icon[data-v-ae091de1]{color:var(--accent-primary)}.banner-text[data-v-ae091de1]{font-size:13px}.kinship-names[data-v-ae091de1]{color:var(--text-muted);margin-right:6px}.kinship-title[data-v-ae091de1]{color:var(--accent-cyan);font-weight:700}.kinship-prompt[data-v-ae091de1]{color:var(--text-main);font-weight:500}.close-btn[data-v-ae091de1]{padding:4px}.person-node[data-v-840050e3]{background:var(--surface-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:2px solid var(--surface-border);border-radius:var(--radius-lg);width:220px;min-height:110px;box-shadow:var(--shadow-sm);cursor:grab;z-index:10;padding:12px;transition:box-shadow .2s,border-color .2s,transform .1s;position:absolute}.person-node[data-v-840050e3]:active{cursor:grabbing}.person-node[data-v-840050e3]:hover{box-shadow:var(--shadow-lg);z-index:20;transform:translateY(-2px)}.person-node.male[data-v-840050e3]{background:var(--node-male-bg);border-color:var(--node-male-border)}.person-node.female[data-v-840050e3]{background:var(--node-female-bg);border-color:var(--node-female-border)}.person-node.other[data-v-840050e3]{background:var(--node-other-bg);border-color:var(--node-other-border)}.person-node.selected[data-v-840050e3]{z-index:30;border-color:var(--accent-primary)!important;border-width:3px!important;box-shadow:0 0 0 3px #6366f166,0 0 25px #6366f1b3!important}.selected-badge[data-v-840050e3]{background:var(--accent-primary);color:#fff;z-index:35;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex;position:absolute;top:-10px;left:-10px;box-shadow:0 2px 8px #6366f199}.connect-port-handle[data-v-840050e3]{background:var(--accent-cyan,#06b6d4);color:#fff;border:2px solid var(--surface-color);cursor:crosshair;opacity:.7;z-index:35;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex;position:absolute;top:-10px;right:-10px;box-shadow:0 2px 8px #06b6d480}.person-node:hover .connect-port-handle[data-v-840050e3],.connect-port-handle[data-v-840050e3]:hover{opacity:1;background:var(--accent-primary);transform:scale(1.2)}.person-node.is-highlighted[data-v-840050e3]{border-color:var(--accent-amber);animation:1.5s infinite pulseGlow}.person-node.is-kinship-path[data-v-840050e3]{border-color:var(--accent-cyan);z-index:40;box-shadow:0 0 20px #06b6d499}.person-node.is-kinship-source[data-v-840050e3]{border-color:var(--accent-amber);box-shadow:0 0 20px #f59e0b99}.person-node.is-deceased[data-v-840050e3]{opacity:.85;filter:grayscale(20%)}.collapse-btn[data-v-840050e3]{background:var(--surface-color);border:1.5px solid var(--accent-primary);width:20px;height:20px;color:var(--accent-primary);cursor:pointer;z-index:25;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex;position:absolute;bottom:-10px;right:14px}.collapse-btn[data-v-840050e3]:hover{background:var(--accent-primary);color:#fff;transform:scale(1.15)}.collapse-btn.is-collapsed[data-v-840050e3]{background:var(--accent-amber);border-color:var(--accent-amber);color:#fff}.node-header[data-v-840050e3]{align-items:center;gap:10px;display:flex}.avatar-wrapper[data-v-840050e3]{flex-shrink:0;width:44px;height:44px;position:relative}.avatar-img[data-v-840050e3]{object-fit:cover;border:2px solid var(--surface-border);background:#ffffff1a;border-radius:50%;width:100%;height:100%}.avatar-wrapper.alive-ring .avatar-img[data-v-840050e3]{border-color:#10b98199;box-shadow:0 0 8px #10b98166}.gender-badge[data-v-840050e3]{background:var(--surface-color);border:1px solid var(--surface-border);width:18px;height:18px;color:var(--text-main);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:-2px;right:-2px}.header-info[data-v-840050e3]{overflow:hidden}.node-name[data-v-840050e3]{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.maiden-name[data-v-840050e3]{color:var(--text-muted);margin-top:-2px;font-size:11px}.node-dates[data-v-840050e3]{color:var(--text-dim);margin-top:2px;font-size:12px}.node-badges[data-v-840050e3]{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.badge[data-v-840050e3]{color:var(--text-muted);background:#ffffff1a;border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-size:10px;font-weight:500;display:inline-flex}.badge.status-alive[data-v-840050e3]{color:#10b981;background:#10b98133;border:1px solid #10b9814d;font-weight:600}.badge.status-alive .status-dot[data-v-840050e3]{background:#10b981;border-radius:50%;width:6px;height:6px;box-shadow:0 0 6px #10b981}.badge.status-deceased[data-v-840050e3]{color:#94a3b8;background:#94a3b826;border:1px solid #94a3b84d}.badge.status-deceased .status-dot[data-v-840050e3]{background:#64748b;border-radius:50%;width:6px;height:6px}.gen-badge[data-v-840050e3]{color:var(--accent-primary);background:#6366f133}.collapsed-badge[data-v-840050e3]{color:var(--accent-amber);background:#f59e0b33}.node-quick-actions[data-v-840050e3]{opacity:0;pointer-events:none;background:var(--surface-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-md);border:1px solid var(--surface-border);box-shadow:var(--shadow-sm);white-space:nowrap;gap:4px;padding:4px;transition:opacity .2s,transform .2s;display:flex;position:absolute;bottom:-32px;left:50%;transform:translate(-50%)}.person-node:hover .node-quick-actions[data-v-840050e3]{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.quick-btn[data-v-840050e3]{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-main);background:#ffffff14;border:none;align-items:center;gap:4px;padding:4px 8px;font-size:10px;font-weight:600;transition:all .15s;display:inline-flex}.quick-btn[data-v-840050e3]:hover{background:var(--accent-primary);color:#fff}.relationship-lines-svg[data-v-0ded9bcd]{pointer-events:none;z-index:5;width:100%;min-width:100%;height:100%;min-height:100%;position:absolute;top:0;left:0;overflow:visible!important}.spouse-line[data-v-0ded9bcd]{stroke:var(--line-spouse,#ec4899);stroke-width:3px;stroke-dasharray:6 3;pointer-events:visibleStroke;cursor:pointer;transition:stroke .2s,stroke-width .2s}.spouse-line[data-v-0ded9bcd]:hover{stroke:var(--accent-primary,#6366f1);stroke-width:5.5px;stroke-dasharray:none}.spouse-line.is-kinship[data-v-0ded9bcd]{stroke:var(--accent-cyan,#06b6d4);stroke-width:5.5px;stroke-dasharray:none;filter:url(#kinshipGlow)}.marriage-node[data-v-0ded9bcd]{cursor:pointer;pointer-events:all;transition:transform .2s}.marriage-node[data-v-0ded9bcd]:hover{transform:scale(1.3)}.marriage-circle[data-v-0ded9bcd]{fill:var(--surface-color,#0f172a);stroke:var(--line-spouse,#ec4899);stroke-width:2px;transition:all .2s}.marriage-node:hover .marriage-circle[data-v-0ded9bcd]{fill:var(--accent-secondary,#ec4899);stroke:#fff}.marriage-circle.is-kinship[data-v-0ded9bcd]{stroke:var(--accent-cyan,#06b6d4);fill:var(--accent-cyan,#06b6d4)}.marriage-icon[data-v-0ded9bcd]{fill:var(--line-spouse,#ec4899);font-size:11px;font-weight:700}.marriage-node:hover .marriage-icon[data-v-0ded9bcd]{fill:#fff}.parent-child-path[data-v-0ded9bcd]{fill:none;stroke:var(--line-stroke,#94a3b8);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;pointer-events:visibleStroke;cursor:pointer;transition:stroke .2s,stroke-width .2s}.parent-child-path[data-v-0ded9bcd]:hover{stroke:var(--accent-primary,#6366f1);stroke-width:5.5px}.parent-child-path.is-kinship[data-v-0ded9bcd]{stroke:var(--accent-cyan,#06b6d4);stroke-width:5.5px;filter:url(#kinshipGlow)}.minimap-container[data-v-bf792c11]{z-index:100;width:160px;height:100px;padding:4px;position:absolute;bottom:24px;left:24px;overflow:hidden}.minimap-svg[data-v-bf792c11]{width:100%;height:100%}.context-menu[data-v-33292c0a]{z-index:1000;min-width:220px;box-shadow:var(--shadow-lg);padding:6px;position:fixed}.inline-flex[data-v-33292c0a]{align-items:center;gap:8px;display:inline-flex}.menu-header[data-v-33292c0a]{color:var(--text-main);border-bottom:1px solid var(--surface-border);margin-bottom:4px;padding:8px 12px;font-size:13px;font-weight:700}.menu-item[data-v-33292c0a]{width:100%;color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 12px;font-size:13px;transition:all .15s;display:flex}.menu-item[data-v-33292c0a]:hover{background:var(--surface-hover);color:var(--accent-primary)}.menu-item.highlight-item[data-v-33292c0a]{color:var(--accent-primary);background:#6366f126;font-weight:600}.menu-item.danger[data-v-33292c0a]{color:#ef4444}.menu-item.danger[data-v-33292c0a]:hover{background:#ef444426}.menu-divider[data-v-33292c0a]{background:var(--surface-border);height:1px;margin:4px 0}.modal-overlay[data-v-a8817f3c]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card[data-v-a8817f3c]{width:500px;max-width:90vw;padding:24px}.modal-header[data-v-a8817f3c]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title[data-v-a8817f3c]{color:var(--text-main);align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.connect-preview[data-v-a8817f3c]{background:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;margin-bottom:20px;padding:14px 18px;display:flex}.person-chip[data-v-a8817f3c]{align-items:center;gap:10px;display:flex}.chip-avatar[data-v-a8817f3c]{border:2px solid var(--surface-border);object-fit:cover;border-radius:50%;width:38px;height:38px}.chip-name[data-v-a8817f3c]{color:var(--text-main);font-size:13px;font-weight:600}.chip-gen[data-v-a8817f3c]{color:var(--text-muted);font-size:11px}.connect-arrow[data-v-a8817f3c]{color:var(--accent-primary)}.selector-title[data-v-a8817f3c]{color:var(--text-muted);margin-bottom:10px;font-size:12px;font-weight:600;display:block}.type-options[data-v-a8817f3c]{flex-direction:column;gap:8px;margin-bottom:24px;display:flex}.type-card[data-v-a8817f3c]{background:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:12px;padding:12px 14px;transition:all .15s;display:flex}.type-card input[type=radio][data-v-a8817f3c]{display:none}.type-card[data-v-a8817f3c]:hover{background:var(--surface-hover);border-color:var(--accent-primary)}.type-card.active[data-v-a8817f3c]{border-color:var(--accent-primary);background:#6366f126}.option-icon[data-v-a8817f3c]{font-size:20px}.option-label .title[data-v-a8817f3c]{color:var(--text-main);font-size:13px;font-weight:600}.option-label .desc[data-v-a8817f3c]{color:var(--text-muted);margin-top:2px;font-size:11px}.modal-footer-actions[data-v-a8817f3c]{justify-content:flex-end;gap:10px;display:flex}.tree-canvas-container[data-v-5bced27d]{background:var(--bg-color);cursor:default;width:100%;height:100%;position:relative;overflow:hidden}.tree-canvas-container.is-panning[data-v-5bced27d]{cursor:grabbing!important}.tree-canvas-container.is-lasso[data-v-5bced27d]{cursor:crosshair}.tree-canvas-container.is-connecting[data-v-5bced27d]{cursor:crosshair!important}.canvas-grid[data-v-5bced27d]{pointer-events:none;background-image:radial-gradient(var(--grid-dot-color) 1.5px, transparent 1.5px);position:absolute;inset:0}.lasso-selection-box[data-v-5bced27d]{border:1.5px dashed var(--accent-primary);border-radius:var(--radius-sm);pointer-events:none;z-index:80;background:#6366f126;position:absolute}.canvas-viewport[data-v-5bced27d]{transform-origin:0 0;will-change:transform;width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible!important}.connect-preview-svg[data-v-5bced27d]{pointer-events:none;z-index:60;width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible!important}.connect-preview-line[data-v-5bced27d]{stroke:var(--accent-cyan,#06b6d4);stroke-width:3.5px;stroke-dasharray:6 4;animation:.6s linear infinite dashAnimation-5bced27d}@keyframes dashAnimation-5bced27d{to{stroke-dashoffset:-10px}}.line-menu-popover[data-v-5bced27d]{z-index:150;width:220px;box-shadow:var(--shadow-lg);padding:12px;position:fixed}.popover-header[data-v-5bced27d]{border-bottom:1px solid var(--surface-border);justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:6px;display:flex}.popover-title[data-v-5bced27d]{color:var(--text-muted);font-size:11px;font-weight:600}.popover-close[data-v-5bced27d]{color:var(--text-muted);cursor:pointer;background:0 0;border:none}.popover-body[data-v-5bced27d]{flex-direction:column;gap:6px;display:flex}.popover-btn[data-v-5bced27d]{border-radius:var(--radius-sm);border:1px solid var(--surface-border);background:var(--surface-color);color:var(--text-main);cursor:pointer;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:600;transition:all .15s;display:flex}.popover-btn.danger[data-v-5bced27d]{color:#ef4444;background:#ef44441a;border-color:#ef44444d}.popover-btn.danger[data-v-5bced27d]:hover{color:#fff;background:#ef4444}.popover-btn.primary[data-v-5bced27d]{color:var(--accent-primary);background:#6366f11a;border-color:#6366f14d}.popover-btn.primary[data-v-5bced27d]:hover{background:var(--accent-primary);color:#fff}.canvas-controls[data-v-5bced27d]{z-index:80;align-items:center;gap:6px;padding:6px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.zoom-level[data-v-5bced27d]{color:var(--text-muted);text-align:center;min-width:42px;font-size:12px;font-weight:600}.control-divider[data-v-5bced27d]{background:var(--surface-border);width:1px;height:20px;margin:0 2px}.btn-icon.active[data-v-5bced27d]{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.inspector-drawer[data-v-2abe3d1f]{z-index:90;flex-direction:column;width:340px;display:flex;position:absolute;top:96px;bottom:24px;right:16px;overflow:hidden}.drawer-header[data-v-2abe3d1f]{border-bottom:1px solid var(--surface-border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.drawer-title[data-v-2abe3d1f]{color:var(--text-main);font-size:16px;font-weight:600}.drawer-body[data-v-2abe3d1f]{flex:1;padding:20px;overflow-y:auto}.avatar-section[data-v-2abe3d1f]{flex-direction:column;align-items:center;gap:10px;margin-bottom:20px;display:flex}.inspector-avatar[data-v-2abe3d1f]{object-fit:cover;border:3px solid var(--surface-border);border-radius:50%;width:72px;height:72px}.btn-sm[data-v-2abe3d1f]{padding:6px 12px;font-size:12px}.form-group[data-v-2abe3d1f]{margin-bottom:14px}.form-row[data-v-2abe3d1f]{gap:10px;display:flex}.form-label[data-v-2abe3d1f]{color:var(--text-muted);margin-bottom:4px;font-size:12px;font-weight:500;display:block}.form-label.margin-top[data-v-2abe3d1f]{margin-top:10px}.form-control[data-v-2abe3d1f]{border-radius:var(--radius-md);background:var(--surface-color);border:1px solid var(--surface-border);width:100%;color:var(--text-main);outline:none;padding:8px 12px;font-size:13px}.form-control[data-v-2abe3d1f]:focus{border-color:var(--accent-primary)}.textarea[data-v-2abe3d1f]{resize:vertical}.gender-radio-group[data-v-2abe3d1f]{gap:10px;display:flex}.radio-label[data-v-2abe3d1f]{border-radius:var(--radius-md);background:var(--surface-color);border:1px solid var(--surface-border);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:12px;display:flex}.radio-label.active[data-v-2abe3d1f]{border-color:var(--accent-primary);color:var(--accent-primary);background:#6366f126;font-weight:600}.checkbox-group[data-v-2abe3d1f]{align-items:center;display:flex}.checkbox-label[data-v-2abe3d1f]{cursor:pointer;color:var(--text-main);align-items:center;gap:8px;font-size:13px;display:flex}.form-divider[data-v-2abe3d1f]{border:none;border-top:1px solid var(--surface-border);margin:20px 0}.section-header-row[data-v-2abe3d1f]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-title[data-v-2abe3d1f]{color:var(--text-main);font-size:14px;font-weight:600}.btn-text.highlight[data-v-2abe3d1f]{color:var(--accent-cyan)}.connect-existing-box[data-v-2abe3d1f]{border-radius:var(--radius-md);background:#06b6d41a;border:1px solid #06b6d44d;margin-bottom:16px;padding:12px}.select-input[data-v-2abe3d1f]{padding:6px 10px;font-size:12px}.connect-role-btns[data-v-2abe3d1f]{gap:4px;margin-bottom:12px;display:flex}.btn-xs[data-v-2abe3d1f]{flex:1;padding:4px 8px;font-size:11px}.btn-xs.active[data-v-2abe3d1f]{background:var(--accent-cyan);border-color:var(--accent-cyan);color:#fff;font-weight:600}.connect-actions[data-v-2abe3d1f]{justify-content:flex-end;gap:6px;display:flex}.rel-group[data-v-2abe3d1f]{margin-bottom:14px}.rel-header[data-v-2abe3d1f]{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.rel-title[data-v-2abe3d1f]{color:var(--text-muted);font-size:12px}.btn-text[data-v-2abe3d1f]{color:var(--accent-primary);cursor:pointer;background:0 0;border:none;font-size:12px;font-weight:600}.empty-rel[data-v-2abe3d1f]{color:var(--text-dim);font-size:12px;font-style:italic}.rel-item[data-v-2abe3d1f]{background:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin-bottom:4px;padding:6px 10px;font-size:12px;display:flex}.rel-name[data-v-2abe3d1f]{cursor:pointer}.rel-name[data-v-2abe3d1f]:hover{color:var(--accent-primary)}.rel-item-actions[data-v-2abe3d1f]{gap:4px;display:flex}.btn-icon-xs[data-v-2abe3d1f]{color:var(--text-muted);cursor:pointer;background:0 0;border:none}.btn-icon-xs[data-v-2abe3d1f]:hover{color:var(--accent-primary)}.btn-icon-xs.danger[data-v-2abe3d1f]:hover{color:#ef4444}.delete-section[data-v-2abe3d1f]{margin-top:24px}.btn-danger[data-v-2abe3d1f]{color:#ef4444;background:#ef444426;border:1px solid #ef44444d;width:100%}.btn-danger[data-v-2abe3d1f]:hover{color:#fff;background:#ef4444}.confirm-delete-box[data-v-2abe3d1f]{border-radius:var(--radius-md);text-align:center;background:#ef44441a;border:1px solid #ef44444d;padding:12px}.confirm-text[data-v-2abe3d1f]{color:#ef4444;margin-bottom:8px;font-size:12px;font-weight:600}.confirm-btns[data-v-2abe3d1f]{justify-content:center;gap:8px;display:flex}.upload-avatar-btn[data-v-2abe3d1f]{cursor:pointer;align-items:center;gap:4px;display:inline-flex;position:relative}.file-input-hidden[data-v-2abe3d1f]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.modal-overlay[data-v-70b2145c]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card[data-v-70b2145c]{width:540px;max-width:90vw;padding:24px}.modal-header[data-v-70b2145c]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title[data-v-70b2145c]{color:var(--text-main);align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.new-tree-box[data-v-70b2145c]{gap:10px;margin-bottom:20px;display:flex}.form-control[data-v-70b2145c]{border-radius:var(--radius-md);background:var(--surface-color);border:1px solid var(--surface-border);color:var(--text-main);outline:none;flex:1;padding:8px 12px;font-size:13px}.trees-list[data-v-70b2145c]{flex-direction:column;gap:10px;max-height:340px;display:flex;overflow-y:auto}.tree-item[data-v-70b2145c]{background:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--radius-md);cursor:pointer;justify-content:space-between;align-items:center;padding:12px 16px;transition:all .2s;display:flex}.tree-item[data-v-70b2145c]:hover{background:var(--surface-hover);border-color:var(--accent-primary)}.tree-item.active[data-v-70b2145c]{border-color:var(--accent-primary);background:#6366f126}.tree-info[data-v-70b2145c]{flex:1}.tree-name-row[data-v-70b2145c]{align-items:center;gap:10px;display:flex}.tree-title[data-v-70b2145c]{color:var(--text-main);font-size:14px;font-weight:600}.active-badge[data-v-70b2145c]{background:var(--accent-primary);color:#fff;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.tree-meta[data-v-70b2145c]{color:var(--text-muted);margin-top:2px;font-size:11px}.edit-tree-input[data-v-70b2145c]{border-radius:var(--radius-sm);background:var(--surface-hover);border:1px solid var(--accent-primary);width:90%;color:var(--text-main);outline:none;padding:4px 8px;font-size:13px}.tree-actions[data-v-70b2145c]{align-items:center;gap:4px;display:flex}.action-btn[data-v-70b2145c]{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:6px;transition:all .15s}.action-btn[data-v-70b2145c]:hover{background:var(--surface-hover);color:var(--accent-primary)}.action-btn.danger[data-v-70b2145c]:hover{color:#ef4444}.inline-confirm-box[data-v-70b2145c]{border-radius:var(--radius-sm);background:#ef444426;border:1px solid #ef444466;align-items:center;gap:6px;padding:4px 8px;display:flex}.confirm-label[data-v-70b2145c]{color:#ef4444;font-size:11px;font-weight:600}.btn-xs[data-v-70b2145c]{padding:2px 6px;font-size:10px}.modal-overlay[data-v-df293878]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card[data-v-df293878]{width:540px;max-width:90vw;padding:24px}.modal-header[data-v-df293878]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title[data-v-df293878]{color:var(--text-main);align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.block-title[data-v-df293878]{color:var(--text-muted);margin-bottom:10px;font-size:13px;font-weight:600;display:block}.roles-list[data-v-df293878]{flex-direction:column;gap:8px;display:flex}.role-card[data-v-df293878]{background:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--radius-md);cursor:pointer;align-items:flex-start;gap:12px;padding:12px;transition:all .2s;display:flex}.role-card[data-v-df293878]:hover{background:var(--surface-hover)}.role-card.active[data-v-df293878]{border-color:var(--accent-primary);background:#6366f11f}.role-icon[data-v-df293878]{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.role-icon.owner[data-v-df293878]{color:var(--accent-primary);background:#6366f133}.role-icon.editor[data-v-df293878]{color:var(--accent-emerald);background:#10b98133}.role-icon.branch[data-v-df293878]{color:var(--accent-amber);background:#f59e0b33}.role-icon.viewer[data-v-df293878]{color:var(--text-muted);background:#94a3b833}.role-name[data-v-df293878]{color:var(--text-main);font-size:13px;font-weight:600}.role-desc[data-v-df293878]{color:var(--text-muted);margin-top:2px;font-size:11px}.branch-select-box[data-v-df293878]{border-radius:var(--radius-md);background:#f59e0b1a;border:1px solid #f59e0b4d;margin-top:4px;padding:10px 14px}.divider[data-v-df293878]{border:none;border-top:1px solid var(--surface-border);margin:16px 0}.link-input-group[data-v-df293878]{gap:8px;display:flex}.link-input[data-v-df293878]{border-radius:var(--radius-md);background:var(--surface-color);border:1px solid var(--surface-border);color:var(--text-main);outline:none;flex:1;padding:8px 12px;font-size:12px}.modal-overlay[data-v-d73eeb35]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card[data-v-d73eeb35]{width:480px;max-width:90vw;padding:24px}.modal-header[data-v-d73eeb35]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title[data-v-d73eeb35]{color:var(--text-main);align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.stats-grid[data-v-d73eeb35]{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;display:grid}.stat-card[data-v-d73eeb35]{background:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--radius-md);text-align:center;padding:16px}.stat-value[data-v-d73eeb35]{color:var(--accent-primary);font-size:24px;font-weight:700}.stat-label[data-v-d73eeb35]{color:var(--text-muted);margin-top:4px;font-size:12px}.stats-details[data-v-d73eeb35]{background:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:16px;display:flex}.detail-row[data-v-d73eeb35]{justify-content:space-between;font-size:13px;display:flex}.detail-label[data-v-d73eeb35]{color:var(--text-muted)}.detail-val[data-v-d73eeb35]{color:var(--text-main);font-weight:600}.modal-overlay[data-v-41f2e075]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card[data-v-41f2e075]{width:500px;max-width:90vw;padding:24px}.modal-header[data-v-41f2e075]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title[data-v-41f2e075]{color:var(--text-main);align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.tab-group[data-v-41f2e075]{border-bottom:1px solid var(--surface-border);gap:8px;margin-bottom:20px;display:flex}.tab-btn[data-v-41f2e075]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 16px;font-size:14px;font-weight:500}.tab-btn.active[data-v-41f2e075]{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.export-option-card[data-v-41f2e075]{background:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;margin-bottom:12px;padding:16px;display:flex}.option-title[data-v-41f2e075]{color:var(--text-main);font-size:14px;font-weight:600}.option-desc[data-v-41f2e075]{color:var(--text-muted);margin-top:2px;font-size:12px}.drop-zone[data-v-41f2e075]{border:2px dashed var(--surface-border);border-radius:var(--radius-lg);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;transition:all .2s;display:flex}.drop-zone[data-v-41f2e075]:hover{border-color:var(--accent-primary);background:#6366f10d}.upload-icon[data-v-41f2e075]{color:var(--accent-primary);margin-bottom:12px}.drop-text[data-v-41f2e075]{color:var(--text-main);font-size:14px;font-weight:600}.drop-subtext[data-v-41f2e075]{color:var(--text-muted);margin-top:4px;font-size:12px}.hidden-input[data-v-41f2e075]{display:none}.editor-page[data-v-5cf8ce00]{width:100vw;height:100vh;position:relative;overflow:hidden}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-color:#0b1120;--bg-gradient:radial-gradient(circle at 50% 0%, #1e1b4b 0%, #0b1120 70%);--surface-color:#0f172abf;--surface-border:#ffffff1f;--surface-hover:#ffffff14;--text-main:#f8fafc;--text-muted:#94a3b8;--text-dim:#64748b;--accent-primary:#6366f1;--accent-secondary:#ec4899;--accent-amber:#f59e0b;--accent-cyan:#06b6d4;--accent-emerald:#10b981;--grid-dot-color:#ffffff14;--node-male-bg:#1e3a8a99;--node-male-border:#3b82f6;--node-female-bg:#83184399;--node-female-border:#ec4899;--node-other-bg:#37415199;--node-other-border:#9ca3af;--line-stroke:#94a3b8;--line-spouse:#ec4899;--line-active:#6366f1;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 2px 8px #0000004d;--shadow-lg:0 12px 32px #00000080}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-color:#f8fafc;--bg-gradient:radial-gradient(circle at 50% 0%, #e0e7ff 0%, #f8fafc 70%);--surface-color:#ffffffd9;--surface-border:#00000014;--surface-hover:#0000000a;--text-main:#0f172a;--text-muted:#475569;--text-dim:#94a3b8;--grid-dot-color:#00000014;--node-male-bg:#dbeafee6;--node-male-border:#3b82f6;--node-female-bg:#fce7f3e6;--node-female-border:#ec4899;--node-other-bg:#f3f4f6e6;--node-other-border:#9ca3af;--line-stroke:#64748b;--line-spouse:#db2777;--line-active:#4f46e5}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-color);color:var(--text-main);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;overflow-x:hidden}.glass-panel{background:var(--surface-color);-webkit-backdrop-filter:blur(16px);border:1px solid var(--surface-border);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg)}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent-primary), #4f46e5);color:#fff;box-shadow:0 4px 14px #6366f166}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #6366f199}.btn-secondary{background:var(--surface-hover);border-color:var(--surface-border);color:var(--text-main)}.btn-secondary:hover{border-color:var(--accent-primary);background:#ffffff1f}.btn-icon{border-radius:var(--radius-md);background:var(--surface-hover);border:1px solid var(--surface-border);width:34px;height:34px;color:var(--text-main);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.btn-icon:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:#ffffff26}.btn-icon:disabled{opacity:.4;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:.25s cubic-bezier(.16,1,.3,1) forwards fadeIn}
