[data-tooltip] {
    position: relative;
    display: inline-block
}

[data-tooltip]:after, [data-tooltip]:before {
    position: absolute;
    left: 50%;
    transform: translate(-50%, -12px);
    z-index: 1000;
    pointer-events: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    opacity: 0;
    transition: opacity .35s ease .25s
}

[data-tooltip]:before {
    content: attr(data-tooltip);
    background: #333;
    color: #eee;
    padding: 8px 12px;
    white-space: nowrap;
    bottom: 100%;
    border-radius: 3px;
    box-shadow: 0 5px 15px -5px rgba(0, 0, 0, .65)
}

[data-tooltip]:after {
    content: "";
    background: transparent;
    border: 8px solid transparent;
    border-top-color: #333
}

[data-tooltip]:active:after, [data-tooltip]:active:before, [data-tooltip]:focus:after, [data-tooltip]:focus:before, [data-tooltip]:hover:after, [data-tooltip]:hover:before {
    opacity: 1
}

[data-tooltip].tooltip-multiline:before {
    width: 100vw;
    max-width: 240px;
    white-space: normal
}

[data-tooltip][class*=tooltip-bottom]:after, [data-tooltip][class*=tooltip-bottom]:before {
    transform: translate(-50%, 12px)
}

[data-tooltip][class*=tooltip-bottom]:before {
    bottom: auto;
    top: 100%
}

[data-tooltip][class*=tooltip-bottom]:after {
    bottom: 0;
    border: 8px solid transparent;
    border-bottom-color: #333
}

[data-tooltip].tooltip-bottom-left:before {
    transform: translate(-24px, 12px)
}

[data-tooltip].tooltip-bottom-right:before {
    left: auto;
    right: 50%;
    transform: translate(24px, 12px)
}

[data-tooltip].tooltip-top-left:before {
    transform: translate(-24px, -12px)
}

[data-tooltip].tooltip-top-right:before {
    left: auto;
    right: 50%;
    transform: translate(24px, -12px)
}