.os-grid {
    width: 100%;
    height: 100%;
    display: flex;
    position: relative;
    user-select: none;

    --os-label-height: 18px;
    --os-grid-item-padding: 5px;

    .os-grid-item {
        position: absolute;
        padding: var(--os-grid-item-padding);
        box-sizing: border-box;

        .os-icon {
            width: 100%;
            height: 100%;
            display: block;
        }

        .os-label {
            width: 100%;
            height: var(--os-label-height);
            position: absolute;
            display: block;
            white-space: nowrap;
            padding: 0px 3px;
            box-sizing: border-box;
            overflow: hidden;
            text-overflow: ellipsis;
            left: 0;
            bottom: 0;
            text-align: center;
            font-weight: normal;
            font-style: normal;
            color: #ffffff;
        }

        &.os-selected, :focus {
            z-index: 999;
        }

        &:focus {
            .os-label {
                height: auto;
                top: calc(100% - var(--os-label-height));
                bottom: unset;
                margin-top: 0px;
                overflow: unset;
                white-space: pre-wrap;
            }
        }
    }
}
