:root{--paper:#f1efe8;--ink:#101512;--muted:#68736d;--line:#cbcfc8;--acid:#b9f227;--blue:#2368ff;--orange:#ff7448;--panel:#faf9f4;--shadow:0 18px 55px rgba(27,36,30,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;background-image:linear-gradient(rgba(17,24,19,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(17,24,19,.035) 1px,transparent 1px);background-size:32px 32px}.shell{max-width:1880px;margin:auto;padding:22px 26px 16px}.masthead{display:grid;grid-template-columns:260px 1fr 270px;gap:28px;align-items:end;padding:16px 0 24px;border-bottom:2px solid var(--ink)}.brand{display:flex;gap:15px;align-items:center;color:inherit;text-decoration:none}.brand>span{display:grid;place-items:center;width:60px;height:60px;background:var(--ink);color:var(--acid);border-radius:50% 50% 50% 8px;font:900 29px Georgia,serif;box-shadow:8px 8px 0 var(--acid)}.brand strong{font:800 14px/1.1 Georgia,"Microsoft YaHei",serif;letter-spacing:.1em}.brand small{font:10px/1 monospace;color:var(--muted)}.headline p{margin:0 0 8px;color:var(--blue);font:700 11px/1 monospace;letter-spacing:.17em}.headline h1{margin:0;font:900 clamp(31px,3vw,58px)/.98 Georgia,"Microsoft YaHei",serif;letter-spacing:-.07em}.snapshot{border-left:1px solid var(--line);padding-left:20px}.snapshot span,.snapshot small{display:block;color:var(--muted);font:10px/1.4 monospace;letter-spacing:.1em}.snapshot strong{display:block;margin:7px 0;font:700 15px/1.3 monospace}.modebar{display:flex;gap:0;border-bottom:1px solid var(--line)}.mode{padding:14px 22px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font-weight:800;cursor:pointer;text-decoration:none}.mode.active{background:var(--ink);color:#fff}.mode.link{margin-left:auto;border-left:1px solid var(--line)}.mode.link+.mode.link{margin-left:0}.metrics{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line)}.metric{padding:14px 16px;border-right:1px solid var(--line)}.metric:last-child{border:0}.metric span{display:block;color:var(--muted);font:9px/1 monospace;letter-spacing:.12em}.metric strong{display:block;margin-top:4px;font:800 24px/1 Georgia,serif}.workspace{display:grid;grid-template-columns:310px minmax(540px,1fr) 390px;gap:12px;margin-top:12px;height:calc(100vh - 315px);min-height:650px}.panel{background:rgba(250,249,244,.94);border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}.rail{display:flex;flex-direction:column}.search{display:flex;align-items:center;gap:8px;margin:14px;padding:10px 11px;border:1px solid var(--ink);background:#fff}.search input,.field-search input{min-width:0;flex:1;border:0;outline:0;background:transparent}.search kbd{font:9px monospace;border:1px solid var(--line);padding:3px}.rail-title,.inspector-head,.section-title{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:700 10px monospace;letter-spacing:.1em}.rail-title b,.inspector-head b,.section-title b{color:var(--blue)}.filters{display:flex;gap:5px;padding:9px 12px;overflow:auto;border-bottom:1px solid var(--line)}.filter{white-space:nowrap;padding:6px 8px;border:1px solid var(--line);background:transparent;font-size:10px;cursor:pointer}.filter.active{background:var(--acid);border-color:var(--ink)}.node-list{overflow:auto;flex:1}.node{width:100%;display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center;padding:11px 13px;border:0;border-bottom:1px solid #dddeda;background:transparent;text-align:left;cursor:pointer}.node:hover,.node.active{background:#fff}.node.active{box-shadow:inset 5px 0 var(--blue)}.node-index{font:10px monospace;color:var(--muted)}.node strong{display:block;font:700 12px/1.25 monospace;word-break:break-all}.node small{display:block;margin-top:3px;color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.type-dot{width:8px;height:8px;border-radius:50%;background:var(--blue)}.stage{display:flex;flex-direction:column}.stage-head{display:flex;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid var(--line)}.kicker{font:700 10px monospace;letter-spacing:.14em;color:var(--blue)}.stage h2{margin:7px 0 4px;font:900 clamp(25px,2.1vw,39px)/1 Georgia,"Microsoft YaHei",serif;letter-spacing:-.05em}.stage-head p{max-width:700px;margin:0;color:var(--muted);font-size:11px}.path-button{align-self:flex-start;border:1px solid var(--ink);background:var(--acid);padding:9px 12px;font-weight:700;cursor:pointer}.graph{position:relative;flex:1;min-height:430px;overflow:auto;padding:30px;background:radial-gradient(circle at 50% 50%,rgba(185,242,39,.18),transparent 37%)}.graph-map{min-width:660px;min-height:420px;display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));grid-auto-rows:minmax(86px,auto);gap:34px 55px;align-content:center}.graph-node{position:relative;padding:13px 14px;border:1px solid var(--ink);background:#fff;box-shadow:7px 7px 0 #d6dad2;cursor:pointer;text-align:left}.graph-node:hover{transform:translate(-2px,-2px);box-shadow:10px 10px 0 var(--acid)}.graph-node.center{grid-column:2;grid-row:2;background:var(--ink);color:#fff;box-shadow:10px 10px 0 var(--acid)}.graph-node strong{display:block;font:700 12px/1.25 monospace;word-break:break-word}.graph-node small{display:block;color:var(--muted);font-size:9px;margin-top:5px}.graph-node.center small{color:#aeb8b1}.graph-node .edge{position:absolute;left:0;top:-20px;color:var(--blue);font:700 8px monospace;text-transform:uppercase}.empty{display:grid;place-items:center;height:100%;color:var(--muted)}.pathline{display:flex;gap:12px;padding:12px 18px;border-top:1px solid var(--line);background:var(--ink);color:#fff}.pathline span{color:var(--acid);font:700 9px monospace}.pathline code{font:10px/1.4 monospace;word-break:break-all}.inspector{overflow:auto}.facts{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.fact{padding:12px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.fact:nth-child(even){border-right:0}.fact span{display:block;color:var(--muted);font:9px monospace}.fact strong{display:block;margin-top:4px;font:700 11px/1.3 monospace;word-break:break-all}.section{padding:14px;border-bottom:1px solid var(--line)}.section h3{margin:0 0 10px;font:800 11px/1 monospace;letter-spacing:.1em}.relation{display:grid;grid-template-columns:71px 1fr;gap:8px;padding:8px 0;border-bottom:1px dashed var(--line);cursor:pointer}.relation:last-child{border:0}.relation span{color:var(--blue);font:700 8px/1.4 monospace}.relation strong{font:700 10px/1.3 monospace;word-break:break-all}.fields-section{padding:0}.fields-section .section-title{border-top:0}.fields-section h3{margin:0}.field-search{display:flex;margin:9px 12px;padding:8px;border:1px solid var(--line);background:#fff}.fields{max-height:390px;overflow:auto}.field{display:grid;grid-template-columns:minmax(90px,1fr) minmax(90px,1fr);gap:5px 10px;padding:9px 12px;border-top:1px solid #dddeda}.field strong,.field code{font:700 10px/1.3 monospace;word-break:break-all}.field code{color:var(--blue)}.field span{grid-column:1/-1;color:var(--muted);font-size:10px}.toast{position:fixed;right:25px;bottom:25px;padding:11px 15px;background:var(--ink);color:#fff;transform:translateY(15px);opacity:0;transition:.2s}.toast.show{transform:none;opacity:1}footer{display:flex;justify-content:space-between;padding:12px 2px;color:var(--muted);font:9px monospace}@media(max-width:1250px){.workspace{grid-template-columns:280px 1fr;height:auto}.inspector{grid-column:1/-1;max-height:none}.metrics{grid-template-columns:repeat(4,1fr)}.masthead{grid-template-columns:220px 1fr}.snapshot{display:none}}@media(max-width:760px){.shell{padding:12px}.masthead{grid-template-columns:1fr}.brand{display:none}.modebar{overflow:auto}.mode.link{display:none}.metrics{grid-template-columns:repeat(2,1fr)}.workspace{display:block}.rail,.stage,.inspector{margin-bottom:10px;max-height:none}.rail{height:560px}.graph{min-height:520px;padding:15px}.graph-map{min-width:610px}.headline h1{font-size:36px}}
