:root {
    --c1-val: 20, 8, 14;
    --c2-val: 73, 71, 91;
    --c3-val: 121, 148, 150;
    --c4-val: 172, 193, 150;
    --c5-val: 233, 235, 158;
    --error-val: 165, 36, 34;

    --c1: rgb(var(--c1-val));
    --c2: rgb(var(--c2-val));
    --c3: rgb(var(--c3-val));
    --c4: rgb(var(--c4-val));
    --c5: rgb(var(--c5-val));
    /* 
    --c1: #14080E;
    --c2: #49475B;
    --c3: #799496;
    --c4: #ACC196;
    --c5: #E9EB9E; 
    */
    --contrast-light: #fff;
    --contrast-dark: var(--c1);
    --c1-contrast: var(--contrast-light);
    --c2-contrast: var(--contrast-light);
    --c3-contrast: var(--contrast-light);
    --c4-contrast: var(--contrast-light);
    --c5-contrast: var(--contrast-dark);

    --font-size: 16px;
    --inp-font-size: 14px;
    --font-family: "Inter", sans-serif;
    --main-border-color: var(--c2);
    --main-text-color: var(--c1);
    --main-border-radius: 7px;
    --c1-bg-color: var(--c3);
    --c1-font-color: var(--c3-contrast);

    --error-color: rgb(var(--error-val));
    --error-contrast: var(--contrast-light);
    --error-font-size: calc(var(--font-size) - 2px);

    --std-inp-pad: 4px;
    --input-pad-hz: 8px;
    --filter-min-width: 250px;
}

body {
    font-family: var(--font-family);
    font-size: var(--font-size);
    color: var(--main-text-color);
}

