/** tooltip */
.pisol-tooltip {
    display: inline-block;
    vertical-align: middle;
    width: 30px;
    text-align: center;
    margin: 0!important
}

[tooltip] {
    position: relative
}

[tooltip]::after,[tooltip]::before {
    text-transform: none;
    font-size: .9em;
    line-height: 1;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    pointer-events: none;
    position: absolute;
    display: none;
    opacity: 0
}

[tooltip]::before {
    content: '';
    border: 5px solid transparent;
    z-index: 1001
}

[tooltip]::after {
    content: attr(tooltip);
    line-height: 1.5;
    text-align: center;
    width: 200px;
    max-width: 200px;
    white-space: pre-wrap;
    overflow: hidden;
    padding: 1ch 1.5ch;
    border-radius: .3ch;
    box-shadow: 0 1em 2em -.5em rgba(0,0,0,.35);
    background: #333;
    color: #fff;
    z-index: 100000000
}

[tooltip]:hover::after,[tooltip]:hover::before {
    display: block
}

[tooltip='']::after,[tooltip='']::before {
    display: none!important
}

[tooltip]:not([flow])::before,[tooltip][flow^=up]::before {
    bottom: 100%;
    border-bottom-width: 0;
    border-top-color: #333
}

[tooltip]:not([flow])::after,[tooltip][flow^=up]::after {
    bottom: calc(100% + 5px)
}

[tooltip]:not([flow])::after,[tooltip]:not([flow])::before,[tooltip][flow^=up]::after,[tooltip][flow^=up]::before {
    left: 50%;
    -webkit-transform: translate(-50%,-.5em);
    transform: translate(-50%,-.5em)
}

[tooltip][flow^=down]::before {
    top: 100%;
    border-top-width: 0;
    border-bottom-color: #333
}

[tooltip][flow^=down]::after {
    top: calc(100% + 5px)
}

[tooltip][flow^=down]::after,[tooltip][flow^=down]::before {
    left: 50%;
    -webkit-transform: translate(-50%,.5em);
    transform: translate(-50%,.5em)
}

[tooltip][flow^=left]::before {
    top: 50%;
    border-right-width: 0;
    border-left-color: #333;
    left: calc(0em - 5px);
    -webkit-transform: translate(-.5em,-50%);
    transform: translate(-.5em,-50%)
}

[tooltip][flow^=left]::after {
    top: 50%;
    right: calc(100% + 5px);
    -webkit-transform: translate(-.5em,-50%);
    transform: translate(-.5em,-50%)
}

[tooltip][flow^=right]::before {
    top: 50%;
    border-left-width: 0;
    border-right-color: #333;
    right: calc(0em - 5px);
    -webkit-transform: translate(.5em,-50%);
    transform: translate(.5em,-50%)
}

[tooltip][flow^=right]::after {
    top: 50%;
    left: calc(100% + 5px);
    -webkit-transform: translate(.5em,-50%);
    transform: translate(.5em,-50%)
}

@-webkit-keyframes tooltips-vert {
    to {
        opacity: .9;
        -webkit-transform: translate(-50%,0);
        transform: translate(-50%,0)
    }
}

@keyframes tooltips-vert {
    to {
        opacity: .9;
        -webkit-transform: translate(-50%,0);
        transform: translate(-50%,0)
    }
}

@-webkit-keyframes tooltips-horz {
    to {
        opacity: .9;
        -webkit-transform: translate(0,-50%);
        transform: translate(0,-50%)
    }
}

@keyframes tooltips-horz {
    to {
        opacity: .9;
        -webkit-transform: translate(0,-50%);
        transform: translate(0,-50%)
    }
}

[tooltip]:not([flow]):hover::after,[tooltip]:not([flow]):hover::before,[tooltip][flow^=down]:hover::after,[tooltip][flow^=down]:hover::before,[tooltip][flow^=up]:hover::after,[tooltip][flow^=up]:hover::before {
    -webkit-animation: tooltips-vert .3s ease-out forwards;
    animation: tooltips-vert .3s ease-out forwards
}

[tooltip][flow^=left]:hover::after,[tooltip][flow^=left]:hover::before,[tooltip][flow^=right]:hover::after,[tooltip][flow^=right]:hover::before {
    -webkit-animation: tooltips-horz .3s ease-out forwards;
    animation: tooltips-horz .3s ease-out forwards
}

/* end tooltip */