.game-board-container {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.stats-bar {
    display: flex;
    justify-content: space-between;
    width: 600px;
    max-width: 100%;
    margin-bottom: 1.5rem;
    color: #fff;
    font-size: 1.2rem;
    font-family: inherit;
    font-weight: 500;
}

.mahjong-wrapper {
    position: relative;
    width: 800px;
    height: 500px;
    max-width: 100%;
    /* Scaling logic handled in JS for responsiveness */
    transform-origin: center center;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 12px;
    border: 1px solid var(--glass-border);
    box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}

.tile {
    position: absolute;
    width: 44px;
    height: 60px;
    background: #fdf6e3;
    border-radius: 6px;
    box-shadow: 
        1px 1px 0 #d1c8b3,
        2px 2px 0 #babaa0,
        3px 3px 0 #9f9f87,
        4px 4px 6px rgba(0,0,0,0.5);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 1.5rem;
    color: #333;
    cursor: pointer;
    user-select: none;
    transition: filter 0.2s, transform 0.1s;
    /* Outline gives the 3D ivory block feel */
    border: 1px solid rgba(255,255,255,0.8);
    border-bottom-color: #d1c8b3;
    border-right-color: #d1c8b3;
}

/* Base layering shadow manipulation based on zIndex */
.tile[data-z="1"] { box-shadow: 2px 2px 0px #babaa0, 4px 4px 4px rgba(0,0,0,0.6); }
.tile[data-z="2"] { box-shadow: 3px 3px 0px #9f9f87, 6px 6px 6px rgba(0,0,0,0.7); }
.tile[data-z="3"] { box-shadow: 4px 4px 0px #82826a, 8px 8px 8px rgba(0,0,0,0.8); }
.tile[data-z="4"] { box-shadow: 5px 5px 0px #65654d, 10px 10px 10px rgba(0,0,0,0.9); }

.tile:hover {
    filter: brightness(1.1);
}

.tile.locked {
    filter: brightness(0.6);
    cursor: default;
}
.tile.locked:hover {
    filter: brightness(0.6);
}

.tile.selected {
    border: 2px solid #10b981;
    background: #d1fae5;
    transform: translateY(-5px);
    box-shadow: 
        1px 6px 0 #babaa0,
        2px 7px 0 #9f9f87,
        3px 8px 10px rgba(16, 185, 129, 0.6);
}

.tile.hinted {
    animation: pulseHint 1s infinite alternate;
}

@keyframes pulseHint {
    0% { background: #fdf6e3; box-shadow: 0 0 10px rgba(250, 204, 21, 0.5); border-color: #facc15; }
    100% { background: #fef08a; box-shadow: 0 0 20px rgba(250, 204, 21, 1); border-color: #ca8a04; }
}

/* Tile Faces */
.tile-suit-bamboo { color: #166534; font-weight: bold; }
.tile-suit-circle { color: #2563eb; }
.tile-suit-character { color: #991b1b; }
.tile-suit-wind { font-size: 1.8rem; font-weight: bold; }
.tile-suit-dragon { font-size: 2rem; color: #16a34a; }
.tile-suit-dragon[data-v="Red"] { color: #dc2626; }
.tile-suit-flower { font-size: 1.8rem; }
.tile-suit-season { font-size: 1.8rem; }
