:root{--zhu:#8b1a1a;--ink:#2b2118;--ink-2:#6b5a48;--paper:#f7f1e3;--paper-2:#fffdf8;--line:#e0d2b6;--tabbar-h:58px;--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:Songti SC,Noto Serif SC,Source Han Serif SC,STSong,serif}.app{flex-direction:column;height:100dvh;display:flex}.app-header{background:var(--zhu);color:#f7f1e3;flex:none;align-items:center;gap:16px;height:56px;padding:0 20px;display:flex;box-shadow:0 1px #00000026}.app-title{letter-spacing:6px;white-space:nowrap;cursor:pointer;font-size:22px;font-weight:700}.app-title small{letter-spacing:1px;opacity:.8;margin-left:10px;font-size:12px;font-weight:400}.app-nav{flex:1;gap:4px;display:flex}.app-nav button{color:#f7f1e3cc;font:inherit;cursor:pointer;letter-spacing:2px;background:0 0;border:0;border-radius:6px;padding:6px 14px;font-size:16px}.app-nav button:hover{color:#fff;background:#ffffff14}.app-nav button.on{color:#fff;background:#ffffff24}.app-main{flex:1;min-height:0;overflow:auto}.app-main.full{position:relative;overflow:hidden}.tabbar{height:calc(var(--tabbar-h) + var(--safe-b));padding-bottom:var(--safe-b);background:var(--paper-2);border-top:1px solid var(--line);flex:none;display:flex}.tabbar button{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;display:flex}.tabbar button .anticon{font-size:20px}.tabbar button.on{color:var(--zhu);font-weight:700}.page{max-width:1080px;margin:0 auto;padding:24px 20px 48px}.page-title{letter-spacing:4px;margin:4px 0 18px;font-size:26px}@media (width<=767px){.app-header{gap:8px;height:50px;padding:0 12px}.app-title{letter-spacing:4px;font-size:19px}.page{padding:16px 14px 32px}.page-title{font-size:22px}}.chip{border:1px solid var(--line);background:var(--paper-2);font:inherit;color:var(--ink);cursor:pointer;letter-spacing:0;border-radius:4px;align-items:center;gap:4px;margin:0 6px 8px 0;padding:3px 10px;font-size:15px;line-height:1.5;display:inline-flex}.chip:hover{border-color:var(--zhu);color:var(--zhu)}.chip .dot{border-radius:50%;flex:none;width:6px;height:6px}.chip.muted{color:#9a8b78}.chip.me{border-color:var(--zhu);background:#8b1a1a10}.tree-wrap{background:radial-gradient(circle at 20% 10%, #fffaf0 0, transparent 60%), var(--paper);touch-action:none;position:absolute;inset:0;overflow:hidden}.tree-wrap svg{cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.tree-wrap svg:active{cursor:grabbing}.tree-toolbar{pointer-events:none;align-items:flex-start;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.tree-toolbar>*{pointer-events:auto}.tree-zoom{flex-direction:column;gap:6px;display:flex;position:absolute;bottom:16px;right:12px}.tree-legend{border:1px solid var(--line);color:var(--ink-2);background:#fffdf8e6;border-radius:6px;padding:8px 10px;font-size:12px;line-height:1.9;position:absolute;bottom:16px;left:12px}.tree-legend i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.gen-rail{pointer-events:none;width:0;position:absolute;top:0;bottom:0;left:0}.gen-rail span{opacity:.9;color:#f7f1e3;white-space:nowrap;background:#8b1a1ae6;border-radius:0 4px 4px 0;padding:1px 6px 1px 8px;font-size:12px;position:absolute;left:0;transform:translateY(-50%)}.node{cursor:pointer}.node text{pointer-events:none;font-family:Songti SC,Noto Serif SC,serif}.hero{border:1px solid var(--line);background:var(--paper-2);border-radius:10px;grid-template-columns:220px 1fr;align-items:center;gap:28px;padding:28px;display:grid}.hero img{border:1px solid var(--line);border-radius:6px;width:100%}.hero h1{letter-spacing:12px;color:var(--zhu);margin:0 0 6px;font-size:40px}.hero .sub{color:var(--ink-2);letter-spacing:2px;font-size:15px}.stats{grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0;display:grid}.stat{border:1px solid var(--line);background:var(--paper-2);border-radius:8px;padding:14px 16px}.stat .k{color:var(--ink-2);font-size:13px}.stat .v{margin-top:2px;font-size:28px;font-weight:700}.stat .v small{margin-left:2px;font-size:14px;font-weight:400}.card{border:1px solid var(--line);background:var(--paper-2);border-radius:10px;margin-bottom:16px;padding:18px 20px}.card h3{letter-spacing:2px;margin:0 0 12px;font-size:18px}@media (width<=767px){.hero{grid-template-columns:96px 1fr;gap:14px;padding:16px}.hero h1{letter-spacing:6px;font-size:28px}.hero .sub{letter-spacing:0;font-size:13px}.stats{grid-template-columns:repeat(2,1fr);gap:8px}.stat .v{font-size:22px}}.bars{align-items:flex-end;gap:2px;height:170px;padding-top:18px;display:flex}.bar-col{cursor:pointer;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex;position:relative}.bar{background:var(--zhu);opacity:.82;border-radius:4px 4px 0 0;width:72%;max-width:30px;transition:opacity .15s}.bar-col:hover .bar,.bar-col.hot .bar{opacity:1}.bar-val{color:var(--ink-2);margin-bottom:2px;font-size:11px}.bar-axis{border-top:1px solid var(--line);gap:2px;padding-top:4px;display:flex}.bar-axis span{text-align:center;min-width:0;color:var(--ink-2);white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.bar-tip{background:var(--ink);color:#fff;white-space:nowrap;pointer-events:none;z-index:2;border-radius:4px;padding:3px 8px;font-size:12px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.article p{text-indent:2em;text-align:justify;margin:0 0 10px;font-size:17px;line-height:2}.article h2{letter-spacing:6px;text-align:center;color:var(--zhu);margin:28px 0 16px;font-size:22px}.article figure{text-align:center;margin:16px auto}.article figure img{border:1px solid var(--line);border-radius:6px;max-width:min(100%,520px)}.article figcaption{color:var(--ink-2);margin-top:6px;font-size:13px}.jiaxun{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.jiaxun div{text-align:center;border:1px solid var(--line);background:var(--paper-2);letter-spacing:3px;border-radius:6px;padding:10px 4px;font-size:17px}@media (width<=767px){.article p{font-size:16px;line-height:1.9}}.login-bg{background:radial-gradient(circle at 50% 0, #fffaf0, var(--paper) 70%);justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;display:flex}.login-card{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;width:100%;max-width:400px;padding:28px 24px}.login-card h1{text-align:center;color:var(--zhu);letter-spacing:12px;margin:0;font-size:34px}.login-card .sub{text-align:center;color:var(--ink-2);letter-spacing:2px;margin:6px 0 20px}.seal{background:var(--zhu);width:64px;height:64px;color:var(--paper);border-radius:10px;justify-content:center;align-items:center;margin:0 auto 12px;font-size:38px;display:flex}.lineage{flex-wrap:wrap;align-items:center;gap:2px 0;font-size:14px;display:flex}.lineage button{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:2px 4px}.lineage button:hover{color:var(--zhu);background:#8b1a1a0d}.lineage .sep{color:#c2b095;font-size:11px}.lineage .cur{color:var(--zhu);font-weight:700}.muted{color:var(--ink-2)}
