:host, .children { display: flex; flex-direction: column; } :host { min-width: min-content; } header { display: flex; align-items: center; border-radius: 4px; font: { family: "Fira Sans", sans-serif; size: 14px; weight: 400; } line-height: 1; white-space: nowrap; pointer-events: auto; cursor: default; user-select: none; color: #FFFC; transition: { property: background, color; duration: 0.1s; timing-function: linear; } &:hover:not(:has(.toggle-expanded:hover)) { background: #0000001F; } &.selected { background: #7A2C34E3; color: #FFF; font-weight: 500; &:hover { background: #90363F !important; } } } .toggle-expanded { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 16px; height: 24px; margin-block: -5px; padding-inline-start: 4px; appearance: none; background: transparent; border: none; font: inherit; color: #FFFC; &:hover { color: #FFF; } } .icon.expanded { transform: rotate(90deg); } .name { flex: 1 0 0; padding: { block: 5px; inline: 5px 10px; } } .children { margin-inline-start: 7px; padding-inline-start: 9px; border-inline-start: 1px solid #FFF2; }