/* ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 * ┃ ██████ ██████ ██████       █      █      █      █      █ █▄  ▀███ █       ┃
 * ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█  ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄  ▀█ █ ▀▀▀▀▀ ┃
 * ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄   █ ▄▄▄▄▄ ┃
 * ┃ █      ██████ █  ▀█▄       █ ██████      █      ███▌▐███ ███████▄ █       ┃
 * ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
 * ┃ Copyright (c) 2017, the Perspective Authors.                              ┃
 * ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
 * ┃ This file is part of the Perspective library, distributed under the terms ┃
 * ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
 * ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
 */

:host {
    #column-style-container,
    #plugin-config-container,
    #window-editor-container {
        outline: none;
        user-select: none;

        .bool-field-desc {
            font-size: 10px;
            flex: 1 1 auto;
            height: 22px;
            display: flex;
            align-items: center;
            padding-left: 4px;
            margin: 0px;
        }

        .is-default-value .bool-field-container {
            background-color: var(--psp--background-color);
            border: 1px solid var(--psp-inactive--color);
        }

        .bool-field-container {
            display: flex;
            border: 1px dashed var(--psp-inactive--color);
            border-radius: 3px;
            align-items: center;
            padding: 0 6px;
            width: 100%;
            cursor: pointer;
            label {
                cursor: pointer;
            }
        }

        &.no-style {
            font-style: italic;
            background-color: var(--psp-placeholder--background);
        }

        .is-default-value .dropdown-width-container {
            background-color: var(--psp--background-color);
        }

        .dropdown-width-container {
            cursor: pointer;
            height: 24px;
            border: 1px solid transparent;
            border-radius: 2px;
            padding: 0 8px;
            border-radius: 2px;
            /* border: 1px solid transparent; */
            border-color: var(--psp-inactive--color, #666);

            &:hover {
                background-color: var(--psp--background-color);
            }
        }

        select {
            cursor: pointer;
            font-size: 10px;
            height: 22px;
            /* padding-bottom: 2px; */
            /* border-bottom: 1px solid var(--input--border-color, #ccc); */
            padding: 0 8px;
        }

        label {
            display: block;
            font-size: var(--label--font-size, 0.75em);
            width: 100%;
            margin: 4px 0 2px 0;
        }

        span.reset-default-style-disabled {
            flex: 0 0 14px;
            margin-left: 4px;
            margin-right: 4px;
            width: 14px;
            height: 14px;
            border: 1px solid var(--psp-inactive--border-color);
            border-radius: 2px;
        }

        span.reset-default-style {
            flex: 0 0 22px;
            cursor: pointer;
            width: 22px;
            height: 22px;
            /* margin-right: -4px; */
            display: inline-block;
            background-repeat: no-repeat;
            background-color: var(--psp--color);
            -webkit-mask-size: cover;
            mask-size: cover;
            -webkit-mask-image: var(--psp-icon--close--mask-image);
            mask-image: var(--psp-icon--close--mask-image);

            &:before {
                content: var(--psp-icon--close--mask-image);
                visibility: hidden;
            }
        }

        .is-default-value input.parameter {
            background-color: var(--psp--background-color);
        }

        input.parameter {
            background: none;
            color: inherit;
            border: 0px solid transparent;
            outline: none;
        }

        input.parameter[type="number"] {
            flex: 1 1 auto;
            text-align: left;
            font-family: inherit;
            width: 0;
            border-radius: 2px;
            font-size: 10px;
            height: 24px;
            padding-left: 8px;
            border-width: 1px;
            border-color: var(
                --input--border-color,
                var(--psp-inactive--color, inherit)
            );
        }

        input.parameter.parameter-min[type="number"] {
            border-radius: 2px 0 0 2px;
        }

        input.parameter.parameter-max[type="number"] {
            border-radius: 0 2px 2px 0;
            border-left-width: 0px;
        }

        input[type="number"]::-webkit-inner-spin-button,
        input[type="number"]::-webkit-outer-spin-button {
            opacity: 1;
            background: transparent;
            background-color: transparent;
        }

        .column-style-label {
            display: flex;
            padding: 0px;
        }

        .indent {
            margin-left: 24px;
        }

        input[type="radio"] {
            appearance: none;
            display: inline-block;
            background-repeat: no-repeat;
            background-color: var(--psp--color);
            -webkit-mask-size: cover;
            mask-size: cover;
            -webkit-mask-image: var(--psp-icon--radio-off--mask-image);
            mask-image: var(--psp-icon--radio-off--mask-image);

            &:before {
                content: var(--psp-icon--radio-off--mask-image);
                visibility: hidden;
            }

            &:checked {
                -webkit-mask-image: var(--psp-icon--radio-on--mask-image);
                mask-image: var(--psp-icon--radio-on--mask-image);
            }

            &:hover {
                -webkit-mask-image: var(--psp-icon--radio-hover--mask-image);
                mask-image: var(--psp-icon--radio-hover--mask-image);
            }
        }

        div.section {
            display: flex;
            align-items: center;
            flex: 1 1 100%;
        }

        div.row {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            margin-bottom: 10px;
        }

        fieldset {
            margin: 0;
        }

        fieldset.style-control {
            border: none;
            padding: 0px 0;
        }

        .color-gradient-container {
            display: flex;
            align-items: center;
            flex-wrap: nowrap;
            flex: 1 1 100%;
        }

        .palette-selector {
            .palette-swatches {
                display: flex;
                flex-wrap: wrap;
                align-items: center;
                gap: 4px;
                flex: 1 1 auto;
                width: 0px;
                max-height: 84px;
                overflow-y: auto;
                overflow-x: hidden;
                padding: 0px 0 4px 0;
            }

            .palette-swatch {
                position: relative;
                width: 24px;
                height: 24px;
                touch-action: none;

                input[type="color"] {
                    width: 24px;
                    height: 24px;
                    border-radius: 3px;
                }

                &.dragging {
                    opacity: 0.5;
                    outline: 1px dashed var(--psp--color);
                    outline-offset: -1px;
                    border-radius: 3px;
                }

                .palette-swatch-remove {
                    position: absolute;
                    top: -2px;
                    right: -7px;
                    width: 14px;
                    height: 14px;
                    cursor: pointer;
                    display: none;
                    background-color: var(--psp--color);
                    -webkit-mask-size: cover;
                    mask-size: cover;
                    -webkit-mask-image: var(--psp-icon--close--mask-image);
                    mask-image: var(--psp-icon--close--mask-image);
                }

                &:hover .palette-swatch-remove {
                    display: inline-block;
                }
            }

            .palette-swatches.reordering .palette-swatch-remove {
                display: none;
            }

            .palette-add {
                width: 22px;
                height: 22px;
                border: 1px dashed var(--psp-inactive--color);
                border-radius: 3px;
                cursor: pointer;
                display: flex;
                align-items: center;
                justify-content: center;

                &:before {
                    content: "+";
                    font-size: 14px;
                    line-height: 1;
                    color: var(--psp-inactive--color);
                }

                &:hover {
                    border-color: var(--psp--color);

                    &:before {
                        color: var(--psp--color);
                    }
                }
            }
        }

        .gradient-stops-selector {
            padding: 12px 0 16px 0;

            .gradient-stops-bar {
                cursor: copy;
                position: relative;
                flex: 1 1 auto;
                height: 24px;
                border-radius: 2px;
            }

            .gradient-stops-bar.discrete {
                cursor: auto;
                position: relative;
                flex: 1 1 auto;
                height: 24px;
                border-radius: 2px;
            }

            .gradient-stop-handle {
                position: absolute;
                top: 0;
                transform: translateX(-50%);
                display: flex;
                flex-direction: column;
                align-items: center;
                width: 14px;
            }

            .gradient-stop-grip {
                width: 14px;
                height: 24px;
                cursor: ew-resize;
                touch-action: none;

                &.disabled {
                    cursor: default;
                }

                &:before {
                    content: "";
                    display: block;
                    width: 0px;
                    height: 100%;
                    margin: 0 auto;
                    border: 1px solid var(--psp--background-color, #fff);
                }
            }

            .gradient-stop-remove {
                position: absolute;
                top: -14px;
                width: 14px;
                height: 13px;
                cursor: pointer;
                display: inline-block;
                background-color: var(--psp--color);
                -webkit-mask-size: cover;
                mask-size: cover;
                -webkit-mask-image: var(--psp-icon--close--mask-image);
                mask-image: var(--psp-icon--close--mask-image);

                &.disabled {
                    cursor: default;
                    background-color: var(--psp-inactive--color);
                }
            }

            .gradient-stop-lock {
                position: absolute;
                top: -14px;
                width: 14px;
                height: 13px;
                display: inline-block;
                background-color: var(--psp--color);
                -webkit-mask-size: cover;
                mask-size: cover;
                -webkit-mask-image: var(--psp-icon--lock--mask-image);
                mask-image: var(--psp-icon--lock--mask-image);
            }

            .gradient-stop-handle input[type="color"] {
                width: 14px;
                height: 14px;
                margin-top: 2px;
                border-radius: 3px;
            }
        }

        .named-value-controls {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 10px;
            flex: 1 1 100%;
            height: 0;
            margin-top: 10px;
            margin-bottom: -10px;
            margin-right: 24px;
            position: relative;
            z-index: 1;
            font-size: var(--label--font-size, 0.75em);
            color: var(--psp-inactive--color);

            select.named-value-select {
                height: 15px;
                padding: 0;
                font-size: var(--label--font-size, 0.75em);
                color: inherit;
                background: none;
                border: none;
                cursor: pointer;

                &:hover {
                    color: var(--psp--color, inherit);
                }
            }

            .named-value-pin {
                cursor: pointer;
                user-select: none;
                line-height: 15px;

                &:before {
                    font-family: var(--psp-button--font-family, inherit);
                    color: var(--psp-inactive--color, #666);
                    content: var(--psp-label--pin-button--content, "Save");
                }

                &:hover:before {
                    color: var(--psp--color, inherit);
                }
            }
        }

        input[type="color"] {
            width: 100%;
            height: 24px;
            cursor: pointer;
            padding: 0;
            font-family: inherit;
            overflow: hidden;
            border-radius: 3px;

            &:hover {
                opacity: 0.8;
            }
        }

        ::-webkit-color-swatch-wrapper {
            padding: 0;
        }

        ::-webkit-color-swatch {
            border: 0;
            border-radius: 0;
        }

        ::-moz-color-swatch,
        ::-moz-focus-inner {
            border: 0;
        }

        ::-moz-focus-inner {
            padding: 0;
        }

        .operator {
            font-family: inherit;
            white-space: pre;
        }

        input[disabled]:before {
            opacity: 0.5;
        }

        input.parameter[disabled] {
            opacity: 0.5;
        }

        button#datetime_format {
            appearance: none;
            background: none;
            color: inherit;
            border: 1px solid var(--psp-inactive--color);
            border-radius: 3px;
            font-family: inherit;
            padding: 6px;
            font-size: 10px;
            width: 100%;
            cursor: pointer;

            &:before {
                content: attr(data-title);
            }

            &:hover {
                border-color: var(--psp--color);
                background-color: var(--psp--color);
                color: var(--psp--background-color);
            }

            &:hover:before {
                content: attr(data-title-hover);
            }
        }
    }
}
