.affinity-block {
    display: grid;
    grid-template-rows: auto auto;
    background: linear-gradient(0deg, var(--theme-gray-dark) 0%, var(--theme-gray-base) 100%);
    width: 100%;
    margin-left: 16px;
    margin-right: 16px;
    padding-left: 16px;
    padding-right: 16px;
    border-radius: 16px;
    border: 2px solid var(--theme-white);
    padding-top: 8px;
    padding-bottom: 8px;
    
    height: fit-content;

    & .affinity-header {
        display: grid;
        grid-template-columns: auto min-content auto;
        width: 100%;

        & .affinity-label {
            background-color: var(--theme-primary-2-base);
            border-radius: 16px;
            padding-left: 8px;
            padding-right: 8px;
            padding-top: 4px;
            padding-bottom: 4px;
            margin: 4px;
            text-align: center;
        }
    }

    & .affinity-body {
        display: grid;
        grid-template-columns: min-content min-content auto;
        width: 100%;

        height: fit-content;

        & .affinity-icons {
            display: grid;
            grid-template-columns: auto auto auto;

            background-color: var(--theme-primary-1-base);
            border-radius: 16px;
            margin-top: 4px;
            margin-bottom: 4px;   

            & .affinity-icon-left {
                background-color: var(--theme-primary-2-base);
                border-radius: 16px;
                margin: 4px;    
                padding: 4px;
            }

            & .affinity-icon-right {
                background-color: var(--theme-primary-2-base);
                border-radius: 16px;
                margin: 4px;    
                padding: 4px;
            }

            & .affinity-icon-arrow {
                background-color: var(--theme-primary-2-base);
                border-radius: 16px;
                margin: 4px;    
                padding: 4px;
            }
        }

        & .affinity-score {
            display: block;
            width: fit-content;

            background-color: var(--theme-primary-1-base);
            border-radius: 16px;
            margin-top: 4px;
            margin-bottom: 4px; 

            margin-left: 6px;
            margin-right: 4px;   

            font-size: 48px;
            padding-left: 16px;
            padding-right: 16px;

            & .score {  
                transform: translate(0px, 4px);
            }

            &.good {
                background-color: var(--theme-accent-2-base);
            }

            &.bad {
                background-color: var(--theme-alert-base);
            }
        }

        & .affinity-comments {
            display: block;

            background-color: var(--theme-primary-1-base);
            border-radius: 16px;
            margin-top: 4px;
            margin-bottom: 4px; 

            margin-left: 4px;
            margin-right: 4px;   

            padding: 8px;

        }  
    }
}