.xSelect {
    position: relative;
    /* display: inline-block; ??? */
}

.xSelect::after {
    position: absolute;
    top: 12px;
    right: 12px;
    display: block;
    content: ' ';
    border-right: 1px solid #999;
    border-bottom: 1px solid #999;
    width: 6px;
    height: 6px;
    transform: rotate(45deg);
}

.xSelect > input {
    background-color: #FFF;
    border: 1px solid #CCC;
    color: #333;
    border-radius: 4px;
    padding: 5px 10px;
    box-sizing: border-box;

    font-size: 14px;
    font-family: sans-serif;
}

.xSelect > div.list {
    position: absolute;
    z-index: 1;
    
    margin-top: 2px;
    background-color: #FFF;
    border: 1px solid #CCC;
    box-sizing: border-box;
    color: #333;
    border-radius: 4px;
    min-width: 100%;
    width: 100%;

    max-height: 300px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    overflow-x: hidden;
    overflow-y: auto;
}

.xSelect:not(.show) > div.list { display: none; }

.xSelect > div.list > label { display: block; }

.xSelect > div.list > label {
    display: block;
    background-color: #FFF;
    padding: 5px 10px;

    font-size: 14px;
    font-family: sans-serif;
}

.xSelect > div.list > label:hover { background-color: #EEE; }

.xSelect > div.list > label > input { display: none; }

.xSelect > div.list > label > input:checked + div { background-color: #CCC; }