input,
textarea,
select {
    box-sizing: content-box;
    font-size: var(--inp-font-size);
    color: var(--main-text-color);
    background-color: var(--c1-contrast);
}
select, button {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

/* for dropdown/collapse  */
[data-hvisible] {
    transform-origin: top;
    transition: transform 400ms ease;
}

[data-hvisible='0'] {
    transform: scaleY(0);
}

[data-hvisible='1'] {
    transform: scaleY(1);
}

div.error_div {
    border-radius: var(--main-border-radius);
    color: var(--error-color);
    background-color: rgba(var(--error-val), 0.5);
}

div.generation {
    width: calc(100% - 0px);
}

div.generation div.form_container {
    --fpad: 15px;
    --container-bgcolor: rgba(var(--c4-val), 0.2);
    --gap-v: 20px;
    --gap-h: 10px;
    background-color: var(--container-bgcolor);
    border-radius: var(--main-border-radius);
    padding: var(--fpad);
    min-width: calc(var(--filter-min-width) - 2 * var(--fpad));
}

div.generation div.field_group {
    padding-bottom: var(--gap-v);
}
div.generation div.field_group:last-child {
    padding-bottom: 0px;
}

div.generation div.form_container_flex {
    display: flex;
    flex-flow: row wrap;
    gap: var(--gap-v) var(--gap-h);
    justify-content: flex-start;
}

div.form_container div.field_container {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    gap: 5px 5px;
    --field-border-width: 1px;
    --field-border: var(--field-border-width) solid var(--main-border-color);
}

div.form_container div.field_container_error {
    background-color: rgba(var(--error-val), 0.3);
    border-radius: var(--main-border-radius);
    margin: -4px;
    padding: 4px;
}

div.field_container div.field_label {
    /* min-width: 60px; */
    white-space: nowrap;
}
div.field_container div.clickable_label {
    cursor: pointer;
}

div.form_container input[type='text'],
div.form_container input[type='password'] {
    border: var(--field-border);
    border-radius: var(--main-border-radius);
    /* padding: var(--std-inp-pad) var(--input-pad-hz); */
    padding: calc(var(--std-inp-pad) + 1px) var(--input-pad-hz) calc(var(--std-inp-pad) - 1px) var(--input-pad-hz);
    height: calc(var(--inp-font-size) + 2 * var(--field-border-width));
}

div.form_container textarea {
    border: var(--field-border);
    border-radius: var(--main-border-radius);
    /* padding: var(--std-inp-pad) var(--input-pad-hz); */
    padding: calc(var(--std-inp-pad) + 1px) var(--input-pad-hz) calc(var(--std-inp-pad) - 1px) var(--input-pad-hz);
    font-family: inherit;
    resize: none;
    overflow-y: hidden;
}

div.field_container[data-for$='prompt'] {
    flex-flow: row wrap !important;
    flex-basis: 100%;
}

div.field_container[data-for$='prompt']>div.field_txt {
    flex: 1 auto;
}

div.field_container[data-for$='prompt'] textarea {
    width: calc(100% - var(--input-pad-hz) * 2 - 2px);
}

div.form_container select {
    border: var(--field-border);
    border-radius: var(--main-border-radius);
    padding: var(--std-inp-pad) var(--input-pad-hz);
    height: calc(var(--inp-font-size) + 2 * var(--field-border-width));
}

div.field_container div.plus_showhide {
    display: flex; 
    justify-content: center; 
    align-items: center; 
    font-weight: bold;
    margin: 0 5px;
    cursor: pointer;
    font-size: larger;
    color: var(--c3);
}

div.form_container button {
    font-size: var(--inp-font-size);
    border: var(--field-border);
    border-radius: var(--main-border-radius);
    padding: 5px 10px;
    background-color: var(--c1-bg-color);
    color: var(--c1-font-color);
    font-weight: bold;
    cursor: pointer;
}

div.form_container button:hover {
    background-color: var(--c1-font-color);
    color: var(--c1-bg-color);
}

div.form_container div.field_error {
    flex-basis: 100%;
    font-size: var(--error-font-size);
    color: var(--error-color);
    display: none;
}

div.form_container div.field_submit {
    flex-basis: 100%;
    display: flex;
    flex-flow: row;
    gap: 20px;
    overflow: hidden;
}

div.generation div.generation_wait {
    flex-basis: 100%;
    color: var(--c3);
    font-weight: bold;
    align-self: center;
    font-family: monospace;
}

div.generation_error {
    padding: 4px;
    color: var(--error-color);
    display: none;
}



div.generation div.results_grid {
    --gpad: 20px;
    background-color: rgba(var(--c5-val), 0.2);
    border-radius: var(--main-border-radius);
    margin-top: 20px;
    padding: var(--gpad);
    display: flex;
    flex-flow: row wrap;
    justify-content: space-evenly;
    gap: 20px;
    min-width: calc(var(--filter-min-width) - 2 * var(--gpad));
    width: calc(100% - var(--gpad) * 2);
}

div.results_grid div.result_img {
    object-fit: contain;
    position: relative;
}

div.results_grid div.result_img div.img_seed {
    font-size: 70%;
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
}
div.results_grid div.result_img div.img_seed span {
    cursor: pointer;
}
div.results_grid div.result_img div.img_seed span:hover {
    text-decoration: dotted underline;
}

div.results_grid div.result_img img {
    width: 100%;
}


.abs_coverall {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    border-radius: var(--main-border-radius);
    background-color: rgba(var(--c5-val), 0.2);
}

.abs_coverall div.coverall_content {
    border-radius: var(--main-border-radius);
    padding: 10px 20px;
    margin: 15px;
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: 10px;
}

.abs_coverall div.svg_close_container {
    --close-size: 24px;
    --close-padding: 5px;
    position: absolute;
    right: 7px;
    top: 7px;
    height: var(--close-size);
    width: var(--close-size);
    background-color: var(--error-contrast);
    border-radius: var(--main-border-radius);
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
}

.abs_coverall div.svg_close_container div.svg_close {
    opacity: 0.6;
    width: calc(var(--close-size) - var(--close-padding) * 2);
    height: calc(var(--close-size) - var(--close-padding) * 2);
    background: center / contain url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMTIxLjMxcHgiIGhlaWdodD0iMTIyLjg3NnB4IiB2aWV3Qm94PSIwIDAgMTIxLjMxIDEyMi44NzYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEyMS4zMSAxMjIuODc2IiB4bWw6c3BhY2U9InByZXNlcnZlIj48Zz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkwLjkxNCw1LjI5NmM2LjkyNy03LjAzNCwxOC4xODgtNy4wNjUsMjUuMTU0LTAuMDY4IGM2Ljk2MSw2Ljk5NSw2Ljk5MSwxOC4zNjksMC4wNjgsMjUuMzk3TDg1Ljc0Myw2MS40NTJsMzAuNDI1LDMwLjg1NWM2Ljg2Niw2Ljk3OCw2Ljc3MywxOC4yOC0wLjIwOCwyNS4yNDcgYy02Ljk4Myw2Ljk2NC0xOC4yMSw2Ljk0Ni0yNS4wNzQtMC4wMzFMNjAuNjY5LDg2Ljg4MUwzMC4zOTUsMTE3LjU4Yy02LjkyNyw3LjAzNC0xOC4xODgsNy4wNjUtMjUuMTU0LDAuMDY4IGMtNi45NjEtNi45OTUtNi45OTItMTguMzY5LTAuMDY4LTI1LjM5N2wzMC4zOTMtMzAuODI3TDUuMTQyLDMwLjU2OGMtNi44NjctNi45NzgtNi43NzMtMTguMjgsMC4yMDgtMjUuMjQ3IGM2Ljk4My02Ljk2MywxOC4yMS02Ljk0NiwyNS4wNzQsMC4wMzFsMzAuMjE3LDMwLjY0M0w5MC45MTQsNS4yOTZMOTAuOTE0LDUuMjk2eiIvPjwvZz48L3N2Zz4=");
}

div.pwd_required_error {
    color: var(--error-color);
    font-weight: bold;
    font-size: calc(var(--font-size) - 2px);
}

div.opacity_pwd_required {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
}