.jsr
{
    position: relative;
    z-index: 1;

    display: block;

    box-sizing: border-box;
    width: 100%;
    height: 50px;

    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;

    -webkit-touch-callout: none;
    -khtml-user-select: none;
}

.jsr_rail
{
    height: 5px;

    background: #333;
    background-image: linear-gradient(#999, #999);
    background-repeat: no-repeat;
}

.jsr_slider
{
    position: absolute;
    top: calc((5px - 15px) / 2);
    left: 0;

    width: 15px;
    height: 15px;

    cursor: pointer;
    transition: background .1s ease-in-out;

    border-radius: 50%;
    background: #999;
    outline: 0;
}

.jsr_slider:focus
{
    background: #c00;
}

.jsr_info
{
    position: absolute;
    top: 18px;
    padding: 3px 10px;
    border-radius: 3px;
    background: #444;
    white-space: nowrap;
}

.jsr_info--min
{
    left: 0;
}

.jsr_info--max
{
    right: 0;
}

.jsr_info--min,
.jsr_info--max
{
    cursor: pointer;

    color: #999;
    background: #333;
}

.jsr_info--from,
.jsr_info--to,
.jsr_info--single
{
    cursor: pointer;

    color: #fff;
}

.jsr_info--single
{
    white-space: nowrap;
}

.jsr_info_singleFrom,
.jsr_info_singleTo,
.jsr_info_singleSingle
{
    display: inline-block;

    cursor: pointer;
}

.jsr_info_singleTo::before
{
    content: '\00a0\2014\00a0';
    pointer-events: none;
}

.jsr_info_singleFrom:not([data-jsr-type='single'])
{
    padding-right: 0;
}

.jsr_info_singleTo
{
    padding-left: 0;
}

.jsr_grid
{
    position: absolute;
    left: 0;
    right: 0;
    top: 20px;
    z-index: -1;
}

.jsr_grid_markers {
    position: relative;
    height: 15px;
}

.jsr_grid_marker {
    position: absolute;
    width: 1px;
    height: 7px;
    bottom: 0;
    background: #ccc;
}

.jsr_grid_marker--big
{
    height: 15px;
}

.jsr_grid_values {
    position: relative;
    margin-top: 2px;
}

.jsr_grid_value {
    position: absolute;
    top: 0;
    font-size: 0.7em;
    color: #ccc;
}