@import "../../style/control.pcss";
@import "../../style/display.pcss";
@import "../../style/border.pcss";
@import "../../style/mixin/media.pcss";
@import "../../style/mixin/typography.pcss";
@import "../../style/mixin/button.pcss";
@import "../../style/mixin/hover.pcss";

[data-monster-role=control] {
    --monster-thread-indent: 2rem;
}

[data-monster-role=entries] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    border: 0;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    position: relative;

    & ul {
        box-sizing: border-box;
        list-style-type: none;
        margin: 0;
        padding: 0 0 0 var(--monster-thread-indent);
        position: relative;
        width: calc(100% - var(--monster-thread-indent));
    }

    & ul:before {
        content: "";
        display: block;
        width: 2px;
        height: 100%;

        border-left-color: var(--monster-bg-color-primary-3);
        border-left-style: dotted;
        border-left-width: 1px;
        position: absolute;
        left: calc(var(--monster-thread-indent) / 2);
        bottom: 0;
        top: 0;
    }
}

[data-monster-role=entry] {
    background-color: var(--monster-bg-color-primary-1);
    border-radius: var(--monster-border-radius);
    color: var(--monster-color-primary-1);
    margin: 0 0 0.6rem 0;
    padding: 0.45rem 0.5rem 0.45rem 0.8rem;
    position: relative;
}

[data-monster-role=entry]:before {
    content: "";
    width: 6px;
    height: 6px;
    box-sizing: border-box;
    border-radius: 50%;
    background: var(--monster-bg-color-primary-3);
    border: 1px solid var(--monster-color-primary-2);
    position: absolute;
    left: calc(-1 * (var(--monster-thread-indent) / 2) - 2px);
    top: 1rem;
}

[data-monster-role=entry]:after {
    content: "";
    border-top: 1px dotted var(--monster-bg-color-primary-3);
    position: absolute;
    left: calc(-1 * (var(--monster-thread-indent) / 2) + 1px);
    top: 1.1rem;
    width: calc((var(--monster-thread-indent) / 2) - 1px);
}

[data-monster-role=meta] {
    align-items: center;
    color: var(--monster-color-primary-2);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.85rem;
    gap: 0.4rem;

    & .title {
        font-stretch: expanded;
        font-weight: 700;
    }

    & .title:before {
        content: "—";
        font-weight: 400;
        margin-right: 0.25rem;
    }
}

[data-monster-role=message] {
    margin: 0.25rem 0 0.4rem 0;
}

[data-monster-role=thread-controls] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

[data-monster-role=thread-controls] .monster-button-primary,
[data-monster-role=thread-controls] .monster-button-secondary,
[data-monster-role=thread-controls] .monster-button-tertiary,
[data-monster-role=thread-controls] .monster-button-outline-primary,
[data-monster-role=thread-controls] .monster-button-outline-secondary,
[data-monster-role=thread-controls] .monster-button-outline-tertiary {
    border-radius: 999px;
    font-size: 0.75rem;
    gap: 0.4rem;
    padding: 0.15rem 0.6rem;
}

[data-monster-role=badge] {
    background: var(--monster-color-secondary-4);
    border-radius: 999px;
    color: var(--monster-bg-color-secondary-4);
    display: inline-flex;
    font-size: 0.7rem;
    line-height: 1;
    padding: 0.15rem 0.4rem;
}

[data-monster-role=thread-controls] [data-reply-count="0"] {
    display: none;
}

[data-monster-role=badge][data-reply-count="0"] {
    display: none;
}

[data-monster-role=entry][data-collapsed=true] [data-monster-role=children] {
    display: none;
}

[data-monster-role=actions] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

[data-monster-role=actions] .monster-button-primary,
[data-monster-role=actions] .monster-button-secondary,
[data-monster-role=actions] .monster-button-tertiary,
[data-monster-role=actions] .monster-button-outline-primary,
[data-monster-role=actions] .monster-button-outline-secondary,
[data-monster-role=actions] .monster-button-outline-tertiary {
    font-size: 0.85rem;
    padding: 0.2rem 0.5rem;
}

[data-monster-role=actions] button:hover {
    box-shadow: var(--monster-box-shadow-1);
}

[data-monster-role=editor] {
    margin-top: 1rem;
    padding-left: var(--monster-thread-indent);

    & ::slotted(textarea) {
        box-sizing: border-box;
        min-height: 6rem;
        width: 100%;
    }

    & ::slotted(button) {
        margin-top: 0.5rem;
    }
}
