body {
    --board-size: calc(min(75vh, 75vw));
    font-family: sans-serif;
    background-color: #333;
    color: #eee;
}

.title {
    font-size: 24px;
    grid-area: title;
    justify-self: center;
}

#grid-container {
    display: grid;
    grid-template-columns: calc(var(--board-size) / 4) var(--board-size);
    grid-template-rows: auto 1fr;
    gap: 10px;
    max-width: fit-content;
    margin: 0 auto;
    grid-template-areas:
        "title title"
        "load-variants board-controls"
        "catalog board"
        "variant-select legend";
}

.load-variants-container {
    grid-area: load-variants;
    display: flex;
}

.board-controls {
    grid-area: board-controls;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

#piece-catalog-container {
    grid-area: catalog;
    overflow-y: auto;
    border: 1px solid #555;
    border-radius: 5px;
    background-color: #444;
    height: var(--board-size);
}

#board-container {
    grid-area: board;
    height: var(--board-size);
}

#variant-select {
    grid-area: variant-select;
    width: 100%;
    font-size: 16px;
    border-radius: 5px;
    border: 1px solid #555;
    background-color: #444;
    color: #eee;
}

#legend-container {
    grid-area: legend;
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    justify-content: center;
    align-items: center;
    font-family: sans-serif;
}

#betzaInput {
    flex-grow: 1;
    padding: 8px;
    font-size: 16px;
    border-radius: 5px;
    border: 1px solid #555;
    background-color: #444;
    color: #eee;
}

#boardSizeSelect {
    width: auto;
    padding: 8px;
    font-size: 16px;
    border-radius: 5px;
    border: 1px solid #555;
    background-color: #444;
    color: #eee;
}

#loadVariantsBtn {
    flex-grow: 1;
    padding: 8px;
    font-size: 16px;
    border-radius: 5px;
    border: 1px solid #555;
    background-color: #444;
    color: #eee;
    cursor: pointer;
}

#loadVariantsBtn:hover {
    background-color: #555;
}

.piece-catalog-item {
    padding: 8px;
    cursor: pointer;
    border-radius: 3px;
}

.piece-catalog-item:hover {
    background-color: #555;
}

.piece-catalog-item.selected {
    background-color: #666;
    border: 1px solid #777;
}

.piece-catalog-item .name {
    font-weight: bold;
}

.piece-catalog-item .variant {
    font-size: 0.9em;
    color: #ccc;
}

.legend-item {
    display: flex;
    align-items: center;
    gap: 8px;
}

.legend-icon {
    width: 30px;
    height: 30px;
    display: inline-block;
}

.legend-icon-emoji {
    font-size: 24px;
}

.initial-move path {
    stroke: var(--initial-move-color, #87CEEB); /* Sky Blue */
}
