/* First-party Report a bug overlay (replaces Sentry crash-report iframe). */

.report-bug-dialog {
    border: none;
    border-radius: 0.5rem;
    padding: 0;
    box-sizing: border-box;
    width: 92vw;
    max-width: min(460px, 92vw);
    max-height: 90vh;
    margin: auto;
    overflow: hidden;
    box-shadow: 0 0 30px rgb(0 0 0 / 0.5);
    background-color: var(--content-background-color);

    &::backdrop {
        background-color: rgb(0 0 0 / 0.6);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
    }

    /* Override global `article` sizing (base.css width:96vw / min-width:384px). */
    .report-bug-content {
        display: grid;
        grid-auto-flow: row;
        gap: 0.75rem;
        padding: 1rem;
        width: auto;
        min-width: 0;
        max-width: none;
        margin: 0;
        justify-content: unset;
        box-sizing: border-box;
        max-height: 85vh;
        overflow-y: auto;
        scrollbar-width: thin;
    }

    header {
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: center;
        gap: 1rem;
        padding-bottom: 0.5rem;
        border-bottom: 1px solid var(--content-border-color);

        h2 {
            margin: 0;
            font-size: 1.25rem;
            color: var(--content-color);
        }

        .report-bug-close {
            width: 4ch;
            height: 4ch;
            border-radius: 50%;
            display: grid;
            place-content: center;
            background-color: var(--content-background-color);
            border: none;
            cursor: pointer;
            transition: background-color 0.2s;
            color: var(--text-color-bright);

            &::before {
                content: '×';
                font-size: 1.6rem;
                font-weight: 700;
                line-height: 1;
            }

            &:hover {
                background-color: rgb(80% 30% 30% / 1);
            }
        }
    }

    .report-bug-subtitle {
        margin: 0;
        line-height: 1.4;
        color: var(--content-color);
    }

    #report-bug-form {
        display: grid;
        grid-auto-flow: row;
        gap: 0.35rem;

        label {
            margin-top: 0.35rem;
            font-weight: 600;
            color: var(--content-color);
        }

        input,
        textarea {
            width: 100%;
            box-sizing: border-box;
            border: 1px solid var(--content-border-color);
            border-radius: 0.35rem;
            padding: 0.45rem 0.6rem;
            background-color: var(--content-background-color, white);
            color: var(--text-color);
        }

        #report-bug-tag {
            text-transform: uppercase;
        }

        textarea {
            min-height: 8rem;
            resize: vertical;
        }

        #report-bug-comments {
            &::placeholder {
                color: var(--content-color-medium-bright);
            }
        }

        input[aria-invalid="true"],
        textarea[aria-invalid="true"] {
            outline: 2px solid rgb(80% 30% 30% / 1);
        }

        p.error-help {
            width: auto;
            margin: 0;
        }

        footer {
            display: flex;
            flex-wrap: wrap;
            justify-content: flex-end;
            gap: 0.6rem;
            margin-top: 0.75rem;

            .report-bug-cancel,
            .report-bug-submit {
                padding: 0.6rem 1.2rem;
                border: none;
                border-radius: 0.4rem;
                cursor: pointer;
                color: var(--text-color-bright);
                width: unset;
                min-height: 2.5rem;
            }

            .report-bug-cancel {
                background-color: var(--content-background-color);

                &:hover {
                    background-color: rgb(40% 40% 40% / 1);
                }
            }

            .report-bug-submit {
                background-color: var(--content-background-color-dark, rgb(30% 45% 70% / 1));

                &:hover:not(:disabled) {
                    filter: brightness(1.1);
                }

                &:disabled {
                    opacity: 0.45;
                    cursor: not-allowed;
                }
            }
        }
    }
}
