Испытание:вторая раскладка 100%. Оцените код

html,
body {
    margin: 0;
    padding: 0;
    font-family: "Arial", sans-serif;
}

body {
    min-width: 550px;
    min-height: 250px;
    padding: 10px;
}

.cards {
    position: relative;
    width: 380px;
    text-align: left;
}

.cards li {
    width: 37px;
    height: 55px;
}

.cards li::before {
    font-family: "Courier", monospace;
}

.cards li:not(:first-child) {
    margin-left: -20px;
}

.cards::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    width: 37px;
    height: 55px;
    border: 1px dashed #33bb33;
    border-radius: 5px;
}

li:nth-of-type(4n-7) {
    background-color: #ffcc33;
}

.cards:not(:first-of-type) li:nth-of-type(4n-6) {
    background-color: #0099ff;
}

.cards:nth-of-type(2) li:nth-of-type(4n+4),
.cards:nth-of-type(4) li:nth-of-type(4n+4) {
    background-color: #ff3300;
}

.cards:nth-last-of-type(2) li:nth-of-type(8),
.cards:nth-last-of-type(2) li:nth-of-type(11) {
    background-color: #339933;
}

.cards:first-of-type li:nth-of-type(2n) {
    background-color: #996666;
}

Здесь тоже лучше использовать формулы.

Еще один вариант решения:
html,
body {
margin: 0;
padding: 0;
font-family: “Arial”, sans-serif;
}

body {
min-width: 550px;
min-height: 250px;
padding: 10px;
}

.cards {
position: relative;
width: 380px;
text-align: left;
}

.cards li {
width: 37px;
height: 55px;
}

.cards li::before {
font-family: “Courier”, monospace;
}

.cards li:not(:first-of-type) {
margin-left: -20px;
}

ul::after {
content: “”;
position: absolute;
right: 0;
top: 0;
display: block;
width: 37px;
height: 55px;
border: 1px dashed #33bb33;
border-radius: 5px;
}

ul li:nth-child(4n+1) {
background-color: #ffcc33;
}

ul:not(:first-of-type) li:nth-child(4n+2){
background-color: #0099ff;
}

ul:nth-of-type(even) li:nth-child(4n) {
background-color: #ff3300;
}

ul:nth-of-type(3) li:nth-child(3n+8){
background-color: #339933;
}

ul:first-of-type li:nth-child(even) {
background-color: #996666;
}

.cards li:not(:first-child) { margin-left: -20px; }

.cards li:nth-of-type(4n+1) {
background-color: #ffcc33;
}

ul ~ ul li:nth-of-type(4n-2) {
background-color: #0099ff;
}

ul:nth-of-type(2n) li:nth-of-type(4n) {
background-color: #ff3300;
}

ul:nth-last-of-type(2) li.heart:not(.ten):not(.five) {
background-color: #339933;
}

ul:first-of-type li:nth-of-type(even) {
background-color: #996666;
}

html,
body {
margin: 0;
padding: 0;
font-family: “Arial”, sans-serif;
}

body {
min-width: 550px;
min-height: 250px;
padding: 10px;
}

.cards {
position: relative;
width: 380px;
text-align: left;
}

.cards li {
width: 37px;
height: 55px;
}

.cards li::before {
font-family: “Courier”, monospace;
}

li:not(:first-child) {
margin-left: -20px;
}

ul::after {
content: “”;
position: absolute;
right: 0;
top: 0;
display: block;
width: 37px;
height: 55px;
border: 1px dashed #33bb33;
border-radius: 5px;
}

li:nth-child(4n+1) {
background-color: #ffcc33;
}

ul:not(:first-of-type) li:nth-child(4n+2) {
background-color: #0099ff;
}

ul:nth-of-type(even) li:nth-child(4n) {
background-color: #ff3300;
}

ul:nth-of-type(3) .ace.spade + li {
background-color: #339933;
}

ul:first-of-type li:nth-child(even) {
background-color: #996666;
}