@import (once) "../../customize/src/less2/include/browser.less";
@import (once) "../../customize/src/less2/include/markdown.less";
@import (once) '../../customize/src/less2/include/tools.less';
@import (once) '../../customize/src/less2/include/avatar.less';
@import (once) "../../customize/src/less2/include/framework.less";


.framework_main(
    @bg-color: @colortheme_poll-bg,
    @warn-color: @colortheme_poll-warn,
    @color: @colortheme_poll-color
);

@poll-fore: #555;

@poll-th-bg: @colortheme_poll-th-bg;
@poll-th-fg: @colortheme_poll-th-fg;
@poll-th-user-bg: darken(@poll-th-bg, 10%);
@poll-editing: lighten(@poll-th-bg, 10%);
@poll-winner: darken(@poll-th-bg, 15%);
@poll-highlighted: lighten(@poll-th-bg, 15%);
@poll-td-bg: @poll-th-bg;
@poll-td-fg: @poll-th-fg;

@poll-help-bg: @colortheme_poll-help-bg;

@poll-uncommitted-cell: #eee;
@poll-uncommitted-bg: #ddd; //lighten(@poll-th-bg, 50%);
@poll-uncommitted-text: black;

@poll-placeholder: #fff;
@poll-border-color: #555;
@poll-cover-color: #000;
@poll-fg: #000;
@poll-option-yellow: #ff5;
@poll-option-gray: #ccc;

@poll-add-color: #fff;
@poll-add-bg: #777;
@poll-add-bg-alt: #444;

.bottom-left(@s: 5px) { border-bottom-left-radius: @s; }
.top-left(@s: 5px) { border-top-left-radius: @s; }

display: flex;
flex-flow: column;
overflow-x: hidden;

#cp-app-poll-content {
    display: flex;
    flex: 1;
    min-height: 0;
    #cp-app-poll-form {
        flex: 1;
        overflow-y: auto;
        &.cp-app-poll-readonly {
            #cp-app-poll-table-scroll {
                max-width: ~"calc(75% - 30px - 100px)";
            }
            table {
                width: 100%;
            }
            table tr td:last-child {
                margin-left: 0; // uncommitted is hidden
            }
            td.cp-app-poll-table-uncommitted {
                display: none;
            }
        }
        &.cp-app-poll-published {
            #cp-app-poll-create-option {
                display: none;
            }
            .cp-app-poll-table-remove[data-rt-id^="y"], .cp-app-poll-table-edit[data-rt-id^="y"] {
                display: none;
            }
            tr.cp-app-poll-table-uncommitted {
                display: none;
            }
        }
    }
}

input[type="text"], textarea {
    background-color: white;
    color: black;
    border: 0;
}

input[type="text"][disabled], textarea[disabled] {
    background-color: transparent;
    border: 0px;
}

// The placeholder color only seems to effect Safari when not set

input[type="text"][disabled]::placeholder {
    color: @poll-placeholder;
    opacity: 1;
}

table#cp-app-poll-table {
    margin: 0px;
    overflow: hidden;
}
#cp-app-poll-table-container {
    position: relative;
    margin: 20px;
}
#cp-app-poll-table-container button {
    border-radius: 0;
    border: 0;
}
#cp-app-poll-create-user {
    display: inline-flex;
    height: 20px;
    padding: 0 5px;
    margin: 2px auto;
    width: auto;
    overflow: hidden;
    color: @poll-add-color;
    background: @poll-add-bg;
    &:hover {
        background: @poll-add-bg-alt;
    }
}
#cp-app-poll-create-option {
    order: 3;
    display: inline-flex;
    width: 46px;
    height: 20px;
    margin: 2px;
    padding: 0;
    color: @poll-add-color;
    background: @poll-add-bg;
    &:hover {
        background: @poll-add-bg-alt;
    }
}
#cp-app-poll-table-scroll {
    overflow-y: hidden;
    overflow-x: auto;
    margin-left: 25%;
    max-width: ~"calc(75% - 100px - 100px)";
    width: auto;
    display: inline-block;
}
.cp-markdown-toolbar {
    margin: auto;
    min-width: 80%;
    width: 80%;
}
#cp-app-poll-description {
    &~ .CodeMirror {
        margin: auto;
        min-width: 80%;
        width: 80%;
        min-height: 200px;
        height: 200px;
        border: 1px solid black;
        .CodeMirror-placeholder {
            color: #777;
        }
    }
}
#cp-app-poll-description-published {
    display: none;
    padding: 15px;
    margin: auto;

    min-width: 80%;
    width: 80%;
    min-height: 7em;
    color: #000;
    border: 1px solid transparent;
    background-color: #eeeeee;
    font: @colortheme_app-font;
    text-align: left;
    media-tag > * {
        max-width: 100%;
        max-height: 20em;
    }
}
div.cp-app-poll-published {
    div.cp-app-poll-realtime {
        #cp-app-poll-description {
            display: none;
            &~ .CodeMirror {
                display: none;
            }
        }
        #cp-app-poll-description-published {
            display: block;
            &:empty {
                display: none;
            }
        }
        #cp-app-poll-nocomments {
            display: none;
        }
        #cp-app-poll-comments {
            display: block;
        }
    }
}

