:where(button, input):where(:not(:active)):focus-visible {
    outline-offset: 5px;
}

/* All buttons */
:where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    input[type="file"]
),
/* ::file-selector-button does not work inside of :where() */
:where(input[type="file"])::file-selector-button {
    --_color: var(--color, var(--accent));

    background-color: var(--_color);
    color: black;

    border: 2px solid var(--_color);

    font: inherit;
    letter-spacing: inherit;
    line-height: 1.5;

    border-radius: 1rem;
    padding: 0.5em;

    font-weight: 700;

    object-fit: contain;

    /*display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 1ch;*/

    cursor: pointer;
    transition: all 0.2s ease-out;

    user-select: none;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;

    &:is(:hover, :focus-visible) {
        --_hoverColor: oklch(from var(--color, var(--accent)) 40% c h);
        --_color: var(--hoverColor, var(--_hoverColor));
    }

    &.secondary {
        --color: lightgreen;
        /*--hoverColor: lawngreen;*/
    }

    &.outline {
        background: transparent;
        color: var(--_color);
    }
}

/* on hover but not active */
:where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"]):where(:not(:active):hover
) {

}

:where([type="reset"]) {
    color: red;
}

:where([type="reset"]:focus-visible) {
    outline-color: currentColor;
}


:where(button,
input[type="button"],
input[type="submit"],
input[type="reset"]
)[disabled] {

    cursor: not-allowed;
}

:where(input[type="file"]) {
    inline-size: 100%;
    max-inline-size: max-content;
}

:where(input[type="button"]),
:where(input[type="file"])::file-selector-button {
    appearance: none;
}
