*{box-sizing:border-box}html,body,#root{width:100%;margin:0;padding:0}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;width:100%;min-height:100vh;box-sizing:border-box}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.app{width:100%;min-height:100vh;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:20px;display:flex;flex-direction:column;align-items:center;box-sizing:border-box}.app h1{color:#fff;font-size:2.5rem;margin-bottom:30px;text-shadow:2px 2px 4px rgba(0,0,0,.3);font-weight:700}@media (max-width: 768px){.app{padding:10px}.app h1{font-size:2rem;margin-bottom:20px}}.sliding-puzzle{max-width:600px;margin:0 auto;padding:15px;text-align:center;font-family:Arial,sans-serif}.controls{margin-bottom:20px;display:flex;flex-direction:column;gap:12px;align-items:center}.main-controls{display:flex;flex-wrap:wrap;gap:15px;align-items:center;justify-content:center}.history-controls{display:flex;align-items:center;gap:10px}.history-indicator{font-weight:700;color:#2c3e50;min-width:90px;text-align:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:8px 12px;border-radius:20px;border:2px solid #6c757d}.history-prev-btn,.history-next-btn{padding:10px 20px;font-size:14px;font-weight:700;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;min-width:110px;color:#fff}.history-prev-btn{background:linear-gradient(135deg,#9C27B0,#7B1FA2)}.history-prev-btn:hover:not(:disabled){background:linear-gradient(135deg,#7B1FA2,#6A1B9A);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.history-next-btn{background:linear-gradient(135deg,#2196F3,#1976D2)}.history-next-btn:hover:not(:disabled){background:linear-gradient(135deg,#1976D2,#1565C0);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.history-prev-btn:disabled,.history-next-btn:disabled{background:#cccccc;cursor:not-allowed}.control-group{display:flex;align-items:center;gap:10px;font-size:16px}.control-group label{font-weight:700;color:#333}.control-group input{padding:8px 12px;border:2px solid #ddd;border-radius:6px;font-size:16px;width:80px;text-align:center}.control-group input:focus{outline:none;border-color:#4caf50}.steps-control{display:flex;align-items:center;gap:0;border:2px solid #ddd;border-radius:6px;overflow:hidden;background:white}.steps-btn{width:40px;height:40px;border:none;background:linear-gradient(135deg,#f8f9fa,#e9ecef);color:#495057;font-size:18px;font-weight:700;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.steps-btn:hover:not(:disabled){background:linear-gradient(135deg,#4CAF50,#45a049);color:#fff}.steps-btn:disabled{background:#f8f9fa;color:#adb5bd;cursor:not-allowed}.steps-display{min-width:50px;height:40px;display:flex;align-items:center;justify-content:center;background:white;font-size:16px;font-weight:700;color:#495057;border-left:1px solid #ddd;border-right:1px solid #ddd}.generate-btn,.solution-btn,.next-step-btn,.prev-step-btn,.show-original-btn,.stop-solution-btn{padding:10px 20px;font-size:15px;font-weight:700;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;min-width:110px}.generate-btn{background:linear-gradient(135deg,#4CAF50,#45a049);color:#fff}.generate-btn:hover:not(:disabled){background:linear-gradient(135deg,#45a049,#3d8b40);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.generate-btn:disabled{background:#cccccc;cursor:not-allowed}.solution-btn{background:linear-gradient(135deg,#2196F3,#1976D2);color:#fff}.solution-btn:hover:not(:disabled){background:linear-gradient(135deg,#1976D2,#1565C0);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.solution-btn:disabled{background:#cccccc;cursor:not-allowed}.next-step-btn{background:linear-gradient(135deg,#FF9800,#F57C00);color:#fff}.next-step-btn:hover:not(:disabled){background:linear-gradient(135deg,#F57C00,#E65100);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.next-step-btn:disabled{background:#cccccc;cursor:not-allowed}.prev-step-btn{background:linear-gradient(135deg,#9C27B0,#7B1FA2);color:#fff}.prev-step-btn:hover:not(:disabled){background:linear-gradient(135deg,#7B1FA2,#6A1B9A);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.prev-step-btn:disabled{background:#cccccc;cursor:not-allowed}.show-original-btn{background:linear-gradient(135deg,#607D8B,#455A64);color:#fff}.show-original-btn:hover:not(:disabled){background:linear-gradient(135deg,#455A64,#37474F);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.stop-solution-btn{background:linear-gradient(135deg,#F44336,#D32F2F);color:#fff}.stop-solution-btn:hover:not(:disabled){background:linear-gradient(135deg,#D32F2F,#C62828);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.solution-controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center}.game-area{position:relative;display:flex;flex-direction:column;align-items:center;gap:15px}.puzzle-board{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:3px;width:360px;height:360px;background-color:#34495e;padding:10px;border-radius:12px;box-shadow:0 6px 12px #0000004d}.puzzle-cell{display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700;border-radius:8px;transition:all .2s ease;-webkit-user-select:none;user-select:none}.puzzle-cell.number{background:linear-gradient(135deg,#ecf0f1,#bdc3c7);color:#2c3e50;border:2px solid #95a5a6}.puzzle-cell.number.clickable{cursor:pointer}.puzzle-cell.number.clickable:hover{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;transform:scale(1.05);box-shadow:0 4px 8px #0003}.puzzle-cell.empty{background:transparent}.game-info{display:flex;flex-direction:row;flex-wrap:wrap;gap:15px;align-items:center;justify-content:center}.win-message{font-size:24px;font-weight:700;color:#27ae60;background:linear-gradient(135deg,#d5f4e6,#a8e6cf);padding:15px 30px;border-radius:25px;border:3px solid #27ae60;animation:bounce .6s ease-in-out}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.solution-info{font-size:18px;font-weight:700;color:#2c3e50;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:10px 20px;border-radius:20px;border:2px solid #6c757d}.solution-progress{font-size:16px;color:#e67e22;background:linear-gradient(135deg,#fef9e7,#fcf4dd);padding:8px 16px;border-radius:15px;border:2px solid #f39c12}.tip-message{position:relative;background:linear-gradient(135deg,#4CAF50,#45a049);color:#fff;padding:10px 16px;border-radius:15px;font-size:14px;font-weight:700;box-shadow:0 3px 8px #0000004d;animation:tipFadeIn .3s ease-in-out;max-width:260px;text-align:center;border:2px solid #388E3C;margin-top:8px}@keyframes tipFadeIn{0%{opacity:0;transform:translateY(10px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.welcome-message{font-size:20px;color:#7f8c8d;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:40px;border-radius:15px;border:2px dashed #bdc3c7;margin-top:20px}@media (max-width: 480px){.sliding-puzzle{padding:8px}.puzzle-board{width:300px;height:300px;padding:8px}.puzzle-cell{font-size:22px}.controls{gap:8px;margin-bottom:15px}.main-controls{gap:10px}.control-group{flex-direction:column;gap:5px;text-align:center}.generate-btn,.solution-btn,.next-step-btn,.prev-step-btn,.show-original-btn,.stop-solution-btn{padding:8px 16px;font-size:13px;min-width:90px}.solution-controls{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;max-width:280px}.solution-controls button{padding:6px 10px;font-size:12px;min-width:auto}.history-controls{gap:6px}.history-prev-btn,.history-next-btn{padding:6px 10px;font-size:12px;min-width:80px}.history-indicator{padding:4px 8px;font-size:12px;min-width:70px}.tip-message{max-width:220px;font-size:13px;padding:8px 12px}.steps-control{border:1px solid #ddd}.steps-btn{width:32px;height:32px;font-size:14px}.steps-display{min-width:40px;height:32px;font-size:13px}.game-area,.game-info{gap:10px}.win-message{font-size:20px;padding:12px 20px}.solution-info{font-size:15px;padding:8px 15px}.solution-progress{font-size:14px;padding:6px 12px}}
