/* width */
::-webkit-scrollbar {
    width: 0px;
}

body::-webkit-scrollbar {
    width: 8px;
}

/* Track */
::-webkit-scrollbar-track {
    background: var(--neutral-900);
}

/* Handle */
::-webkit-scrollbar-thumb {
    background: var(--primary-600);
    border-radius: 3px;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
    background: var(--primary-800);
}

body {
    /* min-height: 101vh; */
}

body>gradio-app {
    /* background: var(--primary-950);
    background-image: linear-gradient(180deg, color-mix(in srgb, var(--primary-950), transparent 50%) 0%, color-mix(in srgb, var(--primary-950), transparent 50%) 28%, var(--neutral-950) 28%, var(--neutral-950) 100%) !important; */
    padding-top: 120px;
    /* min-width: 900px; */
    transition: opacity 0.4s linear;
    position: relative;

    & #alertModal {
        position: absolute;
        top: 250px;
        left: 50%;
        width: 400px;
        max-width: 80vw !important;
        min-height: 140px;
        transform: translate(-50%, -50%);
        padding: var(--size-4) var(--size-8);
        background-color: var(--neutral-900) !important;

        border-top-width: 8px;
        border-right-width: 1px;
        border-bottom-width: 1px;
        border-left-width: 1px;
        border-top-style: solid;
        border-right-style: solid;
        border-bottom-style: solid;
        border-left-style: solid;
        border-top-color: var(--primary-600);
        border-right-color: var(--primary-600);
        border-bottom-color: var(--primary-600);
        border-left-color: var(--primary-600);

        border-radius: var(--container-radius);

        & #alertModalP {
            display: flex;
            justify-content: center;

            & span {
                color: var(--neutral-50);
                margin-top: 0rem;
                line-height: 1.4;
            }

            & svg {
                font-size: 4rem;
                margin-right: 1rem;
                color: var(--cat-red);
                fill: var(--cat-red);
            }
        }

        & button {
            color: var(--text-color-by-luminance) !important;
        }
    }
}

body>gradio-app::before {
    position: absolute;
    content: "";
    background: var(--primary-800);
    width: 100%;
    height: 355px;
    top: 0;
    z-index: 0;
    transition: filter 0.4s ease-out;
    filter: blur(var(--blur-value));
}

body>gradio-app.has-bg-image::before {
    /* --bg-image-path: none; */
    /* --bg-image-path: url("https://image.pollinations.ai/prompt/A%20midnight%20blue%20stallion%20gallops%20across%20a%20misty%2C%20moonlit%20meadow%2C%20its%20mane%20and%20tail%20flowing%20in%20the%20wind%20like%20a%20celestial%20river%2C%20as%20stars%20twinkle%20in%20the%20sky%20above%20-%20Expressionist%20Watercolor%20Painting?model=flux&width=1024&height=683&nologo=true&enhance=false&nofeed=true&seed=42"); */
    background-image: var(--bg-image-path);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: blur(12px);

}

@media screen and (min-width: 980px) {

    gradio-app .gradio-container {
        max-width: 80% !important;
    }

}

div.tabs>div.tab-nav>button.selected {
    border-width: 0 !important;
    background: var(--primary-600) !important;
    color: var(--neutral-950);
    font-weight: 600;
}

div.tabs>div.tab-nav {
    border-bottom: none !important;
    padding: 0 0.25rem 0 0.25rem !important;
}

div.tabs div.tabitem {
    background-color: var(--neutral-900) !important;
    border-width: 0 !important;
    border-top: 8px solid var(--primary-600) !important;
    border-radius: var(--container-radius) !important;
}

.top-description h1 {
    color: var(--neutral-400);
    font-size: 2rem;
}

.prompt-input textarea {
    font-size: 1.05rem;
    color: var(--neutral-300);
    resize: none;
}

.ratio_buttons_wrapper {
    display: flex !important;
    flex-grow: 0 !important;
    min-width: min(48px, 30%) !important;
    flex: 1 1 0%;
    flex-wrap: nowrap;
}

.image_size_selctor_wrapper {
    flex-grow: 2 !important;
    min-width: min(120px, 10%) !important;
}

.info-text-wrapper {
    padding: calc(var(--spacing-xl) / 2) calc(var(--spacing-xl) + 2px);
}

span.info-text {
    margin-bottom: var(--spacing-lg);
    color: var(--block-info-text-color);
    font-weight: var(--block-info-text-weight);
    font-size: var(--block-info-text-size);
    line-height: var(--line-sm);
}

.image-input-read-exfi {
    max-height: 120px;
}

.image-input-read-exfi>button {
    transform: scale(.8);
}

