/* Indux Avatars */

@layer utilities {

    :where(.avatar) {
        position: relative;
        display: flex;
        flex-flow: row wrap;
        flex-shrink: 0;
        justify-content: center;
        align-items: center;
        width: var(--spacing-field-height, 2.25rem);
        height: var(--spacing-field-height, 2.25rem);
        font-weight: bold;
        text-align: center;
        text-transform: uppercase;
        color: var(--color-field-inverse, oklch(16.6% 0.026 267));
        background-color: var(--color-field-surface, oklch(91.79% 0.0029 264.26));
        background-clip: content-box;
        background-size: cover;
        background-position: center;
        border-radius: var(--radius, 0.5rem);

        /* Icon */
        &[x-icon] {
            color: var(--color-content-subtle, oklch(67.4% 0.0318 251.27))
        }

        /* Profile pic */
        :where(img) {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
            border-radius: inherit;
            transition: var(--transition, all .05s ease-in-out)
        }

        /* Status indictor */
        :where(figure) {
            position: absolute;
            bottom: -3px;
            right: -3px;
            width: 9px;
            height: 9px;
            z-index: 1;
            background-color: var(--color-field-surface, oklch(91.79% 0.0029 264.26));
            border: 1px solid var(--color-page, oklch(100% 0 0));
            border-radius: 50%
        }
    }

    /* Button & label versions */
    :where(button.avatar, label.avatar) {
        padding: 0;
        background-blend-mode: normal;

        &:hover {
            background-color: var(--color-field-surface-hover, oklch(89.24% 0.0024 12.48));
            background-blend-mode: multiply;

            & img {
                filter: brightness(0.9)
            }
        }
    }

    /* Wide version */
    :where(.avatar-wide) {
        display: flex;
        flex-flow: row;
        justify-content: start;
        align-items: center;
        gap: 1.5ch;
        width: 100%;
        max-width: 100%;
        overflow: hidden;

        & span {
            max-width: 100%;
            white-space: nowrap;
            text-overflow: ellipsis;
            overflow: hidden
        }
    }

    /* Wide button version */
    :where(button.avatar-wide) {
        height: fit-content;
        padding: var(--spacing, 0.25rem);
        padding-inline-end: 1.5ch;

        &:hover .avatar {
            background-color: var(--color-field-surface-hover, oklch(89.24% 0.0024 12.48));
            transition: var(--transition, all .05s ease-in-out)
        }
    }

    /* Group wrapper */
    :where([role=group]:has(.avatar, button.avatar)) {
        display: flex;
        flex-flow: row nowrap;
        align-items: center;

        :where(.avatar) {
            margin-inline-end: calc(var(--spacing-field-height, 2.25rem) * -0.3);
            box-shadow: 0 0 0 3px var(--color-page, oklch(100% 0 0))
        }
    }
}