.graph-wrap[data-v-a4618b43]{background:#efe9db;border-radius:14px;height:52vh;min-height:260px;position:relative;overflow:hidden}.graph-svg[data-v-a4618b43]{touch-action:none;width:100%;height:100%;display:block}.node[data-v-a4618b43]{cursor:pointer}.node rect[data-v-a4618b43]{stroke:#0000;stroke-width:2px}.node rect.selected[data-v-a4618b43]{stroke:#0e7c74;stroke-width:3px}.fit-btn[data-v-a4618b43]{color:#5b564a;background:#fff;border:1px solid #d6cfc0;border-radius:999px;padding:6px 12px;font-size:13px;position:absolute;bottom:10px;right:10px}.person-card[data-v-1a318338]{border-radius:14px;margin-top:12px;padding:16px}.p-head[data-v-1a318338]{align-items:center;gap:12px;display:flex}.avatar[data-v-1a318338]{color:#fff;border:2px solid var(--line-strong);background:#9aa3a8;border-radius:50%;flex:none;justify-content:center;align-items:center;width:52px;height:52px;font-family:Songti SC,SimSun,serif;font-size:22px;font-weight:700;display:flex;overflow:hidden}.avatar.male[data-v-1a318338]{background:#2a6f97}.avatar.female[data-v-1a318338]{background:#c25a7a}.avatar img[data-v-1a318338]{object-fit:cover;width:100%;height:100%}.p-head-text[data-v-1a318338]{flex:1;min-width:0}.p-head h2[data-v-1a318338]{margin:0;font-family:Songti SC,SimSun,serif;font-size:20px}.former[data-v-1a318338]{opacity:.6;margin:3px 0 0;font-size:12px}.meta[data-v-1a318338]{opacity:.6;margin:3px 0 0;font-size:13px}.edit-btn[data-v-1a318338]{border:1px solid var(--line);width:34px;height:34px;color:var(--accent);cursor:pointer;background:#fff;border-radius:50%;flex:none;font-size:16px}.rel[data-v-1a318338]{background:var(--gold-soft);border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:12px}.rel-line[data-v-1a318338]{margin:4px 0;font-size:15px}.rel-line b[data-v-1a318338]{color:var(--accent-strong)}.note[data-v-1a318338]{opacity:.65;margin:6px 0 0;font-size:12px}.bio[data-v-1a318338]{border:1px solid var(--line);background:#fff;border-radius:10px;margin:12px 0;padding:12px}.bio-row[data-v-1a318338]{font-size:14px;line-height:1.6}.bio-row .k[data-v-1a318338]{min-width:3em;color:var(--accent-strong);margin-right:8px;font-size:13px;font-weight:700;display:inline-block}.audio[data-v-1a318338]{margin:12px 0}.audio-label[data-v-1a318338]{color:var(--accent-strong);margin:0 0 6px;font-size:13px;font-weight:700}.audio audio[data-v-1a318338]{width:100%}.edit-form[data-v-1a318338]{border:1px solid var(--line-strong);background:#fff;border-radius:10px;flex-direction:column;gap:10px;margin:12px 0;padding:12px;display:flex}.f[data-v-1a318338]{color:var(--accent-strong);flex-direction:column;gap:4px;font-size:13px;display:flex}.f-row[data-v-1a318338]{gap:10px;display:flex}.f-row .f[data-v-1a318338]{flex:1}.f input[data-v-1a318338],.f select[data-v-1a318338],.f textarea[data-v-1a318338]{border:1px solid var(--line);color:var(--fg);background:#fff;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:15px}.upload-btn[data-v-1a318338]{border:1px solid var(--line-strong);color:var(--accent-strong);cursor:pointer;background:#fff;border-radius:8px;padding:8px 12px;font-size:14px}.edit-actions[data-v-1a318338]{justify-content:flex-end;gap:10px;display:flex}.ghost[data-v-1a318338],.primary[data-v-1a318338]{cursor:pointer;border-radius:8px;padding:8px 18px;font-size:14px}.ghost[data-v-1a318338]{border:1px solid var(--line);color:var(--fg);background:#fff}.primary[data-v-1a318338]{border:1px solid var(--accent);background:var(--accent);color:#fff;font-weight:600}.primary[data-v-1a318338]:disabled{opacity:.5}.relatives[data-v-1a318338]{flex-wrap:wrap;gap:8px;display:flex}.chip[data-v-1a318338]{border:1px solid var(--line);color:inherit;cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:5px;padding:6px 10px;font-size:13px;display:inline-flex}.chip span[data-v-1a318338]{color:var(--accent-strong);font-size:11px;font-weight:700}.chip em[data-v-1a318338]{opacity:.55;font-size:12px;font-style:normal}.empty[data-v-1a318338]{opacity:.5;font-size:13px}.calc-card[data-v-9732f7b2]{border-radius:14px;margin-top:12px;padding:16px}.calc-card h3[data-v-9732f7b2]{margin:0;font-size:16px}.sub[data-v-9732f7b2]{opacity:.6;margin:3px 0 0;font-size:12px}.pickers[data-v-9732f7b2]{align-items:flex-end;gap:8px;margin-top:12px;display:flex}.pickers label[data-v-9732f7b2]{opacity:.8;flex-direction:column;flex:1;gap:4px;font-size:12px;display:flex}.pickers select[data-v-9732f7b2]{color:inherit;background:#fff;border:1px solid #d6cfc0;border-radius:8px;width:100%;padding:7px 8px;font-size:14px}.arrow[data-v-9732f7b2]{opacity:.5;padding-bottom:8px;font-size:16px}.result[data-v-9732f7b2]{background:#0e7c7414;border-radius:10px;margin-top:12px;padding:12px}.rel-line[data-v-9732f7b2]{margin:4px 0;font-size:15px}.rel-line b[data-v-9732f7b2]{color:#0e7c74}.note[data-v-9732f7b2]{opacity:.65;margin:6px 0 0;font-size:12px}.genealogy[data-v-ab3cbe6b]{margin-top:6px}.gen[data-v-ab3cbe6b]{margin-bottom:16px}.gen-label[data-v-ab3cbe6b]{letter-spacing:1px;opacity:.55;text-transform:none;margin:0 0 8px;font-size:13px;font-weight:600}.gen-list[data-v-ab3cbe6b]{margin:0;padding:0;list-style:none}.person[data-v-ab3cbe6b]{background:#fff;border:1px solid #e7e0d2;border-radius:10px;margin-bottom:8px;padding:10px 12px}.line1[data-v-ab3cbe6b]{align-items:baseline;gap:8px;display:flex}.name[data-v-ab3cbe6b]{font-size:16px;font-weight:600}.sex[data-v-ab3cbe6b]{font-size:13px}.sex.male[data-v-ab3cbe6b]{color:#2a6f97}.sex.female[data-v-ab3cbe6b]{color:#c25a7a}.sex.unknown[data-v-ab3cbe6b]{color:#999}.years[data-v-ab3cbe6b]{opacity:.5;margin-left:auto;font-size:12px}.line2[data-v-ab3cbe6b]{align-items:baseline;gap:10px;margin-top:4px;display:flex}.term[data-v-ab3cbe6b]{color:#0e7c74;font-size:14px;font-weight:600}.meta[data-v-ab3cbe6b]{opacity:.55;font-size:12px}.bio[data-v-ab3cbe6b]{opacity:.75;margin:6px 0 0;font-size:13px;line-height:1.5}.admin[data-v-86d6f16e]{border:1px solid var(--line-strong);border-radius:14px;margin-top:12px;padding:16px}.a-head[data-v-86d6f16e]{justify-content:space-between;align-items:center;display:flex}.a-head h2[data-v-86d6f16e]{color:var(--accent-strong);margin:0;font-family:Songti SC,SimSun,serif;font-size:18px}.close[data-v-86d6f16e]{border:1px solid var(--line);width:30px;height:30px;color:var(--accent);cursor:pointer;background:#fff;border-radius:50%}.a-msg[data-v-86d6f16e]{color:var(--accent-strong);margin:8px 0 0;font-size:13px}.a-block[data-v-86d6f16e]{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.a-block h3[data-v-86d6f16e]{margin:0 0 6px;font-size:15px}.a-desc[data-v-86d6f16e]{opacity:.6;margin:0 0 8px;font-size:12px}.snap-list[data-v-86d6f16e]{flex-direction:column;gap:8px;max-height:260px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.snap-list li[data-v-86d6f16e]{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.snap-info[data-v-86d6f16e]{flex-direction:column;gap:2px;min-width:0;display:flex}.snap-info b[data-v-86d6f16e]{color:var(--accent-strong);font-size:14px}.snap-info span[data-v-86d6f16e]{opacity:.6;font-size:12px}.snap-info em[data-v-86d6f16e]{opacity:.7;font-size:12px;font-style:normal}.rollback[data-v-86d6f16e]{border:1px solid var(--accent);color:var(--accent-strong);cursor:pointer;background:#fff;border-radius:8px;flex:none;padding:6px 12px;font-size:13px}.toggle[data-v-86d6f16e]{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.toggle input[data-v-86d6f16e]{width:18px;height:18px}.bg-list[data-v-86d6f16e]{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.bg-item[data-v-86d6f16e]{width:64px;height:64px;position:relative}.bg-item img[data-v-86d6f16e]{object-fit:cover;border:1px solid var(--line);border-radius:8px;width:100%;height:100%}.bg-item .del[data-v-86d6f16e]{color:#fff;cursor:pointer;background:#c0392b;border:none;border-radius:50%;width:20px;height:20px;font-size:12px;line-height:1;position:absolute;top:-6px;right:-6px}.upload-btn[data-v-86d6f16e]{border:1px solid var(--line-strong);color:var(--accent-strong);cursor:pointer;background:#fff;border-radius:8px;padding:8px 14px;font-size:14px}.add-form[data-v-86d6f16e]{flex-direction:column;gap:10px;display:flex}.f[data-v-86d6f16e]{color:var(--accent-strong);flex-direction:column;gap:4px;font-size:13px;display:flex}.f input[data-v-86d6f16e],.f select[data-v-86d6f16e]{border:1px solid var(--line);color:var(--fg);background:#fff;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:15px}.a-err[data-v-86d6f16e]{color:#c0392b;margin:0;font-size:13px}.primary[data-v-86d6f16e]{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;padding:10px;font-size:14px;font-weight:600}.bg-wall[data-v-b757e1ac]{z-index:0;pointer-events:none;opacity:.15;position:fixed;inset:0;overflow:hidden}.track[data-v-b757e1ac]{flex-direction:column;animation:80s linear infinite scrollUp-b757e1ac;display:flex}.set[data-v-b757e1ac]{grid-template-columns:repeat(3,1fr);gap:10px;padding:10px;display:grid}.set img[data-v-b757e1ac]{aspect-ratio:1;object-fit:cover;border-radius:6px;width:100%}@keyframes scrollUp-b757e1ac{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@media (width>=700px){.set[data-v-b757e1ac]{grid-template-columns:repeat(4,1fr)}}.app[data-v-6356940c]{z-index:1;max-width:640px;margin:0 auto;padding:16px 14px 40px;position:relative}.topbar[data-v-6356940c]{border-bottom:1px solid var(--line-strong);justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;padding-bottom:12px;display:flex}.title h1[data-v-6356940c]{letter-spacing:1px;color:var(--accent-strong);margin:0;font-family:Songti SC,STSong,SimSun,serif;font-size:21px}.title p[data-v-6356940c]{opacity:.6;margin:4px 0 0;font-size:13px}.anchor[data-v-6356940c]{opacity:.8;text-align:right;flex-direction:column;gap:4px;font-size:12px;display:flex}.anchor select[data-v-6356940c]{border:1px solid var(--line-strong);color:inherit;background:#fff;border-radius:8px;padding:6px 8px;font-size:14px}.search[data-v-6356940c]{margin-bottom:12px;position:relative}.search input[data-v-6356940c]{box-sizing:border-box;border:1px solid var(--line-strong);width:100%;color:inherit;background:#fff;border-radius:10px;padding:10px 12px;font-size:15px}.results[data-v-6356940c]{z-index:10;border:1px solid var(--line-strong);background:#fff;border-radius:10px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 6px 20px #785a1e1f}.results li[data-v-6356940c]{cursor:pointer;border-radius:7px;justify-content:space-between;align-items:center;padding:9px 10px;font-size:15px;display:flex}.results li[data-v-6356940c]:hover{background:var(--gold-soft)}.results .rel[data-v-6356940c]{opacity:.55;font-size:13px}.no-result[data-v-6356940c]{opacity:.55;margin:8px 0 0;font-size:13px}.tabs[data-v-6356940c]{gap:8px;margin-bottom:12px;display:flex}.tab[data-v-6356940c]{border:1px solid var(--line-strong);color:inherit;cursor:pointer;opacity:.7;background:#fff;border-radius:10px;flex:1;padding:8px 0;font-size:14px}.tab.active[data-v-6356940c]{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1;font-weight:600}.hint[data-v-6356940c]{text-align:center;opacity:.55;margin-top:14px;font-size:13px}.footer[data-v-6356940c]{text-align:center;margin-top:20px}.actions[data-v-6356940c]{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.export[data-v-6356940c]{border:1px solid var(--accent);color:var(--accent-strong);cursor:pointer;background:#fff;border-radius:999px;padding:9px 18px;font-size:14px}.export[data-v-6356940c]:hover{background:var(--gold-soft)}.footnote[data-v-6356940c]{opacity:.5;margin:8px 0 0;font-size:12px}:root{--bg:#f5f1e8;--fg:#2c2314;--card:#fffdf7;--accent:#a67c2e;--accent-strong:#7d5a1c;--line:#e4d8bb;--line-strong:#cbb983;--gold-soft:#a67c2e17;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,Roboto,sans-serif}.card{background:var(--card);border:1px solid var(--line);box-shadow:0 1px 4px #82642812}.print-title{display:none}@media print{body{background:#fff}.topbar,.search,.tabs,.footer,.hint,.graph-wrap,.person-card,.calc-card,.admin,.bg-wall{display:none!important}.print-title{text-align:center;margin:0 0 16px;font-family:Songti SC,STSong,SimSun,serif;font-size:22px;display:block}.app{max-width:none!important;padding:0!important}.genealogy{box-shadow:none!important;border:none!important;margin:0!important}}
