/**
 * Modern Sliding Puzzle
 * Uppdaterad CSS för sliding puzzle-animationen
 */

/* Main container */
#game_board{padding-top:10px;}

.modern-puzzle {
    max-width: 100%;
    margin: 0 auto;
    font-family: 'ES Sans', 'Open Sans', Arial,Helvetica,sans-serif;
   
    box-sizing: border-box;
}

/* Puzzle container */
.puzzle-container, #board {
    position: relative;
    margin: 0 auto;
    /*border: 1px solid #ddd;*/
    /*overflow: hidden;*/
    /*background-color: #f5f7fa;*/
    background-color: rgba(0, 0, 0, 0.4);
    box-sizing: border-box;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/* Background image */
.puzzle-background {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: -1;
    background-size: cover;
    transition: opacity 0.6s ease;
    pointer-events: none;
    box-sizing: border-box;
}

/* Puzzle piece */
.puzzle-piece {
    background-color: #FFFFFF;
    /*border: 1px solid #444444;*/
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.4);
    display: flex;
    align-items: start;
    cursor: pointer;
    overflow: hidden;
    user-select: none;
    /* Viktigt för sömlös animation */
    will-change: transform, left, top;
    /*transition: transform 0.2s ease-out, 
                left 0.2s ease-out,
                top 0.2s ease-out,
                border-color 0.2s ease-out,
                box-shadow 0.2s ease-out;*/
    z-index: 1;
    box-sizing: border-box;
    background-repeat: no-repeat;
    padding-left: 6px;
}

.puzzle-piece:hover {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
    transition: box-shadow 0.2s ease;
    
    /*box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3);*/
    z-index: 2; /* Ensure hovered piece appears above others */
}

/* Style for piece that's currently being moved */
.puzzle-piece.moving {
    z-index: 10;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}

/* Solved state */
.puzzle-solved .puzzle-piece {
    cursor: default;
}

.puzzle-solved .puzzle-piece:hover {
    transform: none;
    border-color: #fff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* Numbers on pieces */
.puzzle-number {
    color: #FFFFFF;
    font-weight: bold;
    font-size: 2rem;
    text-shadow: -1px 0 #000, 0 1px #000, 1px 0 #000, 0 -1px #000000;
    user-select: none; 
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none; 
}









.sliding-puzzle-flex {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 20px;
}
.sliding-puzzle-content {
    flex: 1;
    min-width: 300px;
}
.sliding-puzzle-grid {
    flex: 0 0 auto;
}
.sliding-puzzle-grid table {
    border-collapse: separate;  /* Changed from collapse to separate */
    border-spacing: 4px;        /* Added 4px spacing between cells */
    margin: 10px 0;
    border: none;               /* Removed table border */
}
.sliding-puzzle-grid td {
    width: 30px;
    height: 30px;
    border: 1px solid #000;     /* Kept border on TD elements */
    text-align: center;
}
.sliding-puzzle-empty {
    background: #808080;
}
.sliding-puzzle-arrow {
    width: 30px;
    height: 30px;
    padding-left: 10px;
    border: none !important;    /* Remove border from arrow cells */
}
.sliding-puzzle-margin-top {
    margin-top: 20px;
}




/* Responsive adjustments */
@media (max-width: 768px) {
    /*.modern-puzzle {
        padding: 5px;
    }*/
}
@media only screen and (max-width: 640px) {
    .puzzle-number{
        font-size:1rem;
        font-weight: normal;
    }   
}
/* Dark theme support */
@media (prefers-color-scheme: dark) {
    .modern-puzzle {
        background-color: #222;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
    }
    
    .puzzle-container {
        border-color: #444;
        background-color: #333;
    }
    
    .puzzle-piece {
        border-color: #444;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
    }
}