/* ==========================================
   MAZE GENERATOR
========================================== */

input,
select,
textarea{

    width:100%;

    padding:10px;

    border-radius:8px;

    background:#1b1b1b;

    color:#fff;

    border:1px solid #333;

    box-sizing:border-box;

}

button:hover{

    transform:translateY(-2px);

}

.btn-group{

    margin-top:20px;

}

.btn-group button{

    margin-bottom:8px;

}

/* ==========================================
   MAZE CANVAS
========================================== */

.maze-container{

    position:relative;

    width:100%;

    display:flex;

    justify-content:center;

    align-items:center;

    margin-top:20px;

    margin-bottom:25px;

}

#mazeCanvas{

    width:100%;

    max-width:700px;

    aspect-ratio:1;

    background:#181818;

    border:8px solid #2b2b2b;

    border-radius:12px;

    box-shadow:
        0 0 25px rgba(79,70,229,.25),
        inset 0 0 25px rgba(255,255,255,.04);

    image-rendering:pixelated;

}

/* ==========================================
   STATS
========================================== */

.maze-stats{

    margin-top:20px;

}

.stats-row{

    display:grid;

    grid-template-columns:1fr 140px;

    align-items:center;

    padding:12px 0;

    border-bottom:1px solid #2d2d2d;

}

.stats-row span{

    color:#cfcfcf;

    font-weight:500;

}

.stats-row strong{

    display:block;

    text-align:right;

    color:#fff;

    font-weight:700;

}

/* ==========================================
   SETTINGS
========================================== */

.settings-group{

    margin-top:20px;

    padding:18px;

    border-radius:10px;

    border:1px solid #2d2d2d;

    background:#181818;

}

.settings-group h3{

    margin:0 0 15px;

    font-size:16px;

}

.settings-option{

    display:flex;

    align-items:center;

    gap:10px;

    margin-top:14px;

    cursor:pointer;

    user-select:none;

    color:#ddd;

    font-size:15px;

    font-weight:500;

}

.settings-option:hover{

    color:#fff;

}

input[type="checkbox"]{

    width:auto;

    height:18px;

    margin:0;

    accent-color:#4f46e5;

    cursor:pointer;

}

/* ==========================================
   MAZE STATUS COLORS
========================================== */

.status-ready{

    color:#10b981;

}

.status-working{

    color:#f59e0b;

}

.status-error{

    color:#ef4444;

}

/* ==========================================
   CANVAS EFFECTS
========================================== */

.generating{

    animation:pulseGlow 1.2s infinite alternate;

}

@keyframes pulseGlow{

    from{

        box-shadow:
            0 0 20px rgba(79,70,229,.20),
            inset 0 0 15px rgba(255,255,255,.02);

    }

    to{

        box-shadow:
            0 0 35px rgba(79,70,229,.40),
            inset 0 0 25px rgba(255,255,255,.05);

    }

}

/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:900px){

    #mazeCanvas{

        max-width:500px;

    }

}

@media(max-width:700px){

    #mazeCanvas{

        max-width:360px;

    }

}

@media(max-width:480px){

    #mazeCanvas{

        max-width:300px;

    }

}

/* ==========================================
   FORCE STAT ALIGNMENT
========================================== */

#statWidth,
#statHeight,
#statCells,
#statTime,
#status{

    display:inline-block !important;

    width:140px;

    text-align:right;

    margin:0 !important;

    padding:0 !important;

    font:700 16px/1 Arial,sans-serif !important;

}

.fullscreen-toolbar{

    position:fixed;

    top:0;
    left:50%;

    transform:translate(-50%,-120%);

    display:flex;
    gap:12px;

    padding:14px 20px;

    border-radius:0 0 16px 16px;

    background:rgba(20,20,20,.85);

    backdrop-filter:blur(14px);

    z-index:9999;

    transition:.3s;

}

.fullscreen-toolbar.show{

    transform:translate(-50%,0);

}

.fullscreen-toolbar button{

    padding:10px 16px;

    cursor:pointer;

}