:root{--bg: #050505;--ink: #e9e2d3;--ink-2: #b9b1a1;--ink-3: #7d766a;--line: rgba(233, 226, 211, .22);--line-2: rgba(233, 226, 211, .45);--red: #c4372a;--red-2: #e0523f;--paper: #e8dfca;--paper-ink: #1d1a16;--paper-line: rgba(29, 26, 22, .28);--serif: "Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", "Noto Serif CJK SC", "SimSun", serif;--wx-木: #5f9a7c;--wx-火: #c4372a;--wx-土: #c49a3a;--wx-金: #d9d2c2;--wx-水: #6f7e9c}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--serif)}body{overflow:hidden;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:1px solid var(--red-2);outline-offset:2px}.dim{color:var(--ink-3)}.red{color:var(--red-2)}.mono{font-variant-numeric:tabular-nums}#bar{position:fixed;top:0;left:0;right:0;height:40px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 22px;font-size:13px;letter-spacing:.12em;color:var(--ink-2);border-bottom:1px solid var(--line);z-index:5;background:var(--bg)}#bar .bar-c{display:flex;align-items:center;gap:14px}#bar .bar-c:before,#bar .bar-c:after{content:"";width:60px;height:1px;background:var(--line-2)}#bar .bar-r{text-align:right}.conn{display:inline-flex;align-items:center;gap:6px}.dot{width:7px;height:7px;border-radius:50%;background:var(--ink-3);display:inline-block}.dot.live{background:#7fb59a;box-shadow:0 0 0 3px #7fb59a2e}.dot.stale{background:#c49a3a}.dot.off{background:var(--red)}.seg{display:inline-flex;border:1px solid var(--line-2)}.seg button{white-space:nowrap;padding:2px 10px;font-size:12px;letter-spacing:.12em;color:var(--ink-2)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg)}select.case{font:inherit;font-size:12px;background:var(--bg);color:var(--ink-2);border:1px solid var(--line);padding:1px 4px}#app{position:fixed;inset:40px 0 0;display:grid;grid-template-columns:minmax(260px,300px) 1fr minmax(300px,360px)}.col{overflow-y:auto;overflow-x:hidden;padding:18px 22px 24px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}#left{border-right:1px solid var(--line)}#right{border-left:1px solid var(--line)}#center{position:relative;display:grid;grid-template-rows:1fr auto auto;min-width:0;min-height:0}#stage-wrap{position:relative;min-height:0;overflow:hidden}#stage{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:default}#stage.pointer{cursor:pointer}#stage.grab{cursor:grab}#stage.grabbing{cursor:grabbing}#leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}#labels,#hud{position:absolute;inset:0;pointer-events:none}#hud>*{pointer-events:auto}.brand{display:flex;align-items:flex-end;gap:10px;margin-bottom:16px}.brand .zh{font-size:44px;line-height:1;letter-spacing:.04em;font-weight:600}.brand .en{font-size:10px;letter-spacing:.38em;color:var(--ink-2);margin-top:6px}.seal{display:inline-grid;place-items:center;width:22px;height:22px;border:1.5px solid var(--red);color:var(--red);font-size:9px;line-height:1;letter-spacing:0;writing-mode:vertical-rl;padding:1px;border-radius:2px}.seal.lg{width:46px;height:46px;font-size:14px}h2.h{font-size:21px;font-weight:600;letter-spacing:.14em;margin:18px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--line-2);display:flex;justify-content:space-between;align-items:baseline}h2.h small{font-size:11px;font-weight:400;color:var(--ink-3);letter-spacing:.1em}.big-name{font-size:26px;letter-spacing:.08em;margin:2px 0}.sub{font-size:13px;color:var(--ink-2);letter-spacing:.06em;line-height:1.6}.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 14px;font-size:13.5px;line-height:1.7}.kv dt{color:var(--ink-2);letter-spacing:.08em}.kv dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.kv dd.missing,.rows .missing{color:var(--ink-3)}.kv dd.stale,.rows .stale{color:#c49a3a}.pillars{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:10px 0 6px;text-align:center}.pillars div{padding:4px 0 6px;border-right:1px solid var(--line)}.pillars div:last-child{border-right:0}.pillars small{display:block;font-size:11px;color:var(--ink-3);letter-spacing:.14em}.pillars b{font-size:21px;font-weight:600;letter-spacing:.06em}.pillars .none b{color:var(--ink-3);font-weight:400;font-size:15px}.counts{display:grid;grid-template-columns:repeat(5,1fr);text-align:center;font-size:14px;border-bottom:1px solid var(--line);padding:2px 0 4px}.counts .zero{color:var(--ink-3)}.counts .top{color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--red)}.cap{font-size:11px;color:var(--ink-3);text-align:center;letter-spacing:.2em;margin:3px 0 6px}.verdict{text-align:center;font-size:17px;letter-spacing:.14em;margin:6px 0}.link{font-size:13px;color:var(--ink-2);letter-spacing:.12em;border-bottom:1px solid transparent}.link:hover{color:var(--ink);border-bottom-color:var(--line-2)}.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-2);padding:7px 16px;font-size:14px;letter-spacing:.14em;color:var(--ink)}.btn:hover{border-color:var(--ink)}.btn.wide{width:100%;justify-content:center;font-size:17px;padding:10px 0}.btn.red{border-color:var(--red);color:var(--red-2)}.btn[disabled]{opacity:.4;cursor:default}.center-row{display:flex;justify-content:center;margin:10px 0;gap:14px;flex-wrap:wrap}.dx-head{display:flex;align-items:flex-start;justify-content:space-between}.dx-head .t{font-size:40px;font-weight:600;letter-spacing:.1em;line-height:1.1}.dx-headline{font-size:14px;color:var(--ink-2);letter-spacing:.12em;margin:6px 0 12px}.exam{border-top:1px solid var(--line-2)}.exam div{display:grid;grid-template-columns:42px 1fr;border-bottom:1px solid var(--line);align-items:center}.exam b{font-size:20px;font-weight:600;padding:6px 0;border-right:1px solid var(--line);text-align:center}.exam span{font-size:13px;padding:5px 0 5px 12px;line-height:1.55;color:var(--ink-2)}.syn{margin:14px 0 4px}.syn .n{font-size:30px;color:var(--red-2);font-weight:600;letter-spacing:.1em}.syn .b{font-size:13px;color:var(--ink-2);letter-spacing:.04em;margin:2px 0 8px}.syn .f{display:grid;grid-template-columns:42px 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center}.syn .f b{font-size:20px;font-weight:600;text-align:center;border-right:1px solid var(--line);padding:6px 0}.syn .f ul{margin:0;padding:4px 0 4px 12px;list-style:none;font-size:14px;line-height:1.6}.calm{font-size:20px;letter-spacing:.12em;margin:14px 0}.unk{font-size:12.5px;color:var(--ink-2);line-height:1.75;margin:0;padding-left:0;list-style:none}.unk li:before{content:"· ";color:var(--ink-3)}.lab{position:absolute;pointer-events:auto;cursor:pointer;font-size:13px;line-height:1.45;letter-spacing:.06em;padding:3px 8px 4px;border:1px solid transparent;background:#0505058c;white-space:nowrap;transform:translateY(-50%);transition:opacity .25s}.lab .t{font-size:15px;color:var(--ink)}.lab .v{font-size:12px;color:var(--ink-2)}.lab:hover,.lab.hover{border-color:var(--line-2)}.lab.sel{border-color:var(--ink)}.lab.alert .t,.lab.alert .v{color:var(--red-2)}.lab.alert{border-color:var(--red)}.lab.candidate .v,.lab.unknown .v{color:var(--ink-3)}.lab.stale .v{color:#c49a3a}.lab.hide{opacity:0;pointer-events:none}#leaders line,#leaders polyline{stroke:var(--line-2);stroke-width:1;fill:none}#leaders .alert{stroke:var(--red)}#leaders .sel{stroke:var(--ink)}#leaders circle{fill:var(--ink)}#leaders circle.alert{fill:var(--red-2)}.facing{position:absolute;left:14px;top:12px}.wx-ring{position:absolute;inset:0;pointer-events:none}.wx-ring button{position:absolute;width:34px;height:34px;border-radius:50%;border:1px solid var(--line-2);background:#050505b3;font-size:16px;pointer-events:auto;transform:translate(-50%,-50%);display:grid;place-items:center;line-height:1}.wx-ring button small{position:absolute;right:-6px;bottom:-4px;font-size:10px;color:var(--ink-2)}.wx-ring button.top{border-color:var(--ink)}.wx-ring button.zero{color:var(--ink-3);border-style:dashed}.wx-mini{position:absolute;left:12px;bottom:8px;width:112px;height:112px;overflow:visible}.wx-mini g{pointer-events:auto}.wx-mini text{fill:var(--ink-2);font-size:11px;text-anchor:middle;dominant-baseline:central;font-family:var(--serif)}.wx-mini circle{fill:var(--bg);stroke:var(--line-2)}.wx-mini .on circle{stroke:var(--red-2)}.wx-mini path{stroke:var(--line);fill:none}.status-chip{position:absolute;right:12px;top:12px;font-size:12px;color:var(--ink-2);letter-spacing:.1em;text-align:right;line-height:1.6}.status-chip .warn{color:#c49a3a}#under{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:6px 22px 4px;border-top:1px solid var(--line);min-height:58px}.pulse b{font-size:28px;color:var(--red-2);font-weight:600;font-variant-numeric:tabular-nums}.pulse small{font-size:12px;color:var(--ink-2);letter-spacing:.1em}.pulse .cap2{display:block;font-size:12px;color:var(--ink-2);letter-spacing:.12em}.spark{width:100%;height:40px;border:1px solid var(--line)}.spark polyline{stroke:var(--ink);fill:none;stroke-width:1.2;vector-effect:non-scaling-stroke}.under-note{font-size:12px;color:var(--ink-2);letter-spacing:.1em}#views{display:flex;justify-content:center;gap:0;padding:6px 0 12px;font-size:18px;letter-spacing:.3em}#views button{padding:2px 18px;color:var(--ink-2);position:relative}#views button+button:before{content:"·";position:absolute;left:-4px;color:var(--ink-3)}#views button[aria-current=page]{color:var(--ink)}#views button[aria-current=page]:after{content:"";position:absolute;left:50%;bottom:-6px;width:5px;height:5px;border-radius:50%;background:var(--red-2);transform:translate(-50%)}[data-view=interior] #left .ov,[data-view=interior] #right .ov,[data-view=overview] .in,[data-view=orifices] .in{display:none}.in-title{display:flex;align-items:flex-end;gap:14px}.in-title .zh{font-size:64px;font-weight:600;line-height:.95}.in-nav{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:16px}.in-nav .figs img{width:100%;display:block;opacity:.8}.in-nav ol{list-style:none;margin:0;padding:0 0 0 14px;border-left:1px solid var(--line-2);display:flex;flex-direction:column;gap:4px}.in-nav li button{font-size:19px;letter-spacing:.1em;color:var(--ink-2);padding:2px 4px;position:relative;white-space:nowrap}.in-nav li button[aria-current=true]{color:var(--ink)}.in-nav li button[aria-current=true]:before{content:"";position:absolute;left:-20px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--red-2);transform:translateY(-50%)}.in-nav li button.cand{font-size:15px;color:var(--ink-3)}.in-big{font-size:36px;letter-spacing:.08em;margin:18px 0 6px}.in-nums{display:flex;gap:22px}.in-nums div{border-left:1px solid var(--line-2);padding-left:10px}.in-nums b{display:block;font-size:30px;font-weight:400;font-variant-numeric:tabular-nums}.in-nums small{font-size:12px;color:var(--ink-2);letter-spacing:.14em}.in-hint{position:absolute;left:50%;bottom:10px;transform:translate(-50%);font-size:13px;color:var(--ink-2);letter-spacing:.2em;pointer-events:none;text-align:center}#lens{position:absolute;width:220px;height:220px;border-radius:50%;border:1px solid var(--ink-2);background-repeat:no-repeat;pointer-events:none;display:none;box-shadow:0 0 0 6px #05050580}.paper{background:var(--paper);color:var(--paper-ink);background-image:radial-gradient(circle at 20% 10%,rgba(255,255,255,.35),transparent 40%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .3 0 0 0 0 .22 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}#right.paper-mode{background:var(--paper);color:var(--paper-ink);border-left:0}#right.paper-mode .h,#right.paper-mode .exam,#right.paper-mode .exam div,#right.paper-mode .exam b{border-color:var(--paper-line)}#right.paper-mode .dim,#right.paper-mode .sub,#right.paper-mode .exam span,#right.paper-mode .kv dt{color:#5a5248}#right.paper-mode .btn{color:var(--paper-ink);border-color:var(--paper-line)}.in-dx .big{font-size:34px;font-weight:600;letter-spacing:.08em}.in-dx .big.alert{color:var(--red)}.in-dx .why{font-size:13px;color:#5a5248;margin:4px 0 10px}.in-dx .map{font-size:13px;line-height:1.75;color:#3b352e;border-top:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line);padding:8px 0;margin:10px 0}.rows{width:100%;border-collapse:collapse;font-size:13.5px}.rows td{padding:5px 0;border-bottom:1px solid var(--paper-line);vertical-align:top}.rows td:last-child{text-align:right;font-variant-numeric:tabular-nums}.rows td small{display:block;font-size:11px;color:#7a7064}.rows .missing{color:#8d8376}.rows .stale{color:#9a6d16}.rows .candidate{color:#8d8376}#orifices{overflow-y:auto;padding:18px 22px}.or-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.or-card{border:1px solid var(--line);padding:10px 12px 12px;display:grid;grid-template-rows:150px auto}.or-card img{max-width:100%;max-height:150px;margin:0 auto;display:block;object-fit:contain}.or-card.off img{filter:grayscale(1) brightness(.5)}.or-card h3{margin:8px 0 2px;font-size:18px;font-weight:600;letter-spacing:.12em}.or-card p{margin:0;font-size:12.5px;color:var(--ink-2);line-height:1.6}.struct{margin-top:22px}.struct table{width:100%;border-collapse:collapse;font-size:13px}.struct td{padding:6px 4px;border-bottom:1px solid var(--line)}.struct td:last-child{color:var(--ink-2);text-align:right}#report{position:fixed;inset:0;z-index:8;overflow-y:auto;background:#111}#report .rbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 18px;background:#0b0b0b;border-bottom:1px solid var(--line);font-size:14px;letter-spacing:.1em;flex-wrap:wrap}#report .rbar .acts{display:flex;gap:8px;flex-wrap:wrap}#report .sheet{max-width:860px;margin:22px auto 60px;padding:46px 56px 40px;box-shadow:0 10px 50px #0009}.sheet .rt{text-align:center;position:relative}.sheet .rt h1{font-size:54px;margin:0;letter-spacing:.12em;font-weight:700}.sheet .rt .seal{position:absolute;right:0;top:0;width:58px;height:58px;font-size:18px;border-width:2px;background:#c4372a0f}.sheet .rt h2{font-size:24px;letter-spacing:.3em;font-weight:600;margin:8px 0 6px;display:flex;align-items:center;justify-content:center;gap:16px}.sheet .rt h2:before,.sheet .rt h2:after{content:"";width:110px;height:1px;background:var(--paper-ink)}.sheet .rt p{margin:2px 0;font-size:16px;letter-spacing:.06em}.sheet section{margin-top:22px}.sheet section>h3{font-size:26px;margin:0 0 8px;padding-bottom:4px;border-bottom:1.5px solid var(--paper-ink);letter-spacing:.1em}.sheet section>h3 .num{color:var(--red)}.sheet .kv{font-size:15px;grid-template-columns:9em 1fr}.sheet .kv dd{text-align:left}.sheet .kv.two{grid-template-columns:8em 1fr 8em 1fr}.sheet .kv dt{color:var(--paper-ink);font-weight:600}.sheet .note{font-size:13.5px;font-style:italic;color:#4d463d;margin:6px 0}.sheet .pillars,.sheet .counts,.sheet .pillars div{border-color:var(--paper-line)}.sheet .pillars small{color:#6a6054}.sheet .exam{border-color:var(--paper-ink)}.sheet .exam div{border-color:var(--paper-line);grid-template-columns:64px 1fr}.sheet .exam b{font-size:26px;border-color:var(--paper-line)}.sheet .exam span{font-size:15.5px;color:var(--paper-ink)}.sheet .rsyn{display:grid;grid-template-columns:210px 1fr;border-bottom:1px solid var(--paper-line);padding:8px 0;align-items:center}.sheet .rsyn .n{font-size:36px;color:var(--red);font-weight:700;letter-spacing:.1em;text-align:center}.sheet .rsyn dl{margin:0;display:grid;grid-template-columns:4em 1fr;gap:6px 10px;font-size:15px;border-left:1px solid var(--paper-line);padding-left:14px}.sheet .rsyn dt{font-weight:600}.sheet .rsyn dd{margin:0}.sheet ul.unk{color:var(--paper-ink);font-size:15px}.sheet .foot{display:flex;justify-content:space-between;align-items:center;margin-top:30px;padding-top:10px;border-top:1px solid var(--paper-line);font-size:14px}#modal{position:fixed;inset:0;z-index:20;background:#000000b8;display:grid;place-items:center;padding:16px}#modal[hidden]{display:none}.dlg{width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:#0c0c0c;border:1px solid var(--line-2);padding:26px 28px 22px}.dlg h2{margin:0 0 4px;font-size:26px;letter-spacing:.14em}.dlg p,.dlg li{font-size:14px;line-height:1.8;color:var(--ink-2)}.dlg ul{padding-left:1.1em;margin:6px 0}.dlg .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.dlg fieldset{border:1px solid var(--line);margin:12px 0;padding:10px 14px 12px}.dlg legend{padding:0 6px;letter-spacing:.14em}.dlg label{display:grid;grid-template-columns:6em 1fr;align-items:center;gap:8px;font-size:14px;margin:6px 0;color:var(--ink-2)}.dlg input,.dlg select{font:inherit;font-size:14px;background:transparent;color:var(--ink);border:0;border-bottom:1px solid var(--line-2);padding:3px 0;color-scheme:dark;width:100%}.dlg .hint{font-size:12px;color:var(--ink-3)}.dlg .err{color:var(--red-2);font-size:13px;min-height:1em}#toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%);background:#111;border:1px solid var(--line-2);padding:8px 16px;font-size:13px;letter-spacing:.1em;opacity:0;transition:opacity .3s;pointer-events:none;z-index:30}#toast.on{opacity:1}.chips{display:none}@media (max-width: 1100px){#app{grid-template-columns:250px 1fr;grid-template-rows:1fr auto}#right{grid-column:1 / 3;border-left:0;border-top:1px solid var(--line);max-height:40vh}}@media (max-width: 760px){body{overflow:auto}#bar{position:sticky;height:auto;min-height:36px;grid-template-columns:1fr auto;padding:6px 14px;font-size:11px;gap:4px 8px}#bar .bar-c{grid-column:1 / 3;grid-row:2;justify-content:center}#bar .bar-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;letter-spacing:.04em}#bar .bar-r{font-size:10px;letter-spacing:.02em}.seg button{white-space:nowrap;padding:4px 10px}#bar .bar-c:before,#bar .bar-c:after{width:20px}#app{position:static;display:flex;flex-direction:column}.col{overflow:visible;padding:14px 16px}#left{order:1;border-right:0}#center{order:2;grid-template-rows:72vh auto auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}#right{order:3;max-height:none}.brand .zh{font-size:34px}.status-chip{top:44px;right:8px;font-size:10px;max-width:60%}.chips{display:flex;gap:8px;overflow-x:auto;padding:8px 14px;grid-column:1 / -1;scrollbar-width:none}.chips button{flex:0 0 auto;border:1px solid var(--line);padding:6px 10px;font-size:14px;min-height:40px}.chips button.alert{border-color:var(--red);color:var(--red-2)}.chips button.sel{border-color:var(--ink)}#under{grid-template-columns:auto 1fr;padding:6px 14px}#under .under-note{grid-column:1 / -1}.or-grid{grid-template-columns:repeat(2,1fr)}.wx-ring{display:none}.wx-mini{width:70px;height:70px}#report .sheet{margin:0;padding:24px 18px}.sheet .rt h1{font-size:34px}.sheet .rt .seal{width:40px;height:40px;font-size:12px}.sheet .rsyn{grid-template-columns:1fr}.sheet .rsyn .n{text-align:left;font-size:28px}.sheet .rsyn dl{border-left:0;padding-left:0}.sheet .kv.two{grid-template-columns:7em 1fr}.sheet .rt h2:before,.sheet .rt h2:after{width:30px}.in-title .zh{font-size:44px}.sheet .rt h2{font-size:17px;letter-spacing:.12em;gap:8px}.sheet .rt p{font-size:13px}#lens{width:150px;height:150px}}@media (pointer: coarse){.wheel{display:none}}@media print{#bar,#app,#modal,#toast,#report .rbar{display:none!important}#report{position:static;overflow:visible;background:none}#report .sheet{box-shadow:none;margin:0;max-width:none}}
