:block(checkbox):mod(theme islands) {
    position: relative; /* fix #1538 */

    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;

    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);

    &:hover {
        cursor: pointer;
    }

    :block(checkbox):elem(control) {
        position: absolute;
        z-index: -1;

        margin: 0;

        opacity: 0;
    }

    :block(checkbox):elem(box) {
        position: relative;

        display: inline-block;

        border-radius: 3px;
        background: rgba(0, 0, 0, 0.2);

        &:before {
            position: absolute;
            top: 1px;
            right: 1px;
            bottom: 1px;
            left: 1px;

            content: '';

            border-radius: 2px;
            background: #fff;
        }

        &:after {
            position: absolute;
            top: -5px;
            left: 2px;

            content: '';

            background-image: url(../../theme/_islands/tip.svg);
            background-size: 100%;

            visibility: hidden;
            opacity: 0;

            transition: transform .05s ease-out, opacity .05s ease-out, visibility 0s linear .05s;
        }
    }

    &:block(checkbox):mod(size m) {
        font-size: 13px;

        :block(checkbox):elem(box) {
            line-height: 14px;

            top: 2px;

            width: 14px;
            height: 14px;

            &:after {
                width: 15px;
                height: 15px;

                transform: translateY(-5px);
            }
        }

        :block(checkbox):elem(text) {
            margin-left: 5px;
        }
    }

    &:block(checkbox):mod(size l) {
        font-size: 15px;

        :block(checkbox):elem(box) {
            line-height: 17px;

            top: 3px;

            width: 17px;
            height: 17px;

            &:after {
                width: 18px;
                height: 18px;

                transform: translateY(-7px);
            }
        }

        :block(checkbox):elem(text) {
            margin-left: 7px;
        }
    }

    &:block(checkbox):mod(checked) {
        :block(checkbox):elem(box) {
            background: rgba(153, 122, 0, 0.5);

            &:before {
                background: #ffeba0;
            }

            &:after {
                visibility: visible;
                opacity: 1;
                transform: translateY(0px);

                transition-delay: 0s;
            }
        }
    }

    &:block(checkbox):mod(focused) {
        :block(checkbox):elem(box):before {
            box-shadow: 0 0 0 1px #ffcc00, inset 0 0 0 1px #ffcc00;
        }
    }

    &:block(checkbox):mod(hovered) {
        :block(checkbox):elem(box) {
            background: rgba(0, 0, 0, 0.3);
        }

        &:block(checkbox):mod(checked) :block(checkbox):elem(box) {
            background: rgba(129, 103, 0, 0.6);
        }
    }

    &:block(checkbox):mod(disabled) {
        cursor: default;

        color: #999;

        :block(checkbox):elem(box) {
            background: rgba(0, 0, 0, 0.08);

            &:before {
                display: none;
            }
        }

        &:block(checkbox):mod(checked) :block(checkbox):elem(box) {
            background: rgba(0, 0, 0, 0.15);

            &:after {
                opacity: 0.4;
            }
        }
    }

    &:block(checkbox):mod(type button) {
        display: inline-block;
    }

    &:block(checkbox):mod(type line) {
        &:block(checkbox):mod(size m) {
            margin-right: 13px;
        }

        &:block(checkbox):mod(size l) {
            margin-right: 15px;
        }

        &:last-child
        {
            margin-right: 0;
        }
    }
}

/* hack for Safari only */
_::-webkit-full-page-media,
_:future,
:root :block(checkbox):mod(theme islands) :block(checkbox):elem(box) {
    pointer-events: none; /* NOTE: Fix #1472 and #1590 */
}