.image-ratio-buttons {
    height: 120px;

    & label {
        width: calc(25% - calc(var(--spacing-xl) + 2px) * 2 / 4);
        justify-content: center;
        align-items: end;

        & input {
            display: none;
        }
    }

    & label span {
        margin-left: 0;
    }
}

span.has-info+div {
    margin-top: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
}

.switch-ratio-btn {
    /* max-width: 38px;
    min-width: 38px !important;
    height: 33px; */
    --icon-ratio: 3/2;
    aspect-ratio: 1;
    min-width: 40px;
    max-width: 120px;

    & svg {
        fill: var(--text-color-by-luminance);
        width: 70%;
        transition: transform 0.2s ease-in-out;
    }

    & svg.portrait {
        transform: rotate(90deg) rotateX(180deg);
    }
}

.switch-ratio-btn:hover {
    & svg {
        transform: rotate(40deg);
    }

    & svg.portrait {
        transform: rotate(40deg) rotateX(180deg);
    }
}

.output-dominant-image-color {
    display: none;
}

.image-info-wrapper {
    transition: opacity 0.4s linear;
}

.tb-img-width input[type=text],
.tb-img-height input[type=text],
.tb-img-seed input[type=text] {
    display: block;
    position: relative;
    outline: none !important;
    box-shadow: var(--input-shadow);
    border: var(--input-border-width) solid var(--input-border-color);
    border-radius: var(--input-radius);
    background: var(--input-background-fill);
    padding: var(--size-2) var(--size-2);
    height: var(--size-6);
    color: var(--body-text-color);
    font-size: var(--input-text-size);
    line-height: var(--line-sm);
    text-align: center;
}

#output_image {
    min-height: 400px;

    &>div.image-container>div.icon-buttons {


        /* display: flex;
        position: absolute;
        top: var(--block-label-margin);
        right: var(--block-label-margin);
        align-items: center; */
        & button,
        a button {
            display: inline-block;
            position: relative;
            z-index: var(--layer-4);
            border: solid var(--block-title-border-width) var(--block-title-border-color);
            border-radius: var(--block-title-radius);
            background: var(--block-title-background-fill);
            padding: var(--block-title-padding);
            color: var(--block-title-text-color);
            font-weight: var(--block-title-text-weight);
            font-size: var(--block-title-text-size);
            line-height: var(--line-sm);
        }
    }
}

.random-prompt-btn,
.enhance-prompt-btn,
.run-btn {
    min-width: 110px;
    transition: background 0.2s ease-in-out;

    & svg {
        fill: var(--text-color-by-luminance);
        width: 1.8rem;
    }

}

button.secondary {
    min-width: 110px;
    transition: background 0.2s ease-in-out;

    & svg {
        transition: fill 0.2s ease-in-out;
        fill: var(--primary-600);
    }

}

button.secondary:hover {
    min-width: 110px;

    & svg {
        fill: var(--text-color-by-luminance);
    }

}

.image-height-selector>label,
.image-width-selector>label {
    display: flex;
    justify-content: space-between;

    & input {
        min-width: 100px;
        width: 50%;
        height: var(--size-9);
    }

}


div.gradio-container.blur-container {
    filter: blur(12px);
    pointer-events: none;
}

/* MARK: Range Input */
input[type=range].svelte-pc1gm4 {
    accent-color: var(--slider-color);
    background: var(--neutral-700) !important;
    background-image: linear-gradient(var(--slider-color), var(--slider-color)) !important;
    background-size: 0% 100%;
}

input[type=range].svelte-pc1gm4::-webkit-slider-thumb {
    background-color: var(--primary-600);
    border-width: 0;
}

input[type=range].svelte-pc1gm4::-webkit-slider-thumb:hover {
    background-color: var(--primary-500);
}

/* MARK: Text-Color Override */
label.svelte-1b6s6s,
label.svelte-9gxdi0,
span.svelte-1gfkn6j,
span.svelte-1gfkn6j,
.primary.svelte-cmf5ev,
label.selected.svelte-1k4wjf2.svelte-1k4wjf2.svelte-1k4wjf2,
label.selected.svelte-1mhtq7j.svelte-1mhtq7j.svelte-1mhtq7j {
    color: var(--text-color-by-luminance) !important;
}

.md-header h1,
.md-header p {
    color: var(--primary-950) !important;
}

/* MARK: Hide Progress */
.hide-progress:has(.wrap.default.full) {
    pointer-events: none;
}

.hide-progress:has(.wrap.default.full.hide) {
    pointer-events: initial;
}

.hide-progress .wrap.default.full:not(.hide) {
    display: none;
}