.avatar-component {
    position: relative;
    display: inline-block;
    overflow: hidden;
    background-color: var(--bg-tertiary, #f5f5f5);
    flex-shrink: 0;
    border-radius: 4px;
    /* Default radius */

    &.circle {
        border-radius: 50%;
    }

    &.rounded {
        border-radius: 6px;
    }

    /* Image styling */
    img.avatar-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        opacity: 0;
        transition: opacity 0.3s ease-in-out;
        border-radius: inherit;

        &.loaded {
            opacity: 1;
        }

        &.instant {
            transition: none !important;
            opacity: 1 !important;
        }
    }

    /* Placeholder/Letter styling */
    .avatar-placeholder {
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 500;
        color: var(--text-secondary, #666);
        background-color: var(--bg-tertiary, #e0e0e0);
        font-size: 1.2em;
        text-transform: uppercase;
        user-select: none;
        border-radius: inherit;
    }

    /* Loading Skeleton */
    .avatar-skeleton {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(90deg,
                var(--bg-tertiary, #f0f0f0) 25%,
                var(--bg-secondary, #e0e0e0) 50%,
                var(--bg-tertiary, #f0f0f0) 75%);
        background-size: 200% 100%;
        animation: shimmer 1.5s infinite;
        z-index: 1;
        border-radius: inherit;
    }

    @keyframes shimmer {
        0% {
            background-position: 200% 0;
        }

        100% {
            background-position: -200% 0;
        }
    }
}