.flag-red[data-v-00576b8c]{color:#c0392b}.flag-blue[data-v-00576b8c]{color:#2b6cb0}.auth-zone[data-v-a7e08858]{flex:none;align-items:center;gap:10px;display:flex}.login-link[data-v-a7e08858]{color:var(--cinnabar);border:1px solid var(--cinnabar-soft);border-radius:8px;padding:5px 12px;font-size:14px}.login-link[data-v-a7e08858]:hover{background:var(--cinnabar);color:#f6efe2;border-color:var(--cinnabar);text-decoration:none}.who[data-v-a7e08858]{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:14px;overflow:hidden}.logout-btn[data-v-a7e08858]{border:1px solid var(--line);color:var(--ink-2);cursor:pointer;background:0 0;border-radius:8px;padding:4px 10px;font-family:inherit;font-size:13px}.logout-btn[data-v-a7e08858]:hover{color:var(--cinnabar);border-color:var(--cinnabar-soft)}:root{--paper:#f6f2e7;--paper-2:#fbf9f1;--card:#fffdf6;--line:#ddd5bd;--line-soft:#e9e3d0;--ink:#2c2a24;--ink-2:#6d675a;--ink-3:#9b9482;--cinnabar:#9e3b2c;--cinnabar-soft:#b8544a;--gold:#8a6d3b;--gold-soft:#c8b98a;--ok:#4a7a4e;--warn-bg:#fdf6dd;--warn-border:#e5d38a;--header:#f3eedd;--serif:"Noto Serif SC", "Source Han Serif SC", "思源宋体", STSong, SimSun, Georgia, serif;--radius:10px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--serif);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.65}#app{flex-direction:column;min-height:100vh;display:flex}a{color:var(--cinnabar);text-decoration:none}a:hover{text-decoration:underline}.site-header{background:var(--header);color:var(--ink);z-index:50;border-bottom:1px solid var(--line);padding:0 16px;position:-webkit-sticky;position:sticky;top:0;box-shadow:0 2px 8px #26231c0f}.site-header .inner{flex-wrap:wrap;align-items:center;gap:12px;max-width:1080px;min-height:56px;margin:0 auto;padding:6px 0;display:flex}.brand{color:var(--ink);letter-spacing:2px;align-items:center;gap:10px;font-size:19px;font-weight:700;display:flex}.brand:hover{text-decoration:none}.seal{object-fit:contain;flex:none;width:34px;height:34px}.site-nav{flex-wrap:wrap;gap:2px;margin-left:6px;display:flex}.site-nav a{color:var(--ink-2);letter-spacing:1px;border-radius:8px;padding:6px 12px;font-size:15px}.site-nav a:hover{color:var(--cinnabar);background:#9e3b2c12;text-decoration:none}.site-nav a.router-link-active{color:#f6efe2;background:var(--cinnabar)}.header-search{margin-left:auto}.page{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:22px 16px 48px}.site-footer{border-top:1px solid var(--line);color:var(--ink-3);text-align:center;background:var(--paper-2);padding:18px 16px 26px;font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card+.card{margin-top:14px}.card h2,.card h3{letter-spacing:1px;color:var(--ink);align-items:center;gap:8px;margin:0 0 12px;font-size:17px;display:flex}.card h2:before,.card h3:before{content:"";background:var(--cinnabar);border-radius:2px;width:4px;height:16px;display:inline-block}.muted{color:var(--ink-2);font-size:14px}.tiny{color:var(--ink-3);font-size:12.5px}.btn{background:var(--card);border:1px solid var(--line);color:var(--ink);cursor:pointer;letter-spacing:1px;border-radius:8px;padding:7px 14px;font-family:inherit;font-size:14.5px;display:inline-block}.btn:hover{border-color:var(--gold);color:var(--gold)}.btn.primary{background:var(--cinnabar);border-color:var(--cinnabar);color:#f6efe2}.btn.primary:hover{background:var(--cinnabar-soft);color:#fff}.btn:disabled{opacity:.45;cursor:default}.tag{border:1px solid var(--line);color:var(--ink-2);background:var(--paper-2);border-radius:999px;padding:1px 8px;font-size:12px;display:inline-block}.tag.warn{background:var(--warn-bg);border-color:var(--warn-border);color:#7a6414}.tag.match{border-color:var(--gold-soft);color:var(--gold);background:#f3ede2}.tag.ok{color:var(--ok);background:#eaf2ea;border-color:#bcd4bd}.tag.err{color:#c0392b;background:#fbeae7;border-color:#e2b3aa}.tag.sus{color:#2b6cb0;background:#e7eef7;border-color:#b3c7e2}.grid{gap:14px;display:grid}.grid.cols-2{grid-template-columns:1fr 1fr}.grid.cols-3{grid-template-columns:repeat(3,1fr)}@media (max-width:720px){.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}.site-header .inner{gap:8px}}table.genealogy{border-collapse:collapse;background:var(--card);width:100%;font-size:14.5px}table.genealogy th,table.genealogy td{border:1px solid var(--line-soft);text-align:left;vertical-align:top;padding:7px 10px}table.genealogy th{color:var(--ink-2);white-space:nowrap;background:#efe9d8;font-weight:600}table.genealogy tr:hover td{background:#fbf7ea}.kv{grid-template-columns:96px 1fr;gap:6px 14px;font-size:15px;display:grid}.kv dt{color:var(--ink-2)}.kv dd{margin:0}.gen-chips{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.gen-chips button{border:1px solid var(--line);background:var(--card);cursor:pointer;color:var(--ink-2);border-radius:999px;padding:5px 14px;font-family:inherit;font-size:14px}.gen-chips button.active{background:var(--cinnabar);border-color:var(--cinnabar);color:#f6efe2}.hero{background:radial-gradient(1200px 300px at 80% -60%, #9e3b2c14, transparent), linear-gradient(180deg, var(--paper-2), var(--paper));border:1px solid var(--line);text-align:center;border-radius:14px;padding:30px 22px}.hero .hall-seal{object-fit:contain;width:74px;height:74px;margin:0 auto 14px}.hero h1{letter-spacing:6px;margin:0;font-size:30px}.hero .sub{color:var(--ink-2);letter-spacing:2px;margin-top:6px}.chain{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:18px;display:flex}.chain .zi{background:var(--card);border:1px solid var(--gold-soft);color:var(--gold);border-radius:8px;place-items:center;width:44px;height:44px;font-size:20px;font-weight:700;display:grid;position:relative}.chain .zi small{color:var(--ink-3);white-space:nowrap;font-size:10.5px;font-weight:400;position:absolute;bottom:-18px}.chain .arrow{color:var(--gold-soft);margin-bottom:16px;font-size:14px}.stat-row{align-items:center;gap:10px;margin:6px 0;font-size:14px;display:flex}.stat-row .label{width:64px;color:var(--ink-2);flex:none}.stat-row .bar{background:var(--line-soft);border-radius:7px;flex:1;height:14px;overflow:hidden}.stat-row .bar i{background:linear-gradient(90deg, var(--gold), var(--gold-soft));border-radius:7px;height:100%;display:block}.stat-row .num{text-align:right;flex:none;width:34px;font-weight:600}.state-tip{text-align:center;color:var(--ink-2);letter-spacing:2px;padding:60px 0}.state-tip.error{color:var(--cinnabar)}.tree-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.tree-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);touch-action:none;cursor:grab;position:relative;overflow:hidden}.tree-wrap:active{cursor:grabbing}.tree-wrap svg{display:block}.tree-node{cursor:pointer}.tree-node rect{fill:var(--card);stroke:var(--line)}.tree-node:hover rect{stroke:var(--cinnabar)}.tree-node text{fill:var(--ink);font-family:var(--serif)}.tree-node.dim rect{fill:#f1ede0;stroke-dasharray:3 2}.tree-node.dim text{fill:var(--ink-3)}.tree-node .dot{fill:#d9b23a}.tree-node.focused rect{stroke:var(--cinnabar);stroke-width:2.5px}.edge{stroke:#b3a884;stroke-width:1.4px;fill:none}.edge.inferred{stroke-dasharray:4 3;stroke:#c08a7f}.search{width:220px;max-width:52vw;position:relative}.search input{border:1px solid var(--line);background:var(--card);width:100%;color:var(--ink);border-radius:8px;outline:none;padding:7px 12px;font-family:inherit;font-size:14px}.search input:focus{border-color:var(--gold)}.search .results{background:var(--card);border:1px solid var(--line);z-index:60;border-radius:10px;max-height:320px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-x:hidden;overflow-y:auto;box-shadow:0 10px 28px #2c2a242e}.search .results a{color:var(--ink);border-bottom:1px solid var(--line-soft);padding:8px 12px;font-size:14px;display:block}.search .results a:last-child{border-bottom:none}.search .results a:hover{background:var(--paper-2);text-decoration:none}.search .results .none{color:var(--ink-3);padding:10px 12px;font-size:13.5px}