#cp-app-poll-help {
    width: 100%;
    margin: auto;
    padding: 20px 10%;
    background: @poll-help-bg;
}

// from cryptpad.less

table {
    border-collapse: collapse;
    border-spacing: 0;
    margin: 20px;
}
tbody {
    * {
        box-sizing: border-box;
    }
    tr {
        text-align: center;
    }

    td {
        .tools_unselectable();
        border-right: 1px solid @poll-border-color;
        padding: 12px;
        padding-top: 0px;
        padding-bottom: 0px;
        &:last-child {
            border-right: none;
        }
    }
}

div.cp-app-poll-realtime {
    display: block;
    max-height: 100%;
    max-width: 100%;

    input {
        &[type="text"] {
            height: 1em;
            margin: 0px;
        }
    }
    > textarea {
        width: 50%;
        height: 15vh;
    }

    padding: 0px;
    margin: 0px;

    .cp-app-poll-table-scrolled {
        tr td:last-child {
            right: 0;
        }
        tr td:nth-last-child(2) {
            right: 100px;
        }
    }

    table {
        border-collapse: collapse;
        width: ~"calc(100% - 1px)";
        .cp-app-poll-table-editing {
            background-color: @poll-editing;
        }
        .cp-app-poll-table-uncommitted {
            .cp-app-poll-table-cover {
                background-color: @poll-uncommitted-cell !important;
            }
            div.cp-app-poll-table-text-cell {
                background-color: @poll-uncommitted-bg !important;
                color: @poll-uncommitted-text !important;
            }
            text-align: center;
            background-color: @poll-uncommitted-bg !important;
            color: @poll-uncommitted-text !important;
        }
        tr {
            height: 28px;
            /* Options */
            td:first-child {
                position:absolute;
                left: 0;
                top: auto;
                width: 25%;
            }
            /* Uncommitted column */
            td:nth-last-child(2) {
                position: absolute;
                top: auto;
                width: 100px;
                min-width: unset !important;
                height: auto !important;
            }
            /* Results */
            td:last-child {
                color: @poll-th-fg;
                position:absolute;
                top: auto;
                margin-left: 100px;
                width: 100px;
                min-width: unset !important;
                background-color: @poll-th-bg;
            }
            td {
                padding: 0px;
                margin: 0px;

                div.cp-app-poll-table-text-cell {
                    height: 28px;
                    padding: 0px;
                    margin: 0px;
                    display: flex;
                    align-items: center;
                    .cp-app-poll-table-remove {
                        order: 1;
                    }
                    .cp-app-poll-table-edit {
                        order: 3;
                    }
                    input {
                        min-width: 0;
                        order: 2;
                        flex: 1;
                        height: 24px;
                        border: 0px;
                        margin: 2px;
                        &[disabled] {
                            background-color: transparent;
                            color: @poll-td-fg;
                            //font-weight: bold;
                        }
                    }
                }

                &.cp-app-poll-table-checkbox-cell {
                    margin: 0px;
                    padding: 0px;
                    height: 100%;
                    min-width: 100px;

                    div.cp-app-poll-table-checkbox-contain {
                        display: inline-block;
                        height: 100%;
                        width: 100%;
                        position: relative;

                        label {
                            background-color: transparent;
                            display: block;
                            position: absolute;
                            top: 0px;
                            left: 0px;
                            height: 100%;
                            width: 100%;
                        }

                        input {
                            &[type="number"] {
                                &:not(.editable) {
                                    display: none;

                                    ~ .cp-app-poll-table-cover {
                                        line-height: 28px;
                                        display: block;
                                        font-weight: bold;
                                        height: 100%;
                                        display: block;

                                        color: @poll-cover-color;

                                        &:after {
                                            height: 100%;
                                        }

                                    }
                                }
                            }
                        }

                        input[type="number"][value="0"] {
                            ~ .cp-app-poll-table-cover {
                                background-color: @colortheme_cp-red;
                                &:after { content: "✖"; }
                            }
                        }
                        input[type="number"][value="1"] {
                            ~ .cp-app-poll-table-cover {
                                background-color: @colortheme_cp-green;
                                &:after { content: "✔"; }
                            }
                        }
                        input[type="number"][value="2"] {
                            ~ .cp-app-poll-table-cover {
                                background-color: @poll-option-yellow;
                                &:after { content: "~"; }
                            }
                        }
                        input[type="number"][value="3"] {
                            ~ .cp-app-poll-table-cover {
                                background-color: @poll-option-gray;
                                &:after { content: "?"; }
                            }
                        }
                    }
                }
            }
        }

        input {
            &[type="text"] {
                height: auto;
                width: 80%;
            }
        }
        span {
            .tools_unselectable();
        }
        thead {
            height: 52px;
            tr {
                height: 52px;
            }
            td {
                padding: 0px 5px;
                background: @poll-th-bg;
                color: @poll-th-fg;
                &:not(:last-child) {
                    border-right: 1px solid rgba(255,255,255,0.2);
                }
                &:last-child {
                    height: 52px;
                    line-height: 52px;
                    text-align: center;
                }
                &:nth-last-child(2) {
                    border-right: 1px solid @poll-border-color;
                }
                &.cp-app-poll-table-own {
                    background: @poll-th-user-bg;
                    .cp-app-poll-table-lock {
                        cursor: default;
                    }
                }
                .cp-app-poll-table-buttons {
                    display: flex;
                    justify-content: space-between;
                    flex-wrap: wrap;
                    align-items: center;
                    span {
                        cursor: pointer;
                        width: 1em;
                        text-align: center;
                    }
                    .cp-app-poll-table-bookmark {
                        color: darken(@poll-th-fg, 30%);
                        &.cp-app-poll-table-bookmark-full {
                            color: @poll-th-fg;
                        }
                    }
                }
                input {
                    &[type="text"] {
                        overflow: hidden;
                        text-overflow: ellipsis;
                        break-after: always;
                        width: ~"calc(100% - 2px)"; // borders...
                        box-sizing: border-box;
                        padding: 1px 5px;
                        margin: 1px;
                        &[disabled] {
                            color: @poll-th-fg;
                        }
                    }
                }
            }
        }

        tbody {
            td:first-child {
                background: @poll-td-bg;
                color: @poll-td-fg;
            }
            td.cp-app-poll-table-winner {
                background-color: @poll-winner;
                &:last-child { font-weight: bold; }
            }
            .cp-app-poll-table-text-cell {
                input[type="text"] {
                    width: ~"calc(100% - 50px)";
                    padding: 0 0.5em;
                }
                .cp-app-poll-table-edit {
                    float:right;
                    margin: 2px 10px 0 0;
                }
                .cp-app-poll-table-remove {
                    float: left;
                    margin: 2px 0 0 10px;
                }
            }
            tr:not(:first-child) {
                td:not(:first-child) {
                    label {
                        border-top: 1px solid @poll-border-color;
                    }
                }
            }
            tr:not(:last-child) {
                &:hover {
                    td:first-child {
                        background-color: @poll-highlighted;
                    }
                }
            }
        }
        .cp-app-poll-table-edit {
            //color: @poll-cover-color;
            cursor: pointer;
            float: left;
            margin-left: 10px;
        }

        thead {
            tr {
                th {
                    input[type="text"][disabled] {
                        background-color: transparent;
                        color: @poll-fore;
                        font-weight: bold;
                    }
                    .cp-app-poll-table-remove {
                        cursor: pointer;
                        font-size: 20px;
                    }
                }
            }
        }
        tbody {
            tr {
                td {

                }
            }
        }
        tfoot {
            display: none;
        }
    }
    #cp-app-poll-nocomments {
        color: #999;
        text-align: center;
        margin: 20px;
        font: @colortheme_app-font;
    }
    #cp-app-poll-comments {
        width: 50%;
        margin: 20px auto;
        min-width: 400px;
        padding-bottom: 5px;
        display: none;
        button {
            border-radius: 0;
        }
        #cp-app-poll-comments-add {
            input, textarea {
                border: 1px solid black;
                width: 90%;
                margin: 5px 5%;
            }
            input {
                padding: 5px;
                height: 26px;
                &[disabled] {
                    background: #eee;
                }
            }
            textarea {
                padding: 5px;
                height: 8em;
                line-height: 1.5em;
            }
            button {
                padding: 10px;
            }
            text-align: center;
        }
        #cp-app-poll-comments-list {
            .cp-app-poll-comments-list-el {
                width: 90%;
                margin: 5px 5%;
            }
            .cp-app-poll-comments-list-msg {
                display: flex;
                background: #eee;
                padding: 5px 10px;
                .cp-app-poll-comments-list-msg-text {
                    flex: 1;
                    white-space: pre-wrap;
                }
                .cp-app-poll-comments-list-msg-actions {
                    button {
                        padding: 0;
                        width: 25px;
                        line-height: 20px;
                    }
                }
            }
            .cp-app-poll-comments-list-data {
                background: #ddd;
                padding: 5px 10px;
                display: flex;
                align-items: center;
                .cp-app-poll-comments-list-data-name {
                    margin-left: 10px;
                    flex: 1;
                }
                .cp-app-poll-comments-list-data-avatar { .avatar_main(30px); }
            }
        }
    }

    @media screen and (max-width: 500px) {
        #cp-app-poll-table-scroll {
            max-width: 100%;
            padding: 0;
            margin: 0;
            table {
                tr {
                    td {
                        &:first-child {
                            position: unset;
                            min-width: 100px;
                            &:hover:not(:empty) {
                                position: absolute;
                                min-width: 100px;
                                width: auto;
                                z-index: 100;
                            }
                        }
                        &:nth-last-child(2) {
                            position: unset;
                        }
                        &:last-child {
                            position: unset;
                        }
                    }
                }
            }
        }
        #cp-app-poll-comments {
            min-width: 90%;
        }
    }
}


.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}