/* ------------------------------------------------------------------------------
*
*  # Switchery toggles
*
*  Styles for switchery.min.js - toggle switches
*
*  Version: 1.0
*  Latest update: Mar 25, 2015
*
* ---------------------------------------------------------------------------- */


// Core
// ------------------------------

.switchery {
    background-color: #fff;
    border: 1px solid @input-border;
    border-radius: 100px;
    cursor: pointer;
    display: inline-block;
    width: (@switchery-base-size * 2);
    height: @switchery-base-size;
    vertical-align: middle;
    position: relative;
    .box-sizing(content-box);

    // Container
    .checkbox-switchery & {
        position: absolute;
        left: 0;
        margin-top: ((@line-height-computed / 2) - (@switchery-base-size / 2) - 1); // Half text height - half switchery height - 1px border
    }

    // Handle
    > small {
        background-color: #fff;
        border-radius: 100px;
        width: @switchery-base-size;
        height: @switchery-base-size;
        position: absolute;
        top: 0;
        .box-shadow(0 1px 3px fade(#000, 40%));
    }
}

// Override BS checkbox styles
.checkbox.checkbox-switchery {
    margin-bottom: (@switchery-base-size - (@line-height-computed / 2) + 2);
    padding-left: 0;

    &.disabled .switchery {
        cursor: @cursor-disabled;
    }
}

// Remove padding if no text label
.checkbox[class*=switchery-],
.checkbox-inline[class*=switchery-] {
    padding-left: 0;
    padding-right: 0;
}



// Sizing
// ------------------------------

// Large
.switchery-lg {
    &.checkbox-switchery {
        margin-bottom: (@switchery-large-size - (@line-height-computed / 2) + 2);

        .switchery {
            margin-top: (@line-height-computed / 2) - (@switchery-large-size / 2) - 1;
        }
    }

    label& {
        margin-bottom: 0;
    }

    .switchery {
        height: @switchery-large-size;
        width: (@switchery-large-size * 2);

        > small {
            height: @switchery-large-size;
            width: @switchery-large-size;
        }
    }
}

// Small
.switchery-sm {
    &.checkbox-switchery {
        margin-bottom: (@switchery-small-size - (@line-height-computed / 2) + 2);

        .switchery {
            margin-top: (@line-height-computed / 2) - (@switchery-small-size / 2) - 1;
        }
    }

    label& {
        margin-bottom: 0;
    }

    .switchery {
        height: @switchery-small-size;
        width: (@switchery-small-size * 2);

        > small {
            height: @switchery-small-size;
            width: @switchery-small-size;
        }
    }
}

// Mini
.switchery-xs {
    &.checkbox-switchery {
        margin-bottom: (@switchery-mini-size - (@line-height-computed / 2) + 2);

        .switchery {
            margin-top: (@line-height-computed / 2) - (@switchery-mini-size / 2) - 1;
        }
    }

    label& {
        margin-bottom: 0;
    }

    .switchery {
        height: @switchery-mini-size;
        width: (@switchery-mini-size * 2);

        > small {
            height: @switchery-mini-size;
            width: @switchery-mini-size;
        }
    }
}



// Options
// ------------------------------

// Left position
.checkbox-switchery {
    label,
    label& {
        position: relative;
        padding-left: ((@switchery-base-size * 2) + 12);
        margin: 0;
        cursor: pointer;
    }

    &.switchery-lg {
        label,
        label& {
            padding-left: ((@switchery-large-size * 2) + 12);
        }
    }

    &.switchery-sm {
        label,
        label& {
            padding-left: ((@switchery-small-size * 2) + 12);
        }
    }

    &.switchery-xs {
        label,
        label& {
            padding-left: ((@switchery-mini-size * 2) + 12);
        }
    }

    &.checkbox-inline {
        margin-bottom: 0;
    }
}

// Right position
.checkbox-switchery {
    &.checkbox-right {
        .switchery {
            left: auto;
            right: 0;
        }

        label,
        label& {
            padding-left: 0;
            padding-right: ((@switchery-base-size * 2) + 12);
        }

        &.switchery-lg {
            label,
            label& {
                padding-left: 0;
                padding-right: ((@switchery-large-size * 2) + 12);
            }
        }

        &.switchery-sm {
            label,
            label& {
                padding-left: 0;
                padding-right: ((@switchery-small-size * 2) + 12);
            }
        }

        &.switchery-xs {
            label,
            label& {
                padding-left: 0;
                padding-right: ((@switchery-mini-size * 2) + 12);
            }
        }
    }
}


//
// Double side switch
//

.switchery-double {
    .switchery {
        position: relative;
        margin-left: @element-horizontal-spacing;
        margin-right: @element-horizontal-spacing;
        margin-top: -7px;
        margin-bottom: -5px;
    }

    // Remove padding
    &.checkbox-switchery {
        label,
        label& {
            padding: 0;
        }
    }

    // Large
    &.switchery-lg .switchery {
        margin-top: -8px;
        margin-bottom: -6px;
    }

    // Small
    &.switchery-sm .switchery {
        margin-top: -6px;
        margin-bottom: -4px;
    }

    // Mini
    &.switchery-xs .switchery {
        margin-top: -5px;
        margin-bottom: -3px;
    }
}
