.cfg-part{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:14px;gap:14px;text-align:left;padding:14px 16px;border-radius:13px;cursor:pointer;background:linear-gradient(180deg,var(--bg-raised),color-mix(in srgb,var(--bg-raised) 70%,var(--bg)));border:1px solid color-mix(in srgb,var(--c-part) 26%,var(--border));box-shadow:0 1px 0 color-mix(in srgb,var(--c-part) 14%,transparent) inset,0 8px 22px -18px rgba(0,0,0,.9);transition:transform .16s cubic-bezier(.2,.7,.2,1),border-color .16s,box-shadow .16s,opacity .16s;color:inherit;font:inherit;width:100%}.cfg-part:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:var(--c-part);opacity:.85;transition:opacity .2s,width .2s cubic-bezier(.2,.7,.2,1)}.cfg-part:focus-visible,.cfg-part:hover{transform:translateY(-2px);border-color:var(--c-part);box-shadow:0 1px 0 color-mix(in srgb,var(--c-part) 30%,transparent) inset,0 16px 34px -18px color-mix(in srgb,var(--c-part) 70%,#000);outline:none;opacity:1}.cfg-part:focus-visible:before,.cfg-part:hover:before{width:4px}.cfg-part-ico{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:var(--c-part);background:radial-gradient(120% 120% at 30% 20%,color-mix(in srgb,var(--c-part) 22%,var(--bg-inset)),var(--bg-inset));border:1px solid color-mix(in srgb,var(--c-part) 35%,var(--border));flex:none;transition:background .2s,border-color .2s,transform .2s}.cfg-part-ico svg{width:20px;height:20px}.cfg-part:focus-visible .cfg-part-ico,.cfg-part:hover .cfg-part-ico{background:radial-gradient(120% 120% at 30% 20%,color-mix(in srgb,var(--c-part) 40%,var(--bg-inset)),var(--bg-inset));border-color:var(--c-part);transform:scale(1.05)}.cfg-part-main{display:flex;flex-direction:column;gap:3px;min-width:0}.cfg-part-name{font-family:var(--mono);font-size:14.5px;font-weight:650;color:var(--text);letter-spacing:-.01em}.cfg-part-role{font-size:12.5px;color:var(--text-dim);line-height:1.4}.cfg-part-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;padding-right:16px}.cfg-swap{font-size:10.5px;color:var(--amber)}.cfg-part-nums,.cfg-swap{font-family:var(--mono);white-space:nowrap}.cfg-part-nums{font-size:11px;color:var(--text-dim)}.cfg-part-nums .drift{font-style:normal;color:var(--amber)}.cfg-part-open{position:absolute;top:13px;right:14px;font-size:13px;color:var(--text-dim);opacity:0;transition:opacity .16s,transform .16s}.cfg-part:focus-visible .cfg-part-open,.cfg-part:hover .cfg-part-open{opacity:1;transform:translate(1px,-1px);color:var(--c-part)}.cfg-att{font-family:var(--mono);font-size:10.5px;color:var(--green);white-space:nowrap}.cfg-att.warn{color:var(--amber)}.cfg-part.drift{border-color:color-mix(in srgb,var(--amber) 40%,var(--border))}.cfg-part.drift:before{background:var(--amber)}.cfg-part.lit{border-color:var(--c-part);transform:translateY(-1px)}.cfg-onspec{position:absolute;top:11px;right:12px;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:10px;font-weight:700;flex:none;color:var(--green);background:color-mix(in srgb,var(--green) 16%,var(--bg-raised));border:1px solid color-mix(in srgb,var(--green) 50%,var(--border))}.cfg-part.has-pip .cfg-part-meta{padding-right:30px}.cfg-onspec.s-drift,.cfg-onspec.s-missing,.cfg-onspec.s-vendor{color:var(--amber);background:color-mix(in srgb,var(--amber) 16%,transparent);border-color:color-mix(in srgb,var(--amber) 50%,transparent)}.cfg-part:hover .cfg-onspec.s-ok{animation:cfg-breathe 1.7s ease-in-out infinite}@keyframes cfg-breathe{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--green) 50%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--green) 0%,transparent)}}.cfg-part.offspec:before{background:var(--amber)}.cfg-part.ghost{cursor:default;border-style:dashed;border-color:color-mix(in srgb,var(--amber) 38%,var(--border));background:color-mix(in srgb,var(--amber) 4%,var(--bg-inset));box-shadow:none;opacity:.92}.cfg-part.ghost:before{background:var(--amber);opacity:.5}.cfg-part.ghost .cfg-part-ico{color:var(--amber);background:color-mix(in srgb,var(--amber) 12%,var(--bg-inset));border-color:color-mix(in srgb,var(--amber) 30%,var(--border))}.cfg-part.ghost:hover{transform:none;border-color:color-mix(in srgb,var(--amber) 50%,var(--border));box-shadow:none}@media (prefers-reduced-motion:reduce){.cfg-part,.cfg-part-ico,.cfg-part-open{transition:none}.cfg-part:hover .cfg-onspec.s-ok{animation:none}}